kubernetes-api 134.0.1 → 135.0.1
raw patch · 79 files changed
+32989/−32464 lines, 79 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: createNamespacedPodCertificateRequest :: (Consumes CreateNamespacedPodCertificateRequest contentType, MimeRender contentType V1alpha1PodCertificateRequest) => ContentType contentType -> Accept accept -> V1alpha1PodCertificateRequest -> Namespace -> KubernetesRequest CreateNamespacedPodCertificateRequest contentType V1alpha1PodCertificateRequest accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data CreateNamespacedPodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data DeleteCollectionNamespacedPodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data DeleteNamespacedPodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data ListNamespacedPodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data ListPodCertificateRequestForAllNamespaces
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data PatchNamespacedPodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data PatchNamespacedPodCertificateRequestStatus
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data ReadNamespacedPodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data ReadNamespacedPodCertificateRequestStatus
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data ReplaceNamespacedPodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: data ReplaceNamespacedPodCertificateRequestStatus
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: deleteCollectionNamespacedPodCertificateRequest :: Consumes DeleteCollectionNamespacedPodCertificateRequest contentType => ContentType contentType -> Accept accept -> Namespace -> KubernetesRequest DeleteCollectionNamespacedPodCertificateRequest contentType V1Status accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: deleteNamespacedPodCertificateRequest :: Consumes DeleteNamespacedPodCertificateRequest contentType => ContentType contentType -> Accept accept -> Name -> Namespace -> KubernetesRequest DeleteNamespacedPodCertificateRequest contentType V1Status accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.V1DeleteOptions
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.V1DeleteOptions
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Body
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Body
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Continue
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldSelector
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.GracePeriodSeconds
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.LabelSelector
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Limit
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.OrphanDependents
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.PropagationPolicy
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.ResourceVersion
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.ResourceVersionMatch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.SendInitialEvents
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.TimeoutSeconds
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.GracePeriodSeconds
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.OrphanDependents
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.PropagationPolicy
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.AllowWatchBookmarks
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Continue
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldSelector
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.LabelSelector
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Limit
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.ResourceVersion
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.ResourceVersionMatch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.SendInitialEvents
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.TimeoutSeconds
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Watch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.AllowWatchBookmarks
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.Continue
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.FieldSelector
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.LabelSelector
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.Limit
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.ResourceVersion
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.ResourceVersionMatch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.SendInitialEvents
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.TimeoutSeconds
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.Watch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Force
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Force
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest mtype
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest mtype
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest mtype
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest mtype
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus mtype
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1alpha1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: listNamespacedPodCertificateRequest :: Accept accept -> Namespace -> KubernetesRequest ListNamespacedPodCertificateRequest MimeNoContent V1alpha1PodCertificateRequestList accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: listPodCertificateRequestForAllNamespaces :: Accept accept -> KubernetesRequest ListPodCertificateRequestForAllNamespaces MimeNoContent V1alpha1PodCertificateRequestList accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: patchNamespacedPodCertificateRequest :: (Consumes PatchNamespacedPodCertificateRequest contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> Namespace -> KubernetesRequest PatchNamespacedPodCertificateRequest contentType V1alpha1PodCertificateRequest accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: patchNamespacedPodCertificateRequestStatus :: (Consumes PatchNamespacedPodCertificateRequestStatus contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> Namespace -> KubernetesRequest PatchNamespacedPodCertificateRequestStatus contentType V1alpha1PodCertificateRequest accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: readNamespacedPodCertificateRequest :: Accept accept -> Name -> Namespace -> KubernetesRequest ReadNamespacedPodCertificateRequest MimeNoContent V1alpha1PodCertificateRequest accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: readNamespacedPodCertificateRequestStatus :: Accept accept -> Name -> Namespace -> KubernetesRequest ReadNamespacedPodCertificateRequestStatus MimeNoContent V1alpha1PodCertificateRequest accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: replaceNamespacedPodCertificateRequest :: (Consumes ReplaceNamespacedPodCertificateRequest contentType, MimeRender contentType V1alpha1PodCertificateRequest) => ContentType contentType -> Accept accept -> V1alpha1PodCertificateRequest -> Name -> Namespace -> KubernetesRequest ReplaceNamespacedPodCertificateRequest contentType V1alpha1PodCertificateRequest accept
- Kubernetes.OpenAPI.API.CertificatesV1alpha1: replaceNamespacedPodCertificateRequestStatus :: (Consumes ReplaceNamespacedPodCertificateRequestStatus contentType, MimeRender contentType V1alpha1PodCertificateRequest) => ContentType contentType -> Accept accept -> V1alpha1PodCertificateRequest -> Name -> Namespace -> KubernetesRequest ReplaceNamespacedPodCertificateRequestStatus contentType V1alpha1PodCertificateRequest accept
- Kubernetes.OpenAPI.API.StorageV1alpha1: createVolumeAttributesClass :: (Consumes CreateVolumeAttributesClass contentType, MimeRender contentType V1alpha1VolumeAttributesClass) => ContentType contentType -> Accept accept -> V1alpha1VolumeAttributesClass -> KubernetesRequest CreateVolumeAttributesClass contentType V1alpha1VolumeAttributesClass accept
- Kubernetes.OpenAPI.API.StorageV1alpha1: data CreateVolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: data DeleteCollectionVolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: data DeleteVolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: data GetAPIResources
- Kubernetes.OpenAPI.API.StorageV1alpha1: data ListVolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: data PatchVolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: data ReadVolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: data ReplaceVolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: deleteCollectionVolumeAttributesClass :: Consumes DeleteCollectionVolumeAttributesClass contentType => ContentType contentType -> Accept accept -> KubernetesRequest DeleteCollectionVolumeAttributesClass contentType V1Status accept
- Kubernetes.OpenAPI.API.StorageV1alpha1: deleteVolumeAttributesClass :: Consumes DeleteVolumeAttributesClass contentType => ContentType contentType -> Accept accept -> Name -> KubernetesRequest DeleteVolumeAttributesClass contentType V1alpha1VolumeAttributesClass accept
- Kubernetes.OpenAPI.API.StorageV1alpha1: getAPIResources :: Accept accept -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.V1DeleteOptions
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.Model.V1DeleteOptions
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.Model.Body
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.Continue
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.FieldSelector
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.GracePeriodSeconds
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.LabelSelector
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.Limit
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.OrphanDependents
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.PropagationPolicy
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.ResourceVersion
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.ResourceVersionMatch
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.SendInitialEvents
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.Model.TimeoutSeconds
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.Model.GracePeriodSeconds
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.Model.OrphanDependents
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.Model.PropagationPolicy
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.AllowWatchBookmarks
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.Continue
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.FieldSelector
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.LabelSelector
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.Limit
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.ResourceVersion
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.ResourceVersionMatch
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.SendInitialEvents
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.TimeoutSeconds
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.Model.Watch
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.Model.Force
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ReadVolumeAttributesClass Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass mtype
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass mtype
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass mtype
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass mtype
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.CreateVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteCollectionVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.DeleteVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ListVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.PatchVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ReadVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ReadVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ReadVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ReadVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StorageV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StorageV1alpha1.ReplaceVolumeAttributesClass Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StorageV1alpha1: listVolumeAttributesClass :: Accept accept -> KubernetesRequest ListVolumeAttributesClass MimeNoContent V1alpha1VolumeAttributesClassList accept
- Kubernetes.OpenAPI.API.StorageV1alpha1: patchVolumeAttributesClass :: (Consumes PatchVolumeAttributesClass contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> KubernetesRequest PatchVolumeAttributesClass contentType V1alpha1VolumeAttributesClass accept
- Kubernetes.OpenAPI.API.StorageV1alpha1: readVolumeAttributesClass :: Accept accept -> Name -> KubernetesRequest ReadVolumeAttributesClass MimeNoContent V1alpha1VolumeAttributesClass accept
- Kubernetes.OpenAPI.API.StorageV1alpha1: replaceVolumeAttributesClass :: (Consumes ReplaceVolumeAttributesClass contentType, MimeRender contentType V1alpha1VolumeAttributesClass) => ContentType contentType -> Accept accept -> V1alpha1VolumeAttributesClass -> Name -> KubernetesRequest ReplaceVolumeAttributesClass contentType V1alpha1VolumeAttributesClass accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: createStorageVersionMigration :: (Consumes CreateStorageVersionMigration contentType, MimeRender contentType V1alpha1StorageVersionMigration) => ContentType contentType -> Accept accept -> V1alpha1StorageVersionMigration -> KubernetesRequest CreateStorageVersionMigration contentType V1alpha1StorageVersionMigration accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data CreateStorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data DeleteCollectionStorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data DeleteStorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data GetAPIResources
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data ListStorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data PatchStorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data PatchStorageVersionMigrationStatus
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data ReadStorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data ReadStorageVersionMigrationStatus
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data ReplaceStorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: data ReplaceStorageVersionMigrationStatus
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: deleteCollectionStorageVersionMigration :: Consumes DeleteCollectionStorageVersionMigration contentType => ContentType contentType -> Accept accept -> KubernetesRequest DeleteCollectionStorageVersionMigration contentType V1Status accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: deleteStorageVersionMigration :: Consumes DeleteStorageVersionMigration contentType => ContentType contentType -> Accept accept -> Name -> KubernetesRequest DeleteStorageVersionMigration contentType V1Status accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: getAPIResources :: Accept accept -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.V1DeleteOptions
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.V1DeleteOptions
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.Body
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Body
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.Continue
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.FieldSelector
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.GracePeriodSeconds
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.LabelSelector
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.Limit
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.OrphanDependents
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.PropagationPolicy
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.ResourceVersion
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.ResourceVersionMatch
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.SendInitialEvents
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.TimeoutSeconds
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.GracePeriodSeconds
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.OrphanDependents
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.PropagationPolicy
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.AllowWatchBookmarks
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.Continue
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.FieldSelector
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.LabelSelector
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.Limit
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.ResourceVersion
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.ResourceVersionMatch
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.SendInitialEvents
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.TimeoutSeconds
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.Watch
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.Force
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Force
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.DryRun
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.FieldManager
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.FieldValidation
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Pretty
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration mtype
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration mtype
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration mtype
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration mtype
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus mtype
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.CreateStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.DeleteStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1alpha1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: listStorageVersionMigration :: Accept accept -> KubernetesRequest ListStorageVersionMigration MimeNoContent V1alpha1StorageVersionMigrationList accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: patchStorageVersionMigration :: (Consumes PatchStorageVersionMigration contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> KubernetesRequest PatchStorageVersionMigration contentType V1alpha1StorageVersionMigration accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: patchStorageVersionMigrationStatus :: (Consumes PatchStorageVersionMigrationStatus contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> KubernetesRequest PatchStorageVersionMigrationStatus contentType V1alpha1StorageVersionMigration accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: readStorageVersionMigration :: Accept accept -> Name -> KubernetesRequest ReadStorageVersionMigration MimeNoContent V1alpha1StorageVersionMigration accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: readStorageVersionMigrationStatus :: Accept accept -> Name -> KubernetesRequest ReadStorageVersionMigrationStatus MimeNoContent V1alpha1StorageVersionMigration accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: replaceStorageVersionMigration :: (Consumes ReplaceStorageVersionMigration contentType, MimeRender contentType V1alpha1StorageVersionMigration) => ContentType contentType -> Accept accept -> V1alpha1StorageVersionMigration -> Name -> KubernetesRequest ReplaceStorageVersionMigration contentType V1alpha1StorageVersionMigration accept
- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1: replaceStorageVersionMigrationStatus :: (Consumes ReplaceStorageVersionMigrationStatus contentType, MimeRender contentType V1alpha1StorageVersionMigration) => ContentType contentType -> Accept accept -> V1alpha1StorageVersionMigration -> Name -> KubernetesRequest ReplaceStorageVersionMigrationStatus contentType V1alpha1StorageVersionMigration accept
- Kubernetes.OpenAPI.Model: V1alpha1GroupVersionResource :: !Maybe Text -> !Maybe Text -> !Maybe Text -> V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.Model: V1alpha1MigrationCondition :: !Maybe DateTime -> !Maybe Text -> !Maybe Text -> !Text -> !Text -> V1alpha1MigrationCondition
- Kubernetes.OpenAPI.Model: V1alpha1PodCertificateRequest :: !Maybe Text -> !Maybe Text -> !Maybe V1ObjectMeta -> !V1alpha1PodCertificateRequestSpec -> !Maybe V1alpha1PodCertificateRequestStatus -> V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.Model: V1alpha1PodCertificateRequestList :: !Maybe Text -> ![V1alpha1PodCertificateRequest] -> !Maybe Text -> !Maybe V1ListMeta -> V1alpha1PodCertificateRequestList
- Kubernetes.OpenAPI.Model: V1alpha1PodCertificateRequestSpec :: !Maybe Int -> !Text -> !Text -> !ByteArray -> !Text -> !Text -> !ByteArray -> !Text -> !Text -> !Text -> V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.Model: V1alpha1PodCertificateRequestStatus :: !Maybe DateTime -> !Maybe Text -> !Maybe [V1Condition] -> !Maybe DateTime -> !Maybe DateTime -> V1alpha1PodCertificateRequestStatus
- Kubernetes.OpenAPI.Model: V1alpha1StorageVersionMigration :: !Maybe Text -> !Maybe Text -> !Maybe V1ObjectMeta -> !Maybe V1alpha1StorageVersionMigrationSpec -> !Maybe V1alpha1StorageVersionMigrationStatus -> V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.Model: V1alpha1StorageVersionMigrationList :: !Maybe Text -> ![V1alpha1StorageVersionMigration] -> !Maybe Text -> !Maybe V1ListMeta -> V1alpha1StorageVersionMigrationList
- Kubernetes.OpenAPI.Model: V1alpha1StorageVersionMigrationSpec :: !Maybe Text -> !V1alpha1GroupVersionResource -> V1alpha1StorageVersionMigrationSpec
- Kubernetes.OpenAPI.Model: V1alpha1StorageVersionMigrationStatus :: !Maybe [V1alpha1MigrationCondition] -> !Maybe Text -> V1alpha1StorageVersionMigrationStatus
- Kubernetes.OpenAPI.Model: V1alpha1VolumeAttributesClass :: !Maybe Text -> !Text -> !Maybe Text -> !Maybe V1ObjectMeta -> !Maybe (Map String Text) -> V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.Model: V1alpha1VolumeAttributesClassList :: !Maybe Text -> ![V1alpha1VolumeAttributesClass] -> !Maybe Text -> !Maybe V1ListMeta -> V1alpha1VolumeAttributesClassList
- Kubernetes.OpenAPI.Model: V1alpha3CELDeviceSelector :: !Text -> V1alpha3CELDeviceSelector
- Kubernetes.OpenAPI.Model: V1alpha3DeviceSelector :: !Maybe V1alpha3CELDeviceSelector -> V1alpha3DeviceSelector
- Kubernetes.OpenAPI.Model: [v1alpha1GroupVersionResourceGroup] :: V1alpha1GroupVersionResource -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1GroupVersionResourceResource] :: V1alpha1GroupVersionResource -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1GroupVersionResourceVersion] :: V1alpha1GroupVersionResource -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1MigrationConditionLastUpdateTime] :: V1alpha1MigrationCondition -> !Maybe DateTime
- Kubernetes.OpenAPI.Model: [v1alpha1MigrationConditionMessage] :: V1alpha1MigrationCondition -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1MigrationConditionReason] :: V1alpha1MigrationCondition -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1MigrationConditionStatus] :: V1alpha1MigrationCondition -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1MigrationConditionType] :: V1alpha1MigrationCondition -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestApiVersion] :: V1alpha1PodCertificateRequest -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestKind] :: V1alpha1PodCertificateRequest -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestListApiVersion] :: V1alpha1PodCertificateRequestList -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestListItems] :: V1alpha1PodCertificateRequestList -> ![V1alpha1PodCertificateRequest]
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestListKind] :: V1alpha1PodCertificateRequestList -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestListMetadata] :: V1alpha1PodCertificateRequestList -> !Maybe V1ListMeta
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestMetadata] :: V1alpha1PodCertificateRequest -> !Maybe V1ObjectMeta
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecMaxExpirationSeconds] :: V1alpha1PodCertificateRequestSpec -> !Maybe Int
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecNodeName] :: V1alpha1PodCertificateRequestSpec -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecNodeUid] :: V1alpha1PodCertificateRequestSpec -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecPkixPublicKey] :: V1alpha1PodCertificateRequestSpec -> !ByteArray
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecPodName] :: V1alpha1PodCertificateRequestSpec -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecPodUid] :: V1alpha1PodCertificateRequestSpec -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecProofOfPossession] :: V1alpha1PodCertificateRequestSpec -> !ByteArray
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecServiceAccountName] :: V1alpha1PodCertificateRequestSpec -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecServiceAccountUid] :: V1alpha1PodCertificateRequestSpec -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpecSignerName] :: V1alpha1PodCertificateRequestSpec -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestSpec] :: V1alpha1PodCertificateRequest -> !V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestStatusBeginRefreshAt] :: V1alpha1PodCertificateRequestStatus -> !Maybe DateTime
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestStatusCertificateChain] :: V1alpha1PodCertificateRequestStatus -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestStatusConditions] :: V1alpha1PodCertificateRequestStatus -> !Maybe [V1Condition]
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestStatusNotAfter] :: V1alpha1PodCertificateRequestStatus -> !Maybe DateTime
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestStatusNotBefore] :: V1alpha1PodCertificateRequestStatus -> !Maybe DateTime
- Kubernetes.OpenAPI.Model: [v1alpha1PodCertificateRequestStatus] :: V1alpha1PodCertificateRequest -> !Maybe V1alpha1PodCertificateRequestStatus
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationApiVersion] :: V1alpha1StorageVersionMigration -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationKind] :: V1alpha1StorageVersionMigration -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationListApiVersion] :: V1alpha1StorageVersionMigrationList -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationListItems] :: V1alpha1StorageVersionMigrationList -> ![V1alpha1StorageVersionMigration]
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationListKind] :: V1alpha1StorageVersionMigrationList -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationListMetadata] :: V1alpha1StorageVersionMigrationList -> !Maybe V1ListMeta
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationMetadata] :: V1alpha1StorageVersionMigration -> !Maybe V1ObjectMeta
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationSpecContinueToken] :: V1alpha1StorageVersionMigrationSpec -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationSpecResource] :: V1alpha1StorageVersionMigrationSpec -> !V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationSpec] :: V1alpha1StorageVersionMigration -> !Maybe V1alpha1StorageVersionMigrationSpec
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationStatusConditions] :: V1alpha1StorageVersionMigrationStatus -> !Maybe [V1alpha1MigrationCondition]
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationStatusResourceVersion] :: V1alpha1StorageVersionMigrationStatus -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1StorageVersionMigrationStatus] :: V1alpha1StorageVersionMigration -> !Maybe V1alpha1StorageVersionMigrationStatus
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassApiVersion] :: V1alpha1VolumeAttributesClass -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassDriverName] :: V1alpha1VolumeAttributesClass -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassKind] :: V1alpha1VolumeAttributesClass -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassListApiVersion] :: V1alpha1VolumeAttributesClassList -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassListItems] :: V1alpha1VolumeAttributesClassList -> ![V1alpha1VolumeAttributesClass]
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassListKind] :: V1alpha1VolumeAttributesClassList -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassListMetadata] :: V1alpha1VolumeAttributesClassList -> !Maybe V1ListMeta
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassMetadata] :: V1alpha1VolumeAttributesClass -> !Maybe V1ObjectMeta
- Kubernetes.OpenAPI.Model: [v1alpha1VolumeAttributesClassParameters] :: V1alpha1VolumeAttributesClass -> !Maybe (Map String Text)
- Kubernetes.OpenAPI.Model: [v1alpha3CELDeviceSelectorExpression] :: V1alpha3CELDeviceSelector -> !Text
- Kubernetes.OpenAPI.Model: [v1alpha3DeviceSelectorCel] :: V1alpha3DeviceSelector -> !Maybe V1alpha3CELDeviceSelector
- Kubernetes.OpenAPI.Model: [v1alpha3DeviceTaintSelectorDeviceClassName] :: V1alpha3DeviceTaintSelector -> !Maybe Text
- Kubernetes.OpenAPI.Model: [v1alpha3DeviceTaintSelectorSelectors] :: V1alpha3DeviceTaintSelector -> !Maybe [V1alpha3DeviceSelector]
- Kubernetes.OpenAPI.Model: data V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.Model: data V1alpha1MigrationCondition
- Kubernetes.OpenAPI.Model: data V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.Model: data V1alpha1PodCertificateRequestList
- Kubernetes.OpenAPI.Model: data V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.Model: data V1alpha1PodCertificateRequestStatus
- Kubernetes.OpenAPI.Model: data V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.Model: data V1alpha1StorageVersionMigrationList
- Kubernetes.OpenAPI.Model: data V1alpha1StorageVersionMigrationSpec
- Kubernetes.OpenAPI.Model: data V1alpha1StorageVersionMigrationStatus
- Kubernetes.OpenAPI.Model: data V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.Model: data V1alpha1VolumeAttributesClassList
- Kubernetes.OpenAPI.Model: data V1alpha3CELDeviceSelector
- Kubernetes.OpenAPI.Model: data V1alpha3DeviceSelector
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1MigrationCondition
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestList
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestStatus
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationList
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationSpec
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationStatus
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClassList
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha3CELDeviceSelector
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha3DeviceSelector
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1MigrationCondition
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestList
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestStatus
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationList
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationSpec
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationStatus
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClassList
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha3CELDeviceSelector
- Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha3DeviceSelector
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1MigrationCondition
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestList
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestStatus
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationList
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationSpec
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationStatus
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClassList
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha3CELDeviceSelector
- Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha3DeviceSelector
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1MigrationCondition
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestList
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1PodCertificateRequestStatus
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationList
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationSpec
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1StorageVersionMigrationStatus
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1VolumeAttributesClassList
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha3CELDeviceSelector
- Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha3DeviceSelector
- Kubernetes.OpenAPI.Model: mkV1alpha1GroupVersionResource :: V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.Model: mkV1alpha1MigrationCondition :: Text -> Text -> V1alpha1MigrationCondition
- Kubernetes.OpenAPI.Model: mkV1alpha1PodCertificateRequest :: V1alpha1PodCertificateRequestSpec -> V1alpha1PodCertificateRequest
- Kubernetes.OpenAPI.Model: mkV1alpha1PodCertificateRequestList :: [V1alpha1PodCertificateRequest] -> V1alpha1PodCertificateRequestList
- Kubernetes.OpenAPI.Model: mkV1alpha1PodCertificateRequestSpec :: Text -> Text -> ByteArray -> Text -> Text -> ByteArray -> Text -> Text -> Text -> V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.Model: mkV1alpha1PodCertificateRequestStatus :: V1alpha1PodCertificateRequestStatus
- Kubernetes.OpenAPI.Model: mkV1alpha1StorageVersionMigration :: V1alpha1StorageVersionMigration
- Kubernetes.OpenAPI.Model: mkV1alpha1StorageVersionMigrationList :: [V1alpha1StorageVersionMigration] -> V1alpha1StorageVersionMigrationList
- Kubernetes.OpenAPI.Model: mkV1alpha1StorageVersionMigrationSpec :: V1alpha1GroupVersionResource -> V1alpha1StorageVersionMigrationSpec
- Kubernetes.OpenAPI.Model: mkV1alpha1StorageVersionMigrationStatus :: V1alpha1StorageVersionMigrationStatus
- Kubernetes.OpenAPI.Model: mkV1alpha1VolumeAttributesClass :: Text -> V1alpha1VolumeAttributesClass
- Kubernetes.OpenAPI.Model: mkV1alpha1VolumeAttributesClassList :: [V1alpha1VolumeAttributesClass] -> V1alpha1VolumeAttributesClassList
- Kubernetes.OpenAPI.Model: mkV1alpha3CELDeviceSelector :: Text -> V1alpha3CELDeviceSelector
- Kubernetes.OpenAPI.Model: mkV1alpha3DeviceSelector :: V1alpha3DeviceSelector
- Kubernetes.OpenAPI.ModelLens: v1alpha1GroupVersionResourceGroupL :: Lens_' V1alpha1GroupVersionResource (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1GroupVersionResourceResourceL :: Lens_' V1alpha1GroupVersionResource (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1GroupVersionResourceVersionL :: Lens_' V1alpha1GroupVersionResource (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1MigrationConditionLastUpdateTimeL :: Lens_' V1alpha1MigrationCondition (Maybe DateTime)
- Kubernetes.OpenAPI.ModelLens: v1alpha1MigrationConditionMessageL :: Lens_' V1alpha1MigrationCondition (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1MigrationConditionReasonL :: Lens_' V1alpha1MigrationCondition (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1MigrationConditionStatusL :: Lens_' V1alpha1MigrationCondition Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1MigrationConditionTypeL :: Lens_' V1alpha1MigrationCondition Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestApiVersionL :: Lens_' V1alpha1PodCertificateRequest (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestKindL :: Lens_' V1alpha1PodCertificateRequest (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestListApiVersionL :: Lens_' V1alpha1PodCertificateRequestList (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestListItemsL :: Lens_' V1alpha1PodCertificateRequestList [V1alpha1PodCertificateRequest]
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestListKindL :: Lens_' V1alpha1PodCertificateRequestList (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestListMetadataL :: Lens_' V1alpha1PodCertificateRequestList (Maybe V1ListMeta)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestMetadataL :: Lens_' V1alpha1PodCertificateRequest (Maybe V1ObjectMeta)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecL :: Lens_' V1alpha1PodCertificateRequest V1alpha1PodCertificateRequestSpec
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecMaxExpirationSecondsL :: Lens_' V1alpha1PodCertificateRequestSpec (Maybe Int)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecNodeNameL :: Lens_' V1alpha1PodCertificateRequestSpec Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecNodeUidL :: Lens_' V1alpha1PodCertificateRequestSpec Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecPkixPublicKeyL :: Lens_' V1alpha1PodCertificateRequestSpec ByteArray
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecPodNameL :: Lens_' V1alpha1PodCertificateRequestSpec Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecPodUidL :: Lens_' V1alpha1PodCertificateRequestSpec Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecProofOfPossessionL :: Lens_' V1alpha1PodCertificateRequestSpec ByteArray
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecServiceAccountNameL :: Lens_' V1alpha1PodCertificateRequestSpec Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecServiceAccountUidL :: Lens_' V1alpha1PodCertificateRequestSpec Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestSpecSignerNameL :: Lens_' V1alpha1PodCertificateRequestSpec Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestStatusBeginRefreshAtL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe DateTime)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestStatusCertificateChainL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestStatusConditionsL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe [V1Condition])
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestStatusL :: Lens_' V1alpha1PodCertificateRequest (Maybe V1alpha1PodCertificateRequestStatus)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestStatusNotAfterL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe DateTime)
- Kubernetes.OpenAPI.ModelLens: v1alpha1PodCertificateRequestStatusNotBeforeL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe DateTime)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationApiVersionL :: Lens_' V1alpha1StorageVersionMigration (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationKindL :: Lens_' V1alpha1StorageVersionMigration (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationListApiVersionL :: Lens_' V1alpha1StorageVersionMigrationList (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationListItemsL :: Lens_' V1alpha1StorageVersionMigrationList [V1alpha1StorageVersionMigration]
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationListKindL :: Lens_' V1alpha1StorageVersionMigrationList (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationListMetadataL :: Lens_' V1alpha1StorageVersionMigrationList (Maybe V1ListMeta)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationMetadataL :: Lens_' V1alpha1StorageVersionMigration (Maybe V1ObjectMeta)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationSpecContinueTokenL :: Lens_' V1alpha1StorageVersionMigrationSpec (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationSpecL :: Lens_' V1alpha1StorageVersionMigration (Maybe V1alpha1StorageVersionMigrationSpec)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationSpecResourceL :: Lens_' V1alpha1StorageVersionMigrationSpec V1alpha1GroupVersionResource
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationStatusConditionsL :: Lens_' V1alpha1StorageVersionMigrationStatus (Maybe [V1alpha1MigrationCondition])
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationStatusL :: Lens_' V1alpha1StorageVersionMigration (Maybe V1alpha1StorageVersionMigrationStatus)
- Kubernetes.OpenAPI.ModelLens: v1alpha1StorageVersionMigrationStatusResourceVersionL :: Lens_' V1alpha1StorageVersionMigrationStatus (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassApiVersionL :: Lens_' V1alpha1VolumeAttributesClass (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassDriverNameL :: Lens_' V1alpha1VolumeAttributesClass Text
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassKindL :: Lens_' V1alpha1VolumeAttributesClass (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassListApiVersionL :: Lens_' V1alpha1VolumeAttributesClassList (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassListItemsL :: Lens_' V1alpha1VolumeAttributesClassList [V1alpha1VolumeAttributesClass]
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassListKindL :: Lens_' V1alpha1VolumeAttributesClassList (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassListMetadataL :: Lens_' V1alpha1VolumeAttributesClassList (Maybe V1ListMeta)
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassMetadataL :: Lens_' V1alpha1VolumeAttributesClass (Maybe V1ObjectMeta)
- Kubernetes.OpenAPI.ModelLens: v1alpha1VolumeAttributesClassParametersL :: Lens_' V1alpha1VolumeAttributesClass (Maybe (Map String Text))
- Kubernetes.OpenAPI.ModelLens: v1alpha3CELDeviceSelectorExpressionL :: Lens_' V1alpha3CELDeviceSelector Text
- Kubernetes.OpenAPI.ModelLens: v1alpha3DeviceSelectorCelL :: Lens_' V1alpha3DeviceSelector (Maybe V1alpha3CELDeviceSelector)
- Kubernetes.OpenAPI.ModelLens: v1alpha3DeviceTaintSelectorDeviceClassNameL :: Lens_' V1alpha3DeviceTaintSelector (Maybe Text)
- Kubernetes.OpenAPI.ModelLens: v1alpha3DeviceTaintSelectorSelectorsL :: Lens_' V1alpha3DeviceTaintSelector (Maybe [V1alpha3DeviceSelector])
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: createNamespacedPodCertificateRequest :: (Consumes CreateNamespacedPodCertificateRequest contentType, MimeRender contentType V1beta1PodCertificateRequest) => ContentType contentType -> Accept accept -> V1beta1PodCertificateRequest -> Namespace -> KubernetesRequest CreateNamespacedPodCertificateRequest contentType V1beta1PodCertificateRequest accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data CreateNamespacedPodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data DeleteCollectionNamespacedPodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data DeleteNamespacedPodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data ListNamespacedPodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data ListPodCertificateRequestForAllNamespaces
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data PatchNamespacedPodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data PatchNamespacedPodCertificateRequestStatus
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data ReadNamespacedPodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data ReadNamespacedPodCertificateRequestStatus
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data ReplaceNamespacedPodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: data ReplaceNamespacedPodCertificateRequestStatus
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: deleteCollectionNamespacedPodCertificateRequest :: Consumes DeleteCollectionNamespacedPodCertificateRequest contentType => ContentType contentType -> Accept accept -> Namespace -> KubernetesRequest DeleteCollectionNamespacedPodCertificateRequest contentType V1Status accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: deleteNamespacedPodCertificateRequest :: Consumes DeleteNamespacedPodCertificateRequest contentType => ContentType contentType -> Accept accept -> Name -> Namespace -> KubernetesRequest DeleteNamespacedPodCertificateRequest contentType V1Status accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.V1DeleteOptions
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.V1DeleteOptions
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Body
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Body
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Continue
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldSelector
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.GracePeriodSeconds
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.LabelSelector
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Limit
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.OrphanDependents
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.PropagationPolicy
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.ResourceVersion
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.ResourceVersionMatch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.SendInitialEvents
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.TimeoutSeconds
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.GracePeriodSeconds
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.OrphanDependents
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.PropagationPolicy
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.AllowWatchBookmarks
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Continue
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldSelector
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.LabelSelector
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Limit
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.ResourceVersion
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.ResourceVersionMatch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.SendInitialEvents
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.TimeoutSeconds
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Watch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.AllowWatchBookmarks
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.Continue
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.FieldSelector
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.LabelSelector
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.Limit
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.ResourceVersion
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.ResourceVersionMatch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.SendInitialEvents
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.TimeoutSeconds
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.Model.Watch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Force
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Force
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest mtype
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest mtype
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest mtype
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest mtype
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus mtype
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.CreateNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteCollectionNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.DeleteNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ListPodCertificateRequestForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.PatchNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReadNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequest Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.CertificatesV1beta1.ReplaceNamespacedPodCertificateRequestStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: listNamespacedPodCertificateRequest :: Accept accept -> Namespace -> KubernetesRequest ListNamespacedPodCertificateRequest MimeNoContent V1beta1PodCertificateRequestList accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: listPodCertificateRequestForAllNamespaces :: Accept accept -> KubernetesRequest ListPodCertificateRequestForAllNamespaces MimeNoContent V1beta1PodCertificateRequestList accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: patchNamespacedPodCertificateRequest :: (Consumes PatchNamespacedPodCertificateRequest contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> Namespace -> KubernetesRequest PatchNamespacedPodCertificateRequest contentType V1beta1PodCertificateRequest accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: patchNamespacedPodCertificateRequestStatus :: (Consumes PatchNamespacedPodCertificateRequestStatus contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> Namespace -> KubernetesRequest PatchNamespacedPodCertificateRequestStatus contentType V1beta1PodCertificateRequest accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: readNamespacedPodCertificateRequest :: Accept accept -> Name -> Namespace -> KubernetesRequest ReadNamespacedPodCertificateRequest MimeNoContent V1beta1PodCertificateRequest accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: readNamespacedPodCertificateRequestStatus :: Accept accept -> Name -> Namespace -> KubernetesRequest ReadNamespacedPodCertificateRequestStatus MimeNoContent V1beta1PodCertificateRequest accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: replaceNamespacedPodCertificateRequest :: (Consumes ReplaceNamespacedPodCertificateRequest contentType, MimeRender contentType V1beta1PodCertificateRequest) => ContentType contentType -> Accept accept -> V1beta1PodCertificateRequest -> Name -> Namespace -> KubernetesRequest ReplaceNamespacedPodCertificateRequest contentType V1beta1PodCertificateRequest accept
+ Kubernetes.OpenAPI.API.CertificatesV1beta1: replaceNamespacedPodCertificateRequestStatus :: (Consumes ReplaceNamespacedPodCertificateRequestStatus contentType, MimeRender contentType V1beta1PodCertificateRequest) => ContentType contentType -> Accept accept -> V1beta1PodCertificateRequest -> Name -> Namespace -> KubernetesRequest ReplaceNamespacedPodCertificateRequestStatus contentType V1beta1PodCertificateRequest accept
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: data PatchDeviceTaintRuleStatus
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: data ReadDeviceTaintRuleStatus
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: data ReplaceDeviceTaintRuleStatus
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.Body
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.V1alpha3DeviceTaintRule
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.Force
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.ReadDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus mtype
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.PatchDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.ReadDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.ReadDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.ReadDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.ReadDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.ResourceV1alpha3.ReplaceDeviceTaintRuleStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: patchDeviceTaintRuleStatus :: (Consumes PatchDeviceTaintRuleStatus contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> KubernetesRequest PatchDeviceTaintRuleStatus contentType V1alpha3DeviceTaintRule accept
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: readDeviceTaintRuleStatus :: Accept accept -> Name -> KubernetesRequest ReadDeviceTaintRuleStatus MimeNoContent V1alpha3DeviceTaintRule accept
+ Kubernetes.OpenAPI.API.ResourceV1alpha3: replaceDeviceTaintRuleStatus :: (Consumes ReplaceDeviceTaintRuleStatus contentType, MimeRender contentType V1alpha3DeviceTaintRule) => ContentType contentType -> Accept accept -> V1alpha3DeviceTaintRule -> Name -> KubernetesRequest ReplaceDeviceTaintRuleStatus contentType V1alpha3DeviceTaintRule accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: createNamespacedWorkload :: (Consumes CreateNamespacedWorkload contentType, MimeRender contentType V1alpha1Workload) => ContentType contentType -> Accept accept -> V1alpha1Workload -> Namespace -> KubernetesRequest CreateNamespacedWorkload contentType V1alpha1Workload accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data CreateNamespacedWorkload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data DeleteCollectionNamespacedWorkload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data DeleteNamespacedWorkload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data GetAPIResources
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data ListNamespacedWorkload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data ListWorkloadForAllNamespaces
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data PatchNamespacedWorkload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data ReadNamespacedWorkload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: data ReplaceNamespacedWorkload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: deleteCollectionNamespacedWorkload :: Consumes DeleteCollectionNamespacedWorkload contentType => ContentType contentType -> Accept accept -> Namespace -> KubernetesRequest DeleteCollectionNamespacedWorkload contentType V1Status accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: deleteNamespacedWorkload :: Consumes DeleteNamespacedWorkload contentType => ContentType contentType -> Accept accept -> Name -> Namespace -> KubernetesRequest DeleteNamespacedWorkload contentType V1Status accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: getAPIResources :: Accept accept -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.Model.V1alpha1Workload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.V1DeleteOptions
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.Model.V1DeleteOptions
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.Model.Body
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.Model.V1alpha1Workload
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.Continue
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.FieldSelector
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.GracePeriodSeconds
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.LabelSelector
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.Limit
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.OrphanDependents
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.PropagationPolicy
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.ResourceVersion
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.ResourceVersionMatch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.SendInitialEvents
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.Model.TimeoutSeconds
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.Model.GracePeriodSeconds
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.Model.OrphanDependents
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.Model.PropagationPolicy
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.AllowWatchBookmarks
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.Continue
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.FieldSelector
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.LabelSelector
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.Limit
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.ResourceVersion
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.ResourceVersionMatch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.SendInitialEvents
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.TimeoutSeconds
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.Model.Watch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.AllowWatchBookmarks
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.Continue
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.FieldSelector
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.LabelSelector
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.Limit
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.ResourceVersion
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.ResourceVersionMatch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.SendInitialEvents
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.TimeoutSeconds
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.Model.Watch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.Model.Force
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReadNamespacedWorkload Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload mtype
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload mtype
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload mtype
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload mtype
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.CreateNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteCollectionNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.DeleteNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ListWorkloadForAllNamespaces Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.PatchNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReadNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReadNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReadNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReadNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.SchedulingV1alpha1.ReplaceNamespacedWorkload Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: listNamespacedWorkload :: Accept accept -> Namespace -> KubernetesRequest ListNamespacedWorkload MimeNoContent V1alpha1WorkloadList accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: listWorkloadForAllNamespaces :: Accept accept -> KubernetesRequest ListWorkloadForAllNamespaces MimeNoContent V1alpha1WorkloadList accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: patchNamespacedWorkload :: (Consumes PatchNamespacedWorkload contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> Namespace -> KubernetesRequest PatchNamespacedWorkload contentType V1alpha1Workload accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: readNamespacedWorkload :: Accept accept -> Name -> Namespace -> KubernetesRequest ReadNamespacedWorkload MimeNoContent V1alpha1Workload accept
+ Kubernetes.OpenAPI.API.SchedulingV1alpha1: replaceNamespacedWorkload :: (Consumes ReplaceNamespacedWorkload contentType, MimeRender contentType V1alpha1Workload) => ContentType contentType -> Accept accept -> V1alpha1Workload -> Name -> Namespace -> KubernetesRequest ReplaceNamespacedWorkload contentType V1alpha1Workload accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: createStorageVersionMigration :: (Consumes CreateStorageVersionMigration contentType, MimeRender contentType V1beta1StorageVersionMigration) => ContentType contentType -> Accept accept -> V1beta1StorageVersionMigration -> KubernetesRequest CreateStorageVersionMigration contentType V1beta1StorageVersionMigration accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data CreateStorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data DeleteCollectionStorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data DeleteStorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data GetAPIResources
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data ListStorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data PatchStorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data PatchStorageVersionMigrationStatus
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data ReadStorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data ReadStorageVersionMigrationStatus
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data ReplaceStorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: data ReplaceStorageVersionMigrationStatus
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: deleteCollectionStorageVersionMigration :: Consumes DeleteCollectionStorageVersionMigration contentType => ContentType contentType -> Accept accept -> KubernetesRequest DeleteCollectionStorageVersionMigration contentType V1Status accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: deleteStorageVersionMigration :: Consumes DeleteStorageVersionMigration contentType => ContentType contentType -> Accept accept -> Name -> KubernetesRequest DeleteStorageVersionMigration contentType V1Status accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: getAPIResources :: Accept accept -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.V1DeleteOptions
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.V1DeleteOptions
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.Body
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Body
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasBodyParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.Continue
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.FieldSelector
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.GracePeriodSeconds
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.LabelSelector
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.Limit
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.OrphanDependents
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.PropagationPolicy
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.ResourceVersion
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.ResourceVersionMatch
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.SendInitialEvents
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.Model.TimeoutSeconds
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.GracePeriodSeconds
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.IgnoreStoreReadErrorWithClusterBreakingPotential
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.OrphanDependents
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.Model.PropagationPolicy
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.AllowWatchBookmarks
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.Continue
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.FieldSelector
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.LabelSelector
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.Limit
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.ResourceVersion
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.ResourceVersionMatch
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.SendInitialEvents
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.TimeoutSeconds
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.Model.Watch
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.Force
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Force
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.DryRun
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.FieldManager
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.FieldValidation
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.Core.HasOptionalParam Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.Model.Pretty
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchcbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeApplyPatchyaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeJsonPatchjson
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeMergePatchjson
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeStrategicMergePatchjson
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration mtype
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration mtype
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration mtype
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration mtype
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.MimeType mtype => Kubernetes.OpenAPI.MimeTypes.Consumes Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus mtype
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.CreateStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteCollectionStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.DeleteStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.GetAPIResources Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCborSeq
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJsonstreamwatch
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobufstreamwatch
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ListStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.PatchStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReadStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigration Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeCbor
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeJSON
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeVndKubernetesProtobuf
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: instance Kubernetes.OpenAPI.MimeTypes.Produces Kubernetes.OpenAPI.API.StoragemigrationV1beta1.ReplaceStorageVersionMigrationStatus Kubernetes.OpenAPI.MimeTypes.MimeYaml
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: listStorageVersionMigration :: Accept accept -> KubernetesRequest ListStorageVersionMigration MimeNoContent V1beta1StorageVersionMigrationList accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: patchStorageVersionMigration :: (Consumes PatchStorageVersionMigration contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> KubernetesRequest PatchStorageVersionMigration contentType V1beta1StorageVersionMigration accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: patchStorageVersionMigrationStatus :: (Consumes PatchStorageVersionMigrationStatus contentType, MimeRender contentType Body) => ContentType contentType -> Accept accept -> Body -> Name -> KubernetesRequest PatchStorageVersionMigrationStatus contentType V1beta1StorageVersionMigration accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: readStorageVersionMigration :: Accept accept -> Name -> KubernetesRequest ReadStorageVersionMigration MimeNoContent V1beta1StorageVersionMigration accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: readStorageVersionMigrationStatus :: Accept accept -> Name -> KubernetesRequest ReadStorageVersionMigrationStatus MimeNoContent V1beta1StorageVersionMigration accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: replaceStorageVersionMigration :: (Consumes ReplaceStorageVersionMigration contentType, MimeRender contentType V1beta1StorageVersionMigration) => ContentType contentType -> Accept accept -> V1beta1StorageVersionMigration -> Name -> KubernetesRequest ReplaceStorageVersionMigration contentType V1beta1StorageVersionMigration accept
+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1: replaceStorageVersionMigrationStatus :: (Consumes ReplaceStorageVersionMigrationStatus contentType, MimeRender contentType V1beta1StorageVersionMigration) => ContentType contentType -> Accept accept -> V1beta1StorageVersionMigration -> Name -> KubernetesRequest ReplaceStorageVersionMigrationStatus contentType V1beta1StorageVersionMigration accept
+ Kubernetes.OpenAPI.Model: V1GroupResource :: !Text -> !Text -> V1GroupResource
+ Kubernetes.OpenAPI.Model: V1WorkloadReference :: !Text -> !Text -> !Maybe Text -> V1WorkloadReference
+ Kubernetes.OpenAPI.Model: V1alpha1GangSchedulingPolicy :: !Int -> V1alpha1GangSchedulingPolicy
+ Kubernetes.OpenAPI.Model: V1alpha1PodGroup :: !Text -> !V1alpha1PodGroupPolicy -> V1alpha1PodGroup
+ Kubernetes.OpenAPI.Model: V1alpha1PodGroupPolicy :: !Maybe Value -> !Maybe V1alpha1GangSchedulingPolicy -> V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.Model: V1alpha1TypedLocalObjectReference :: !Maybe Text -> !Text -> !Text -> V1alpha1TypedLocalObjectReference
+ Kubernetes.OpenAPI.Model: V1alpha1Workload :: !Maybe Text -> !Maybe Text -> !Maybe V1ObjectMeta -> !V1alpha1WorkloadSpec -> V1alpha1Workload
+ Kubernetes.OpenAPI.Model: V1alpha1WorkloadList :: !Maybe Text -> ![V1alpha1Workload] -> !Maybe Text -> !Maybe V1ListMeta -> V1alpha1WorkloadList
+ Kubernetes.OpenAPI.Model: V1alpha1WorkloadSpec :: !Maybe V1alpha1TypedLocalObjectReference -> ![V1alpha1PodGroup] -> V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.Model: V1alpha3DeviceTaintRuleStatus :: !Maybe [V1Condition] -> V1alpha3DeviceTaintRuleStatus
+ Kubernetes.OpenAPI.Model: V1beta1PodCertificateRequest :: !Maybe Text -> !Maybe Text -> !Maybe V1ObjectMeta -> !V1beta1PodCertificateRequestSpec -> !Maybe V1beta1PodCertificateRequestStatus -> V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.Model: V1beta1PodCertificateRequestList :: !Maybe Text -> ![V1beta1PodCertificateRequest] -> !Maybe Text -> !Maybe V1ListMeta -> V1beta1PodCertificateRequestList
+ Kubernetes.OpenAPI.Model: V1beta1PodCertificateRequestSpec :: !Maybe Int -> !Text -> !Text -> !ByteArray -> !Text -> !Text -> !ByteArray -> !Text -> !Text -> !Text -> !Maybe (Map String Text) -> V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.Model: V1beta1PodCertificateRequestStatus :: !Maybe DateTime -> !Maybe Text -> !Maybe [V1Condition] -> !Maybe DateTime -> !Maybe DateTime -> V1beta1PodCertificateRequestStatus
+ Kubernetes.OpenAPI.Model: V1beta1StorageVersionMigration :: !Maybe Text -> !Maybe Text -> !Maybe V1ObjectMeta -> !Maybe V1beta1StorageVersionMigrationSpec -> !Maybe V1beta1StorageVersionMigrationStatus -> V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.Model: V1beta1StorageVersionMigrationList :: !Maybe Text -> ![V1beta1StorageVersionMigration] -> !Maybe Text -> !Maybe V1ListMeta -> V1beta1StorageVersionMigrationList
+ Kubernetes.OpenAPI.Model: V1beta1StorageVersionMigrationSpec :: !V1GroupResource -> V1beta1StorageVersionMigrationSpec
+ Kubernetes.OpenAPI.Model: V1beta1StorageVersionMigrationStatus :: !Maybe [V1Condition] -> !Maybe Text -> V1beta1StorageVersionMigrationStatus
+ Kubernetes.OpenAPI.Model: [v1CSIDriverSpecServiceAccountTokenInSecrets] :: V1CSIDriverSpec -> !Maybe Bool
+ Kubernetes.OpenAPI.Model: [v1CustomResourceDefinitionConditionObservedGeneration] :: V1CustomResourceDefinitionCondition -> !Maybe Integer
+ Kubernetes.OpenAPI.Model: [v1CustomResourceDefinitionStatusObservedGeneration] :: V1CustomResourceDefinitionStatus -> !Maybe Integer
+ Kubernetes.OpenAPI.Model: [v1GroupResourceGroup] :: V1GroupResource -> !Text
+ Kubernetes.OpenAPI.Model: [v1GroupResourceResource] :: V1GroupResource -> !Text
+ Kubernetes.OpenAPI.Model: [v1NodeStatusDeclaredFeatures] :: V1NodeStatus -> !Maybe [Text]
+ Kubernetes.OpenAPI.Model: [v1PodCertificateProjectionUserAnnotations] :: V1PodCertificateProjection -> !Maybe (Map String Text)
+ Kubernetes.OpenAPI.Model: [v1PodSpecWorkloadRef] :: V1PodSpec -> !Maybe V1WorkloadReference
+ Kubernetes.OpenAPI.Model: [v1PodStatusAllocatedResources] :: V1PodStatus -> !Maybe (Map String Quantity)
+ Kubernetes.OpenAPI.Model: [v1PodStatusResources] :: V1PodStatus -> !Maybe V1ResourceRequirements
+ Kubernetes.OpenAPI.Model: [v1WorkloadReferenceName] :: V1WorkloadReference -> !Text
+ Kubernetes.OpenAPI.Model: [v1WorkloadReferencePodGroupReplicaKey] :: V1WorkloadReference -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1WorkloadReferencePodGroup] :: V1WorkloadReference -> !Text
+ Kubernetes.OpenAPI.Model: [v1alpha1GangSchedulingPolicyMinCount] :: V1alpha1GangSchedulingPolicy -> !Int
+ Kubernetes.OpenAPI.Model: [v1alpha1PodGroupName] :: V1alpha1PodGroup -> !Text
+ Kubernetes.OpenAPI.Model: [v1alpha1PodGroupPolicyBasic] :: V1alpha1PodGroupPolicy -> !Maybe Value
+ Kubernetes.OpenAPI.Model: [v1alpha1PodGroupPolicyGang] :: V1alpha1PodGroupPolicy -> !Maybe V1alpha1GangSchedulingPolicy
+ Kubernetes.OpenAPI.Model: [v1alpha1PodGroupPolicy] :: V1alpha1PodGroup -> !V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.Model: [v1alpha1TypedLocalObjectReferenceApiGroup] :: V1alpha1TypedLocalObjectReference -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1alpha1TypedLocalObjectReferenceKind] :: V1alpha1TypedLocalObjectReference -> !Text
+ Kubernetes.OpenAPI.Model: [v1alpha1TypedLocalObjectReferenceName] :: V1alpha1TypedLocalObjectReference -> !Text
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadApiVersion] :: V1alpha1Workload -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadKind] :: V1alpha1Workload -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadListApiVersion] :: V1alpha1WorkloadList -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadListItems] :: V1alpha1WorkloadList -> ![V1alpha1Workload]
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadListKind] :: V1alpha1WorkloadList -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadListMetadata] :: V1alpha1WorkloadList -> !Maybe V1ListMeta
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadMetadata] :: V1alpha1Workload -> !Maybe V1ObjectMeta
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadSpecControllerRef] :: V1alpha1WorkloadSpec -> !Maybe V1alpha1TypedLocalObjectReference
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadSpecPodGroups] :: V1alpha1WorkloadSpec -> ![V1alpha1PodGroup]
+ Kubernetes.OpenAPI.Model: [v1alpha1WorkloadSpec] :: V1alpha1Workload -> !V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.Model: [v1alpha3DeviceTaintRuleStatusConditions] :: V1alpha3DeviceTaintRuleStatus -> !Maybe [V1Condition]
+ Kubernetes.OpenAPI.Model: [v1alpha3DeviceTaintRuleStatus] :: V1alpha3DeviceTaintRule -> !Maybe V1alpha3DeviceTaintRuleStatus
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestApiVersion] :: V1beta1PodCertificateRequest -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestKind] :: V1beta1PodCertificateRequest -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestListApiVersion] :: V1beta1PodCertificateRequestList -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestListItems] :: V1beta1PodCertificateRequestList -> ![V1beta1PodCertificateRequest]
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestListKind] :: V1beta1PodCertificateRequestList -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestListMetadata] :: V1beta1PodCertificateRequestList -> !Maybe V1ListMeta
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestMetadata] :: V1beta1PodCertificateRequest -> !Maybe V1ObjectMeta
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecMaxExpirationSeconds] :: V1beta1PodCertificateRequestSpec -> !Maybe Int
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecNodeName] :: V1beta1PodCertificateRequestSpec -> !Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecNodeUid] :: V1beta1PodCertificateRequestSpec -> !Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecPkixPublicKey] :: V1beta1PodCertificateRequestSpec -> !ByteArray
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecPodName] :: V1beta1PodCertificateRequestSpec -> !Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecPodUid] :: V1beta1PodCertificateRequestSpec -> !Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecProofOfPossession] :: V1beta1PodCertificateRequestSpec -> !ByteArray
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecServiceAccountName] :: V1beta1PodCertificateRequestSpec -> !Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecServiceAccountUid] :: V1beta1PodCertificateRequestSpec -> !Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecSignerName] :: V1beta1PodCertificateRequestSpec -> !Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations] :: V1beta1PodCertificateRequestSpec -> !Maybe (Map String Text)
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestSpec] :: V1beta1PodCertificateRequest -> !V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestStatusBeginRefreshAt] :: V1beta1PodCertificateRequestStatus -> !Maybe DateTime
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestStatusCertificateChain] :: V1beta1PodCertificateRequestStatus -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestStatusConditions] :: V1beta1PodCertificateRequestStatus -> !Maybe [V1Condition]
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestStatusNotAfter] :: V1beta1PodCertificateRequestStatus -> !Maybe DateTime
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestStatusNotBefore] :: V1beta1PodCertificateRequestStatus -> !Maybe DateTime
+ Kubernetes.OpenAPI.Model: [v1beta1PodCertificateRequestStatus] :: V1beta1PodCertificateRequest -> !Maybe V1beta1PodCertificateRequestStatus
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationApiVersion] :: V1beta1StorageVersionMigration -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationKind] :: V1beta1StorageVersionMigration -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationListApiVersion] :: V1beta1StorageVersionMigrationList -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationListItems] :: V1beta1StorageVersionMigrationList -> ![V1beta1StorageVersionMigration]
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationListKind] :: V1beta1StorageVersionMigrationList -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationListMetadata] :: V1beta1StorageVersionMigrationList -> !Maybe V1ListMeta
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationMetadata] :: V1beta1StorageVersionMigration -> !Maybe V1ObjectMeta
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationSpecResource] :: V1beta1StorageVersionMigrationSpec -> !V1GroupResource
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationSpec] :: V1beta1StorageVersionMigration -> !Maybe V1beta1StorageVersionMigrationSpec
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationStatusConditions] :: V1beta1StorageVersionMigrationStatus -> !Maybe [V1Condition]
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationStatusResourceVersion] :: V1beta1StorageVersionMigrationStatus -> !Maybe Text
+ Kubernetes.OpenAPI.Model: [v1beta1StorageVersionMigrationStatus] :: V1beta1StorageVersionMigration -> !Maybe V1beta1StorageVersionMigrationStatus
+ Kubernetes.OpenAPI.Model: data V1GroupResource
+ Kubernetes.OpenAPI.Model: data V1WorkloadReference
+ Kubernetes.OpenAPI.Model: data V1alpha1GangSchedulingPolicy
+ Kubernetes.OpenAPI.Model: data V1alpha1PodGroup
+ Kubernetes.OpenAPI.Model: data V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.Model: data V1alpha1TypedLocalObjectReference
+ Kubernetes.OpenAPI.Model: data V1alpha1Workload
+ Kubernetes.OpenAPI.Model: data V1alpha1WorkloadList
+ Kubernetes.OpenAPI.Model: data V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.Model: data V1alpha3DeviceTaintRuleStatus
+ Kubernetes.OpenAPI.Model: data V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.Model: data V1beta1PodCertificateRequestList
+ Kubernetes.OpenAPI.Model: data V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.Model: data V1beta1PodCertificateRequestStatus
+ Kubernetes.OpenAPI.Model: data V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.Model: data V1beta1StorageVersionMigrationList
+ Kubernetes.OpenAPI.Model: data V1beta1StorageVersionMigrationSpec
+ Kubernetes.OpenAPI.Model: data V1beta1StorageVersionMigrationStatus
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1GroupResource
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1WorkloadReference
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1GangSchedulingPolicy
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1PodGroup
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1TypedLocalObjectReference
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1Workload
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1WorkloadList
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1alpha3DeviceTaintRuleStatus
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestList
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestStatus
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationList
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationSpec
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.FromJSON.FromJSON Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationStatus
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1GroupResource
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1WorkloadReference
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1GangSchedulingPolicy
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1PodGroup
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1TypedLocalObjectReference
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1Workload
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1WorkloadList
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1alpha3DeviceTaintRuleStatus
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestList
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestStatus
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationList
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationSpec
+ Kubernetes.OpenAPI.Model: instance Data.Aeson.Types.ToJSON.ToJSON Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationStatus
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1GroupResource
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1WorkloadReference
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1GangSchedulingPolicy
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1PodGroup
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1TypedLocalObjectReference
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1Workload
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1WorkloadList
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1alpha3DeviceTaintRuleStatus
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestList
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestStatus
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationList
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationSpec
+ Kubernetes.OpenAPI.Model: instance GHC.Classes.Eq Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationStatus
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1GroupResource
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1WorkloadReference
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1GangSchedulingPolicy
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1PodGroup
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1TypedLocalObjectReference
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1Workload
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1WorkloadList
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1alpha3DeviceTaintRuleStatus
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestList
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1beta1PodCertificateRequestStatus
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationList
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationSpec
+ Kubernetes.OpenAPI.Model: instance GHC.Show.Show Kubernetes.OpenAPI.Model.V1beta1StorageVersionMigrationStatus
+ Kubernetes.OpenAPI.Model: mkV1GroupResource :: Text -> Text -> V1GroupResource
+ Kubernetes.OpenAPI.Model: mkV1WorkloadReference :: Text -> Text -> V1WorkloadReference
+ Kubernetes.OpenAPI.Model: mkV1alpha1GangSchedulingPolicy :: Int -> V1alpha1GangSchedulingPolicy
+ Kubernetes.OpenAPI.Model: mkV1alpha1PodGroup :: Text -> V1alpha1PodGroupPolicy -> V1alpha1PodGroup
+ Kubernetes.OpenAPI.Model: mkV1alpha1PodGroupPolicy :: V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.Model: mkV1alpha1TypedLocalObjectReference :: Text -> Text -> V1alpha1TypedLocalObjectReference
+ Kubernetes.OpenAPI.Model: mkV1alpha1Workload :: V1alpha1WorkloadSpec -> V1alpha1Workload
+ Kubernetes.OpenAPI.Model: mkV1alpha1WorkloadList :: [V1alpha1Workload] -> V1alpha1WorkloadList
+ Kubernetes.OpenAPI.Model: mkV1alpha1WorkloadSpec :: [V1alpha1PodGroup] -> V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.Model: mkV1alpha3DeviceTaintRuleStatus :: V1alpha3DeviceTaintRuleStatus
+ Kubernetes.OpenAPI.Model: mkV1beta1PodCertificateRequest :: V1beta1PodCertificateRequestSpec -> V1beta1PodCertificateRequest
+ Kubernetes.OpenAPI.Model: mkV1beta1PodCertificateRequestList :: [V1beta1PodCertificateRequest] -> V1beta1PodCertificateRequestList
+ Kubernetes.OpenAPI.Model: mkV1beta1PodCertificateRequestSpec :: Text -> Text -> ByteArray -> Text -> Text -> ByteArray -> Text -> Text -> Text -> V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.Model: mkV1beta1PodCertificateRequestStatus :: V1beta1PodCertificateRequestStatus
+ Kubernetes.OpenAPI.Model: mkV1beta1StorageVersionMigration :: V1beta1StorageVersionMigration
+ Kubernetes.OpenAPI.Model: mkV1beta1StorageVersionMigrationList :: [V1beta1StorageVersionMigration] -> V1beta1StorageVersionMigrationList
+ Kubernetes.OpenAPI.Model: mkV1beta1StorageVersionMigrationSpec :: V1GroupResource -> V1beta1StorageVersionMigrationSpec
+ Kubernetes.OpenAPI.Model: mkV1beta1StorageVersionMigrationStatus :: V1beta1StorageVersionMigrationStatus
+ Kubernetes.OpenAPI.ModelLens: v1CSIDriverSpecServiceAccountTokenInSecretsL :: Lens_' V1CSIDriverSpec (Maybe Bool)
+ Kubernetes.OpenAPI.ModelLens: v1CustomResourceDefinitionConditionObservedGenerationL :: Lens_' V1CustomResourceDefinitionCondition (Maybe Integer)
+ Kubernetes.OpenAPI.ModelLens: v1CustomResourceDefinitionStatusObservedGenerationL :: Lens_' V1CustomResourceDefinitionStatus (Maybe Integer)
+ Kubernetes.OpenAPI.ModelLens: v1GroupResourceGroupL :: Lens_' V1GroupResource Text
+ Kubernetes.OpenAPI.ModelLens: v1GroupResourceResourceL :: Lens_' V1GroupResource Text
+ Kubernetes.OpenAPI.ModelLens: v1NodeStatusDeclaredFeaturesL :: Lens_' V1NodeStatus (Maybe [Text])
+ Kubernetes.OpenAPI.ModelLens: v1PodCertificateProjectionUserAnnotationsL :: Lens_' V1PodCertificateProjection (Maybe (Map String Text))
+ Kubernetes.OpenAPI.ModelLens: v1PodSpecWorkloadRefL :: Lens_' V1PodSpec (Maybe V1WorkloadReference)
+ Kubernetes.OpenAPI.ModelLens: v1PodStatusAllocatedResourcesL :: Lens_' V1PodStatus (Maybe (Map String Quantity))
+ Kubernetes.OpenAPI.ModelLens: v1PodStatusResourcesL :: Lens_' V1PodStatus (Maybe V1ResourceRequirements)
+ Kubernetes.OpenAPI.ModelLens: v1WorkloadReferenceNameL :: Lens_' V1WorkloadReference Text
+ Kubernetes.OpenAPI.ModelLens: v1WorkloadReferencePodGroupL :: Lens_' V1WorkloadReference Text
+ Kubernetes.OpenAPI.ModelLens: v1WorkloadReferencePodGroupReplicaKeyL :: Lens_' V1WorkloadReference (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1GangSchedulingPolicyMinCountL :: Lens_' V1alpha1GangSchedulingPolicy Int
+ Kubernetes.OpenAPI.ModelLens: v1alpha1PodGroupNameL :: Lens_' V1alpha1PodGroup Text
+ Kubernetes.OpenAPI.ModelLens: v1alpha1PodGroupPolicyBasicL :: Lens_' V1alpha1PodGroupPolicy (Maybe Value)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1PodGroupPolicyGangL :: Lens_' V1alpha1PodGroupPolicy (Maybe V1alpha1GangSchedulingPolicy)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1PodGroupPolicyL :: Lens_' V1alpha1PodGroup V1alpha1PodGroupPolicy
+ Kubernetes.OpenAPI.ModelLens: v1alpha1TypedLocalObjectReferenceApiGroupL :: Lens_' V1alpha1TypedLocalObjectReference (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1TypedLocalObjectReferenceKindL :: Lens_' V1alpha1TypedLocalObjectReference Text
+ Kubernetes.OpenAPI.ModelLens: v1alpha1TypedLocalObjectReferenceNameL :: Lens_' V1alpha1TypedLocalObjectReference Text
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadApiVersionL :: Lens_' V1alpha1Workload (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadKindL :: Lens_' V1alpha1Workload (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadListApiVersionL :: Lens_' V1alpha1WorkloadList (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadListItemsL :: Lens_' V1alpha1WorkloadList [V1alpha1Workload]
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadListKindL :: Lens_' V1alpha1WorkloadList (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadListMetadataL :: Lens_' V1alpha1WorkloadList (Maybe V1ListMeta)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadMetadataL :: Lens_' V1alpha1Workload (Maybe V1ObjectMeta)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadSpecControllerRefL :: Lens_' V1alpha1WorkloadSpec (Maybe V1alpha1TypedLocalObjectReference)
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadSpecL :: Lens_' V1alpha1Workload V1alpha1WorkloadSpec
+ Kubernetes.OpenAPI.ModelLens: v1alpha1WorkloadSpecPodGroupsL :: Lens_' V1alpha1WorkloadSpec [V1alpha1PodGroup]
+ Kubernetes.OpenAPI.ModelLens: v1alpha3DeviceTaintRuleStatusConditionsL :: Lens_' V1alpha3DeviceTaintRuleStatus (Maybe [V1Condition])
+ Kubernetes.OpenAPI.ModelLens: v1alpha3DeviceTaintRuleStatusL :: Lens_' V1alpha3DeviceTaintRule (Maybe V1alpha3DeviceTaintRuleStatus)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestApiVersionL :: Lens_' V1beta1PodCertificateRequest (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestKindL :: Lens_' V1beta1PodCertificateRequest (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestListApiVersionL :: Lens_' V1beta1PodCertificateRequestList (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestListItemsL :: Lens_' V1beta1PodCertificateRequestList [V1beta1PodCertificateRequest]
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestListKindL :: Lens_' V1beta1PodCertificateRequestList (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestListMetadataL :: Lens_' V1beta1PodCertificateRequestList (Maybe V1ListMeta)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestMetadataL :: Lens_' V1beta1PodCertificateRequest (Maybe V1ObjectMeta)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecL :: Lens_' V1beta1PodCertificateRequest V1beta1PodCertificateRequestSpec
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecMaxExpirationSecondsL :: Lens_' V1beta1PodCertificateRequestSpec (Maybe Int)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecNodeNameL :: Lens_' V1beta1PodCertificateRequestSpec Text
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecNodeUidL :: Lens_' V1beta1PodCertificateRequestSpec Text
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecPkixPublicKeyL :: Lens_' V1beta1PodCertificateRequestSpec ByteArray
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecPodNameL :: Lens_' V1beta1PodCertificateRequestSpec Text
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecPodUidL :: Lens_' V1beta1PodCertificateRequestSpec Text
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecProofOfPossessionL :: Lens_' V1beta1PodCertificateRequestSpec ByteArray
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecServiceAccountNameL :: Lens_' V1beta1PodCertificateRequestSpec Text
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecServiceAccountUidL :: Lens_' V1beta1PodCertificateRequestSpec Text
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecSignerNameL :: Lens_' V1beta1PodCertificateRequestSpec Text
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestSpecUnverifiedUserAnnotationsL :: Lens_' V1beta1PodCertificateRequestSpec (Maybe (Map String Text))
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestStatusBeginRefreshAtL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe DateTime)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestStatusCertificateChainL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestStatusConditionsL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe [V1Condition])
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestStatusL :: Lens_' V1beta1PodCertificateRequest (Maybe V1beta1PodCertificateRequestStatus)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestStatusNotAfterL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe DateTime)
+ Kubernetes.OpenAPI.ModelLens: v1beta1PodCertificateRequestStatusNotBeforeL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe DateTime)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationApiVersionL :: Lens_' V1beta1StorageVersionMigration (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationKindL :: Lens_' V1beta1StorageVersionMigration (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationListApiVersionL :: Lens_' V1beta1StorageVersionMigrationList (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationListItemsL :: Lens_' V1beta1StorageVersionMigrationList [V1beta1StorageVersionMigration]
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationListKindL :: Lens_' V1beta1StorageVersionMigrationList (Maybe Text)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationListMetadataL :: Lens_' V1beta1StorageVersionMigrationList (Maybe V1ListMeta)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationMetadataL :: Lens_' V1beta1StorageVersionMigration (Maybe V1ObjectMeta)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationSpecL :: Lens_' V1beta1StorageVersionMigration (Maybe V1beta1StorageVersionMigrationSpec)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationSpecResourceL :: Lens_' V1beta1StorageVersionMigrationSpec V1GroupResource
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationStatusConditionsL :: Lens_' V1beta1StorageVersionMigrationStatus (Maybe [V1Condition])
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationStatusL :: Lens_' V1beta1StorageVersionMigration (Maybe V1beta1StorageVersionMigrationStatus)
+ Kubernetes.OpenAPI.ModelLens: v1beta1StorageVersionMigrationStatusResourceVersionL :: Lens_' V1beta1StorageVersionMigrationStatus (Maybe Text)
- Kubernetes.OpenAPI.Model: V1CSIDriverSpec :: !Maybe Bool -> !Maybe Text -> !Maybe Integer -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe [StorageV1TokenRequest] -> !Maybe [Text] -> V1CSIDriverSpec
+ Kubernetes.OpenAPI.Model: V1CSIDriverSpec :: !Maybe Bool -> !Maybe Text -> !Maybe Integer -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe [StorageV1TokenRequest] -> !Maybe [Text] -> V1CSIDriverSpec
- Kubernetes.OpenAPI.Model: V1CustomResourceDefinitionCondition :: !Maybe DateTime -> !Maybe Text -> !Maybe Text -> !Text -> !Text -> V1CustomResourceDefinitionCondition
+ Kubernetes.OpenAPI.Model: V1CustomResourceDefinitionCondition :: !Maybe DateTime -> !Maybe Text -> !Maybe Integer -> !Maybe Text -> !Text -> !Text -> V1CustomResourceDefinitionCondition
- Kubernetes.OpenAPI.Model: V1CustomResourceDefinitionStatus :: !Maybe V1CustomResourceDefinitionNames -> !Maybe [V1CustomResourceDefinitionCondition] -> !Maybe [Text] -> V1CustomResourceDefinitionStatus
+ Kubernetes.OpenAPI.Model: V1CustomResourceDefinitionStatus :: !Maybe V1CustomResourceDefinitionNames -> !Maybe [V1CustomResourceDefinitionCondition] -> !Maybe Integer -> !Maybe [Text] -> V1CustomResourceDefinitionStatus
- Kubernetes.OpenAPI.Model: V1NodeStatus :: !Maybe [V1NodeAddress] -> !Maybe (Map String Quantity) -> !Maybe (Map String Quantity) -> !Maybe [V1NodeCondition] -> !Maybe V1NodeConfigStatus -> !Maybe V1NodeDaemonEndpoints -> !Maybe V1NodeFeatures -> !Maybe [V1ContainerImage] -> !Maybe V1NodeSystemInfo -> !Maybe Text -> !Maybe [V1NodeRuntimeHandler] -> !Maybe [V1AttachedVolume] -> !Maybe [Text] -> V1NodeStatus
+ Kubernetes.OpenAPI.Model: V1NodeStatus :: !Maybe [V1NodeAddress] -> !Maybe (Map String Quantity) -> !Maybe (Map String Quantity) -> !Maybe [V1NodeCondition] -> !Maybe V1NodeConfigStatus -> !Maybe V1NodeDaemonEndpoints -> !Maybe [Text] -> !Maybe V1NodeFeatures -> !Maybe [V1ContainerImage] -> !Maybe V1NodeSystemInfo -> !Maybe Text -> !Maybe [V1NodeRuntimeHandler] -> !Maybe [V1AttachedVolume] -> !Maybe [Text] -> V1NodeStatus
- Kubernetes.OpenAPI.Model: V1PodCertificateProjection :: !Maybe Text -> !Maybe Text -> !Maybe Text -> !Text -> !Maybe Int -> !Text -> V1PodCertificateProjection
+ Kubernetes.OpenAPI.Model: V1PodCertificateProjection :: !Maybe Text -> !Maybe Text -> !Maybe Text -> !Text -> !Maybe Int -> !Text -> !Maybe (Map String Text) -> V1PodCertificateProjection
- Kubernetes.OpenAPI.Model: V1PodFailurePolicyOnPodConditionsPattern :: !Text -> !Text -> V1PodFailurePolicyOnPodConditionsPattern
+ Kubernetes.OpenAPI.Model: V1PodFailurePolicyOnPodConditionsPattern :: !Maybe Text -> !Text -> V1PodFailurePolicyOnPodConditionsPattern
- Kubernetes.OpenAPI.Model: V1PodSpec :: !Maybe Integer -> !Maybe V1Affinity -> !Maybe Bool -> ![V1Container] -> !Maybe V1PodDNSConfig -> !Maybe Text -> !Maybe Bool -> !Maybe [V1EphemeralContainer] -> !Maybe [V1HostAlias] -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Text -> !Maybe Text -> !Maybe [V1LocalObjectReference] -> !Maybe [V1Container] -> !Maybe Text -> !Maybe (Map String Text) -> !Maybe V1PodOS -> !Maybe (Map String Quantity) -> !Maybe Text -> !Maybe Int -> !Maybe Text -> !Maybe [V1PodReadinessGate] -> !Maybe [V1PodResourceClaim] -> !Maybe V1ResourceRequirements -> !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe [V1PodSchedulingGate] -> !Maybe V1PodSecurityContext -> !Maybe Text -> !Maybe Text -> !Maybe Bool -> !Maybe Bool -> !Maybe Text -> !Maybe Integer -> !Maybe [V1Toleration] -> !Maybe [V1TopologySpreadConstraint] -> !Maybe [V1Volume] -> V1PodSpec
+ Kubernetes.OpenAPI.Model: V1PodSpec :: !Maybe Integer -> !Maybe V1Affinity -> !Maybe Bool -> ![V1Container] -> !Maybe V1PodDNSConfig -> !Maybe Text -> !Maybe Bool -> !Maybe [V1EphemeralContainer] -> !Maybe [V1HostAlias] -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Bool -> !Maybe Text -> !Maybe Text -> !Maybe [V1LocalObjectReference] -> !Maybe [V1Container] -> !Maybe Text -> !Maybe (Map String Text) -> !Maybe V1PodOS -> !Maybe (Map String Quantity) -> !Maybe Text -> !Maybe Int -> !Maybe Text -> !Maybe [V1PodReadinessGate] -> !Maybe [V1PodResourceClaim] -> !Maybe V1ResourceRequirements -> !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe [V1PodSchedulingGate] -> !Maybe V1PodSecurityContext -> !Maybe Text -> !Maybe Text -> !Maybe Bool -> !Maybe Bool -> !Maybe Text -> !Maybe Integer -> !Maybe [V1Toleration] -> !Maybe [V1TopologySpreadConstraint] -> !Maybe [V1Volume] -> !Maybe V1WorkloadReference -> V1PodSpec
- Kubernetes.OpenAPI.Model: V1PodStatus :: !Maybe [V1PodCondition] -> !Maybe [V1ContainerStatus] -> !Maybe [V1ContainerStatus] -> !Maybe V1PodExtendedResourceClaimStatus -> !Maybe Text -> !Maybe [V1HostIP] -> !Maybe [V1ContainerStatus] -> !Maybe Text -> !Maybe Text -> !Maybe Integer -> !Maybe Text -> !Maybe Text -> !Maybe [V1PodIP] -> !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe [V1PodResourceClaimStatus] -> !Maybe DateTime -> V1PodStatus
+ Kubernetes.OpenAPI.Model: V1PodStatus :: !Maybe (Map String Quantity) -> !Maybe [V1PodCondition] -> !Maybe [V1ContainerStatus] -> !Maybe [V1ContainerStatus] -> !Maybe V1PodExtendedResourceClaimStatus -> !Maybe Text -> !Maybe [V1HostIP] -> !Maybe [V1ContainerStatus] -> !Maybe Text -> !Maybe Text -> !Maybe Integer -> !Maybe Text -> !Maybe Text -> !Maybe [V1PodIP] -> !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe [V1PodResourceClaimStatus] -> !Maybe V1ResourceRequirements -> !Maybe DateTime -> V1PodStatus
- Kubernetes.OpenAPI.Model: V1alpha3DeviceTaintRule :: !Maybe Text -> !Maybe Text -> !Maybe V1ObjectMeta -> !V1alpha3DeviceTaintRuleSpec -> V1alpha3DeviceTaintRule
+ Kubernetes.OpenAPI.Model: V1alpha3DeviceTaintRule :: !Maybe Text -> !Maybe Text -> !Maybe V1ObjectMeta -> !V1alpha3DeviceTaintRuleSpec -> !Maybe V1alpha3DeviceTaintRuleStatus -> V1alpha3DeviceTaintRule
- Kubernetes.OpenAPI.Model: V1alpha3DeviceTaintSelector :: !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe [V1alpha3DeviceSelector] -> V1alpha3DeviceTaintSelector
+ Kubernetes.OpenAPI.Model: V1alpha3DeviceTaintSelector :: !Maybe Text -> !Maybe Text -> !Maybe Text -> V1alpha3DeviceTaintSelector
- Kubernetes.OpenAPI.Model: [v1PodFailurePolicyOnPodConditionsPatternStatus] :: V1PodFailurePolicyOnPodConditionsPattern -> !Text
+ Kubernetes.OpenAPI.Model: [v1PodFailurePolicyOnPodConditionsPatternStatus] :: V1PodFailurePolicyOnPodConditionsPattern -> !Maybe Text
- Kubernetes.OpenAPI.Model: mkV1PodFailurePolicyOnPodConditionsPattern :: Text -> Text -> V1PodFailurePolicyOnPodConditionsPattern
+ Kubernetes.OpenAPI.Model: mkV1PodFailurePolicyOnPodConditionsPattern :: Text -> V1PodFailurePolicyOnPodConditionsPattern
- Kubernetes.OpenAPI.ModelLens: v1PodFailurePolicyOnPodConditionsPatternStatusL :: Lens_' V1PodFailurePolicyOnPodConditionsPattern Text
+ Kubernetes.OpenAPI.ModelLens: v1PodFailurePolicyOnPodConditionsPatternStatusL :: Lens_' V1PodFailurePolicyOnPodConditionsPattern (Maybe Text)
Files
- kubernetes-api.cabal +4/−4
- lib/Kubernetes/OpenAPI.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Admissionregistration.hs +1/−1
- lib/Kubernetes/OpenAPI/API/AdmissionregistrationV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/AdmissionregistrationV1alpha1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/AdmissionregistrationV1beta1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Apiextensions.hs +1/−1
- lib/Kubernetes/OpenAPI/API/ApiextensionsV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Apiregistration.hs +1/−1
- lib/Kubernetes/OpenAPI/API/ApiregistrationV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Apis.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Apps.hs +1/−1
- lib/Kubernetes/OpenAPI/API/AppsV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Authentication.hs +1/−1
- lib/Kubernetes/OpenAPI/API/AuthenticationV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Authorization.hs +1/−1
- lib/Kubernetes/OpenAPI/API/AuthorizationV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Autoscaling.hs +1/−1
- lib/Kubernetes/OpenAPI/API/AutoscalingV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/AutoscalingV2.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Batch.hs +1/−1
- lib/Kubernetes/OpenAPI/API/BatchV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Certificates.hs +1/−1
- lib/Kubernetes/OpenAPI/API/CertificatesV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/CertificatesV1alpha1.hs +1/−721
- lib/Kubernetes/OpenAPI/API/CertificatesV1beta1.hs +721/−1
- lib/Kubernetes/OpenAPI/API/Coordination.hs +1/−1
- lib/Kubernetes/OpenAPI/API/CoordinationV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/CoordinationV1alpha2.hs +1/−1
- lib/Kubernetes/OpenAPI/API/CoordinationV1beta1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Core.hs +1/−1
- lib/Kubernetes/OpenAPI/API/CoreV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/CustomObjects.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Discovery.hs +1/−1
- lib/Kubernetes/OpenAPI/API/DiscoveryV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Events.hs +1/−1
- lib/Kubernetes/OpenAPI/API/EventsV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/FlowcontrolApiserver.hs +1/−1
- lib/Kubernetes/OpenAPI/API/FlowcontrolApiserverV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/InternalApiserver.hs +1/−1
- lib/Kubernetes/OpenAPI/API/InternalApiserverV1alpha1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Logs.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Networking.hs +1/−1
- lib/Kubernetes/OpenAPI/API/NetworkingV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/NetworkingV1beta1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Node.hs +1/−1
- lib/Kubernetes/OpenAPI/API/NodeV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Openid.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Policy.hs +1/−1
- lib/Kubernetes/OpenAPI/API/PolicyV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/RbacAuthorization.hs +1/−1
- lib/Kubernetes/OpenAPI/API/RbacAuthorizationV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Resource.hs +1/−1
- lib/Kubernetes/OpenAPI/API/ResourceV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/ResourceV1alpha3.hs +158/−1
- lib/Kubernetes/OpenAPI/API/ResourceV1beta1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/ResourceV1beta2.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Scheduling.hs +1/−1
- lib/Kubernetes/OpenAPI/API/SchedulingV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/SchedulingV1alpha1.hs +644/−0
- lib/Kubernetes/OpenAPI/API/Storage.hs +1/−1
- lib/Kubernetes/OpenAPI/API/StorageV1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/StorageV1alpha1.hs +0/−550
- lib/Kubernetes/OpenAPI/API/StorageV1beta1.hs +1/−1
- lib/Kubernetes/OpenAPI/API/Storagemigration.hs +1/−1
- lib/Kubernetes/OpenAPI/API/StoragemigrationV1alpha1.hs +0/−707
- lib/Kubernetes/OpenAPI/API/StoragemigrationV1beta1.hs +707/−0
- lib/Kubernetes/OpenAPI/API/Version.hs +1/−1
- lib/Kubernetes/OpenAPI/API/WellKnown.hs +1/−1
- lib/Kubernetes/OpenAPI/Client.hs +1/−1
- lib/Kubernetes/OpenAPI/Core.hs +1/−1
- lib/Kubernetes/OpenAPI/Logging.hs +1/−1
- lib/Kubernetes/OpenAPI/LoggingKatip.hs +1/−1
- lib/Kubernetes/OpenAPI/LoggingMonadLogger.hs +1/−1
- lib/Kubernetes/OpenAPI/MimeTypes.hs +1/−1
- lib/Kubernetes/OpenAPI/Model.hs +30086/−29932
- lib/Kubernetes/OpenAPI/ModelLens.hs +395/−319
- tests/Instances.hs +188/−148
- tests/Test.hs +18/−14
kubernetes-api.cabal view
@@ -1,5 +1,5 @@ name: kubernetes-api-version: 134.0.1+version: 135.0.1 synopsis: Auto-generated kubernetes-api API Client description: . Client library for calling the Kubernetes API based on http-client.@@ -8,7 +8,7 @@ . base path: http://localhost .- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 . OpenAPI version: 3.0.1 .@@ -122,12 +122,12 @@ Kubernetes.OpenAPI.API.ResourceV1beta2 Kubernetes.OpenAPI.API.Scheduling Kubernetes.OpenAPI.API.SchedulingV1+ Kubernetes.OpenAPI.API.SchedulingV1alpha1 Kubernetes.OpenAPI.API.Storage Kubernetes.OpenAPI.API.StorageV1- Kubernetes.OpenAPI.API.StorageV1alpha1 Kubernetes.OpenAPI.API.StorageV1beta1 Kubernetes.OpenAPI.API.Storagemigration- Kubernetes.OpenAPI.API.StoragemigrationV1alpha1+ Kubernetes.OpenAPI.API.StoragemigrationV1beta1 Kubernetes.OpenAPI.API.Version Kubernetes.OpenAPI.API.WellKnown Kubernetes.OpenAPI.Client
lib/Kubernetes/OpenAPI.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Admissionregistration.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/AdmissionregistrationV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/AdmissionregistrationV1alpha1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/AdmissionregistrationV1beta1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Apiextensions.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/ApiextensionsV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Apiregistration.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/ApiregistrationV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Apis.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Apps.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/AppsV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Authentication.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/AuthenticationV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Authorization.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/AuthorizationV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Autoscaling.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/AutoscalingV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/AutoscalingV2.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Batch.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/BatchV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Certificates.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/CertificatesV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/CertificatesV1alpha1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -} @@ -112,62 +112,6 @@ instance Produces CreateClusterTrustBundle MimeYaml --- *** createNamespacedPodCertificateRequest---- | @POST \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests@--- --- create a PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -createNamespacedPodCertificateRequest- :: (Consumes CreateNamespacedPodCertificateRequest contentType, MimeRender contentType V1alpha1PodCertificateRequest)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> V1alpha1PodCertificateRequest -- ^ "body"- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest CreateNamespacedPodCertificateRequest contentType V1alpha1PodCertificateRequest accept-createNamespacedPodCertificateRequest _ _ body (Namespace namespace) =- _mkRequest "POST" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data CreateNamespacedPodCertificateRequest -instance HasBodyParam CreateNamespacedPodCertificateRequest V1alpha1PodCertificateRequest ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam CreateNamespacedPodCertificateRequest Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam CreateNamespacedPodCertificateRequest DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.-instance HasOptionalParam CreateNamespacedPodCertificateRequest FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam CreateNamespacedPodCertificateRequest FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | @*/*@-instance MimeType mtype => Consumes CreateNamespacedPodCertificateRequest mtype---- | @application/json@-instance Produces CreateNamespacedPodCertificateRequest MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces CreateNamespacedPodCertificateRequest MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces CreateNamespacedPodCertificateRequest MimeCbor--- | @application/yaml@-instance Produces CreateNamespacedPodCertificateRequest MimeYaml-- -- *** deleteClusterTrustBundle -- | @DELETE \/apis\/certificates.k8s.io\/v1alpha1\/clustertrustbundles\/{name}@@@ -335,175 +279,6 @@ instance Produces DeleteCollectionClusterTrustBundle MimeYaml --- *** deleteCollectionNamespacedPodCertificateRequest---- | @DELETE \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests@--- --- delete collection of PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -deleteCollectionNamespacedPodCertificateRequest- :: (Consumes DeleteCollectionNamespacedPodCertificateRequest contentType)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest DeleteCollectionNamespacedPodCertificateRequest contentType V1Status accept-deleteCollectionNamespacedPodCertificateRequest _ _ (Namespace namespace) =- _mkRequest "DELETE" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data DeleteCollectionNamespacedPodCertificateRequest -instance HasBodyParam DeleteCollectionNamespacedPodCertificateRequest V1DeleteOptions ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest Continue where- applyOptionalParam req (Continue xs) =- req `addQuery` toQuery ("continue", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest FieldSelector where- applyOptionalParam req (FieldSelector xs) =- req `addQuery` toQuery ("fieldSelector", Just xs)---- | /Optional Param/ "gracePeriodSeconds" - 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.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest GracePeriodSeconds where- applyOptionalParam req (GracePeriodSeconds xs) =- req `addQuery` toQuery ("gracePeriodSeconds", Just xs)---- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest IgnoreStoreReadErrorWithClusterBreakingPotential where- applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =- req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)---- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest LabelSelector where- applyOptionalParam req (LabelSelector xs) =- req `addQuery` toQuery ("labelSelector", Just xs)---- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest Limit where- applyOptionalParam req (Limit xs) =- req `addQuery` toQuery ("limit", Just xs)---- | /Optional Param/ "orphanDependents" - 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.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest OrphanDependents where- applyOptionalParam req (OrphanDependents xs) =- req `addQuery` toQuery ("orphanDependents", Just xs)---- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest PropagationPolicy where- applyOptionalParam req (PropagationPolicy xs) =- req `addQuery` toQuery ("propagationPolicy", Just xs)---- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest ResourceVersion where- applyOptionalParam req (ResourceVersion xs) =- req `addQuery` toQuery ("resourceVersion", Just xs)---- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest ResourceVersionMatch where- applyOptionalParam req (ResourceVersionMatch xs) =- req `addQuery` toQuery ("resourceVersionMatch", Just xs)---- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest SendInitialEvents where- applyOptionalParam req (SendInitialEvents xs) =- req `addQuery` toQuery ("sendInitialEvents", Just xs)---- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.-instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest TimeoutSeconds where- applyOptionalParam req (TimeoutSeconds xs) =- req `addQuery` toQuery ("timeoutSeconds", Just xs)---- | @*/*@-instance MimeType mtype => Consumes DeleteCollectionNamespacedPodCertificateRequest mtype---- | @application/json@-instance Produces DeleteCollectionNamespacedPodCertificateRequest MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces DeleteCollectionNamespacedPodCertificateRequest MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces DeleteCollectionNamespacedPodCertificateRequest MimeCbor--- | @application/yaml@-instance Produces DeleteCollectionNamespacedPodCertificateRequest MimeYaml----- *** deleteNamespacedPodCertificateRequest---- | @DELETE \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests\/{name}@--- --- delete a PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -deleteNamespacedPodCertificateRequest- :: (Consumes DeleteNamespacedPodCertificateRequest contentType)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Name -- ^ "name" - name of the PodCertificateRequest- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest DeleteNamespacedPodCertificateRequest contentType V1Status accept-deleteNamespacedPodCertificateRequest _ _ (Name name) (Namespace namespace) =- _mkRequest "DELETE" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data DeleteNamespacedPodCertificateRequest -instance HasBodyParam DeleteNamespacedPodCertificateRequest V1DeleteOptions ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam DeleteNamespacedPodCertificateRequest Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam DeleteNamespacedPodCertificateRequest DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "gracePeriodSeconds" - 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.-instance HasOptionalParam DeleteNamespacedPodCertificateRequest GracePeriodSeconds where- applyOptionalParam req (GracePeriodSeconds xs) =- req `addQuery` toQuery ("gracePeriodSeconds", Just xs)---- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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-instance HasOptionalParam DeleteNamespacedPodCertificateRequest IgnoreStoreReadErrorWithClusterBreakingPotential where- applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =- req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)---- | /Optional Param/ "orphanDependents" - 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.-instance HasOptionalParam DeleteNamespacedPodCertificateRequest OrphanDependents where- applyOptionalParam req (OrphanDependents xs) =- req `addQuery` toQuery ("orphanDependents", Just xs)---- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.-instance HasOptionalParam DeleteNamespacedPodCertificateRequest PropagationPolicy where- applyOptionalParam req (PropagationPolicy xs) =- req `addQuery` toQuery ("propagationPolicy", Just xs)---- | @*/*@-instance MimeType mtype => Consumes DeleteNamespacedPodCertificateRequest mtype---- | @application/json@-instance Produces DeleteNamespacedPodCertificateRequest MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces DeleteNamespacedPodCertificateRequest MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces DeleteNamespacedPodCertificateRequest MimeCbor--- | @application/yaml@-instance Produces DeleteNamespacedPodCertificateRequest MimeYaml-- -- *** getAPIResources -- | @GET \/apis\/certificates.k8s.io\/v1alpha1\/@@@ -617,181 +392,6 @@ instance Produces ListClusterTrustBundle MimeYaml --- *** listNamespacedPodCertificateRequest---- | @GET \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests@--- --- list or watch objects of kind PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -listNamespacedPodCertificateRequest- :: Accept accept -- ^ request accept ('MimeType')- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest ListNamespacedPodCertificateRequest MimeNoContent V1alpha1PodCertificateRequestList accept-listNamespacedPodCertificateRequest _ (Namespace namespace) =- _mkRequest "GET" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ListNamespacedPodCertificateRequest ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ListNamespacedPodCertificateRequest Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.-instance HasOptionalParam ListNamespacedPodCertificateRequest AllowWatchBookmarks where- applyOptionalParam req (AllowWatchBookmarks xs) =- req `addQuery` toQuery ("allowWatchBookmarks", Just xs)---- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.-instance HasOptionalParam ListNamespacedPodCertificateRequest Continue where- applyOptionalParam req (Continue xs) =- req `addQuery` toQuery ("continue", Just xs)---- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.-instance HasOptionalParam ListNamespacedPodCertificateRequest FieldSelector where- applyOptionalParam req (FieldSelector xs) =- req `addQuery` toQuery ("fieldSelector", Just xs)---- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.-instance HasOptionalParam ListNamespacedPodCertificateRequest LabelSelector where- applyOptionalParam req (LabelSelector xs) =- req `addQuery` toQuery ("labelSelector", Just xs)---- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.-instance HasOptionalParam ListNamespacedPodCertificateRequest Limit where- applyOptionalParam req (Limit xs) =- req `addQuery` toQuery ("limit", Just xs)---- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam ListNamespacedPodCertificateRequest ResourceVersion where- applyOptionalParam req (ResourceVersion xs) =- req `addQuery` toQuery ("resourceVersion", Just xs)---- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam ListNamespacedPodCertificateRequest ResourceVersionMatch where- applyOptionalParam req (ResourceVersionMatch xs) =- req `addQuery` toQuery ("resourceVersionMatch", Just xs)---- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.-instance HasOptionalParam ListNamespacedPodCertificateRequest SendInitialEvents where- applyOptionalParam req (SendInitialEvents xs) =- req `addQuery` toQuery ("sendInitialEvents", Just xs)---- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.-instance HasOptionalParam ListNamespacedPodCertificateRequest TimeoutSeconds where- applyOptionalParam req (TimeoutSeconds xs) =- req `addQuery` toQuery ("timeoutSeconds", Just xs)---- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.-instance HasOptionalParam ListNamespacedPodCertificateRequest Watch where- applyOptionalParam req (Watch xs) =- req `addQuery` toQuery ("watch", Just xs)--- | @application/cbor-seq@-instance Produces ListNamespacedPodCertificateRequest MimeCborSeq--- | @application/json@-instance Produces ListNamespacedPodCertificateRequest MimeJSON--- | @application/json;stream=watch@-instance Produces ListNamespacedPodCertificateRequest MimeJsonstreamwatch--- | @application/vnd.kubernetes.protobuf@-instance Produces ListNamespacedPodCertificateRequest MimeVndKubernetesProtobuf--- | @application/vnd.kubernetes.protobuf;stream=watch@-instance Produces ListNamespacedPodCertificateRequest MimeVndKubernetesProtobufstreamwatch--- | @application/cbor@-instance Produces ListNamespacedPodCertificateRequest MimeCbor--- | @application/yaml@-instance Produces ListNamespacedPodCertificateRequest MimeYaml----- *** listPodCertificateRequestForAllNamespaces---- | @GET \/apis\/certificates.k8s.io\/v1alpha1\/podcertificaterequests@--- --- list or watch objects of kind PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -listPodCertificateRequestForAllNamespaces- :: Accept accept -- ^ request accept ('MimeType')- -> KubernetesRequest ListPodCertificateRequestForAllNamespaces MimeNoContent V1alpha1PodCertificateRequestList accept-listPodCertificateRequestForAllNamespaces _ =- _mkRequest "GET" ["/apis/certificates.k8s.io/v1alpha1/podcertificaterequests"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ListPodCertificateRequestForAllNamespaces ---- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces AllowWatchBookmarks where- applyOptionalParam req (AllowWatchBookmarks xs) =- req `addQuery` toQuery ("allowWatchBookmarks", Just xs)---- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces Continue where- applyOptionalParam req (Continue xs) =- req `addQuery` toQuery ("continue", Just xs)---- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces FieldSelector where- applyOptionalParam req (FieldSelector xs) =- req `addQuery` toQuery ("fieldSelector", Just xs)---- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces LabelSelector where- applyOptionalParam req (LabelSelector xs) =- req `addQuery` toQuery ("labelSelector", Just xs)---- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces Limit where- applyOptionalParam req (Limit xs) =- req `addQuery` toQuery ("limit", Just xs)---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces ResourceVersion where- applyOptionalParam req (ResourceVersion xs) =- req `addQuery` toQuery ("resourceVersion", Just xs)---- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces ResourceVersionMatch where- applyOptionalParam req (ResourceVersionMatch xs) =- req `addQuery` toQuery ("resourceVersionMatch", Just xs)---- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces SendInitialEvents where- applyOptionalParam req (SendInitialEvents xs) =- req `addQuery` toQuery ("sendInitialEvents", Just xs)---- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces TimeoutSeconds where- applyOptionalParam req (TimeoutSeconds xs) =- req `addQuery` toQuery ("timeoutSeconds", Just xs)---- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.-instance HasOptionalParam ListPodCertificateRequestForAllNamespaces Watch where- applyOptionalParam req (Watch xs) =- req `addQuery` toQuery ("watch", Just xs)--- | @application/cbor-seq@-instance Produces ListPodCertificateRequestForAllNamespaces MimeCborSeq--- | @application/json@-instance Produces ListPodCertificateRequestForAllNamespaces MimeJSON--- | @application/json;stream=watch@-instance Produces ListPodCertificateRequestForAllNamespaces MimeJsonstreamwatch--- | @application/vnd.kubernetes.protobuf@-instance Produces ListPodCertificateRequestForAllNamespaces MimeVndKubernetesProtobuf--- | @application/vnd.kubernetes.protobuf;stream=watch@-instance Produces ListPodCertificateRequestForAllNamespaces MimeVndKubernetesProtobufstreamwatch--- | @application/cbor@-instance Produces ListPodCertificateRequestForAllNamespaces MimeCbor--- | @application/yaml@-instance Produces ListPodCertificateRequestForAllNamespaces MimeYaml-- -- *** patchClusterTrustBundle -- | @PATCH \/apis\/certificates.k8s.io\/v1alpha1\/clustertrustbundles\/{name}@@@ -861,146 +461,6 @@ instance Produces PatchClusterTrustBundle MimeYaml --- *** patchNamespacedPodCertificateRequest---- | @PATCH \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests\/{name}@--- --- partially update the specified PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -patchNamespacedPodCertificateRequest- :: (Consumes PatchNamespacedPodCertificateRequest contentType, MimeRender contentType Body)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Body -- ^ "body"- -> Name -- ^ "name" - name of the PodCertificateRequest- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest PatchNamespacedPodCertificateRequest contentType V1alpha1PodCertificateRequest accept-patchNamespacedPodCertificateRequest _ _ body (Name name) (Namespace namespace) =- _mkRequest "PATCH" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data PatchNamespacedPodCertificateRequest -instance HasBodyParam PatchNamespacedPodCertificateRequest Body ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam PatchNamespacedPodCertificateRequest Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam PatchNamespacedPodCertificateRequest DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).-instance HasOptionalParam PatchNamespacedPodCertificateRequest FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam PatchNamespacedPodCertificateRequest FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.-instance HasOptionalParam PatchNamespacedPodCertificateRequest Force where- applyOptionalParam req (Force xs) =- req `addQuery` toQuery ("force", Just xs)---- | @application/apply-patch+yaml@-instance Consumes PatchNamespacedPodCertificateRequest MimeApplyPatchyaml--- | @application/json-patch+json@-instance Consumes PatchNamespacedPodCertificateRequest MimeJsonPatchjson--- | @application/merge-patch+json@-instance Consumes PatchNamespacedPodCertificateRequest MimeMergePatchjson--- | @application/strategic-merge-patch+json@-instance Consumes PatchNamespacedPodCertificateRequest MimeStrategicMergePatchjson--- | @application/apply-patch+cbor@-instance Consumes PatchNamespacedPodCertificateRequest MimeApplyPatchcbor---- | @application/json@-instance Produces PatchNamespacedPodCertificateRequest MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces PatchNamespacedPodCertificateRequest MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces PatchNamespacedPodCertificateRequest MimeCbor--- | @application/yaml@-instance Produces PatchNamespacedPodCertificateRequest MimeYaml----- *** patchNamespacedPodCertificateRequestStatus---- | @PATCH \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests\/{name}\/status@--- --- partially update status of the specified PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -patchNamespacedPodCertificateRequestStatus- :: (Consumes PatchNamespacedPodCertificateRequestStatus contentType, MimeRender contentType Body)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Body -- ^ "body"- -> Name -- ^ "name" - name of the PodCertificateRequest- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest PatchNamespacedPodCertificateRequestStatus contentType V1alpha1PodCertificateRequest accept-patchNamespacedPodCertificateRequestStatus _ _ body (Name name) (Namespace namespace) =- _mkRequest "PATCH" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name,"/status"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data PatchNamespacedPodCertificateRequestStatus -instance HasBodyParam PatchNamespacedPodCertificateRequestStatus Body ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).-instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.-instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus Force where- applyOptionalParam req (Force xs) =- req `addQuery` toQuery ("force", Just xs)---- | @application/apply-patch+yaml@-instance Consumes PatchNamespacedPodCertificateRequestStatus MimeApplyPatchyaml--- | @application/json-patch+json@-instance Consumes PatchNamespacedPodCertificateRequestStatus MimeJsonPatchjson--- | @application/merge-patch+json@-instance Consumes PatchNamespacedPodCertificateRequestStatus MimeMergePatchjson--- | @application/strategic-merge-patch+json@-instance Consumes PatchNamespacedPodCertificateRequestStatus MimeStrategicMergePatchjson--- | @application/apply-patch+cbor@-instance Consumes PatchNamespacedPodCertificateRequestStatus MimeApplyPatchcbor---- | @application/json@-instance Produces PatchNamespacedPodCertificateRequestStatus MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces PatchNamespacedPodCertificateRequestStatus MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces PatchNamespacedPodCertificateRequestStatus MimeCbor--- | @application/yaml@-instance Produces PatchNamespacedPodCertificateRequestStatus MimeYaml-- -- *** readClusterTrustBundle -- | @GET \/apis\/certificates.k8s.io\/v1alpha1\/clustertrustbundles\/{name}@@@ -1033,72 +493,6 @@ instance Produces ReadClusterTrustBundle MimeYaml --- *** readNamespacedPodCertificateRequest---- | @GET \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests\/{name}@--- --- read the specified PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -readNamespacedPodCertificateRequest- :: Accept accept -- ^ request accept ('MimeType')- -> Name -- ^ "name" - name of the PodCertificateRequest- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest ReadNamespacedPodCertificateRequest MimeNoContent V1alpha1PodCertificateRequest accept-readNamespacedPodCertificateRequest _ (Name name) (Namespace namespace) =- _mkRequest "GET" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ReadNamespacedPodCertificateRequest ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReadNamespacedPodCertificateRequest Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)--- | @application/json@-instance Produces ReadNamespacedPodCertificateRequest MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReadNamespacedPodCertificateRequest MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReadNamespacedPodCertificateRequest MimeCbor--- | @application/yaml@-instance Produces ReadNamespacedPodCertificateRequest MimeYaml----- *** readNamespacedPodCertificateRequestStatus---- | @GET \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests\/{name}\/status@--- --- read status of the specified PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -readNamespacedPodCertificateRequestStatus- :: Accept accept -- ^ request accept ('MimeType')- -> Name -- ^ "name" - name of the PodCertificateRequest- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest ReadNamespacedPodCertificateRequestStatus MimeNoContent V1alpha1PodCertificateRequest accept-readNamespacedPodCertificateRequestStatus _ (Name name) (Namespace namespace) =- _mkRequest "GET" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name,"/status"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ReadNamespacedPodCertificateRequestStatus ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReadNamespacedPodCertificateRequestStatus Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)--- | @application/json@-instance Produces ReadNamespacedPodCertificateRequestStatus MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReadNamespacedPodCertificateRequestStatus MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReadNamespacedPodCertificateRequestStatus MimeCbor--- | @application/yaml@-instance Produces ReadNamespacedPodCertificateRequestStatus MimeYaml-- -- *** replaceClusterTrustBundle -- | @PUT \/apis\/certificates.k8s.io\/v1alpha1\/clustertrustbundles\/{name}@@@ -1153,118 +547,4 @@ instance Produces ReplaceClusterTrustBundle MimeCbor -- | @application/yaml@ instance Produces ReplaceClusterTrustBundle MimeYaml----- *** replaceNamespacedPodCertificateRequest---- | @PUT \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests\/{name}@--- --- replace the specified PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -replaceNamespacedPodCertificateRequest- :: (Consumes ReplaceNamespacedPodCertificateRequest contentType, MimeRender contentType V1alpha1PodCertificateRequest)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> V1alpha1PodCertificateRequest -- ^ "body"- -> Name -- ^ "name" - name of the PodCertificateRequest- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest ReplaceNamespacedPodCertificateRequest contentType V1alpha1PodCertificateRequest accept-replaceNamespacedPodCertificateRequest _ _ body (Name name) (Namespace namespace) =- _mkRequest "PUT" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data ReplaceNamespacedPodCertificateRequest -instance HasBodyParam ReplaceNamespacedPodCertificateRequest V1alpha1PodCertificateRequest ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReplaceNamespacedPodCertificateRequest Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam ReplaceNamespacedPodCertificateRequest DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.-instance HasOptionalParam ReplaceNamespacedPodCertificateRequest FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam ReplaceNamespacedPodCertificateRequest FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | @*/*@-instance MimeType mtype => Consumes ReplaceNamespacedPodCertificateRequest mtype---- | @application/json@-instance Produces ReplaceNamespacedPodCertificateRequest MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReplaceNamespacedPodCertificateRequest MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReplaceNamespacedPodCertificateRequest MimeCbor--- | @application/yaml@-instance Produces ReplaceNamespacedPodCertificateRequest MimeYaml----- *** replaceNamespacedPodCertificateRequestStatus---- | @PUT \/apis\/certificates.k8s.io\/v1alpha1\/namespaces\/{namespace}\/podcertificaterequests\/{name}\/status@--- --- replace status of the specified PodCertificateRequest--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -replaceNamespacedPodCertificateRequestStatus- :: (Consumes ReplaceNamespacedPodCertificateRequestStatus contentType, MimeRender contentType V1alpha1PodCertificateRequest)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> V1alpha1PodCertificateRequest -- ^ "body"- -> Name -- ^ "name" - name of the PodCertificateRequest- -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects- -> KubernetesRequest ReplaceNamespacedPodCertificateRequestStatus contentType V1alpha1PodCertificateRequest accept-replaceNamespacedPodCertificateRequestStatus _ _ body (Name name) (Namespace namespace) =- _mkRequest "PUT" ["/apis/certificates.k8s.io/v1alpha1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name,"/status"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data ReplaceNamespacedPodCertificateRequestStatus -instance HasBodyParam ReplaceNamespacedPodCertificateRequestStatus V1alpha1PodCertificateRequest ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReplaceNamespacedPodCertificateRequestStatus Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam ReplaceNamespacedPodCertificateRequestStatus DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.-instance HasOptionalParam ReplaceNamespacedPodCertificateRequestStatus FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam ReplaceNamespacedPodCertificateRequestStatus FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | @*/*@-instance MimeType mtype => Consumes ReplaceNamespacedPodCertificateRequestStatus mtype---- | @application/json@-instance Produces ReplaceNamespacedPodCertificateRequestStatus MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReplaceNamespacedPodCertificateRequestStatus MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReplaceNamespacedPodCertificateRequestStatus MimeCbor--- | @application/yaml@-instance Produces ReplaceNamespacedPodCertificateRequestStatus MimeYaml
lib/Kubernetes/OpenAPI/API/CertificatesV1beta1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -} @@ -112,6 +112,62 @@ instance Produces CreateClusterTrustBundle MimeYaml +-- *** createNamespacedPodCertificateRequest++-- | @POST \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests@+-- +-- create a PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +createNamespacedPodCertificateRequest+ :: (Consumes CreateNamespacedPodCertificateRequest contentType, MimeRender contentType V1beta1PodCertificateRequest)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1beta1PodCertificateRequest -- ^ "body"+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest CreateNamespacedPodCertificateRequest contentType V1beta1PodCertificateRequest accept+createNamespacedPodCertificateRequest _ _ body (Namespace namespace) =+ _mkRequest "POST" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data CreateNamespacedPodCertificateRequest +instance HasBodyParam CreateNamespacedPodCertificateRequest V1beta1PodCertificateRequest ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam CreateNamespacedPodCertificateRequest Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam CreateNamespacedPodCertificateRequest DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam CreateNamespacedPodCertificateRequest FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam CreateNamespacedPodCertificateRequest FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes CreateNamespacedPodCertificateRequest mtype++-- | @application/json@+instance Produces CreateNamespacedPodCertificateRequest MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces CreateNamespacedPodCertificateRequest MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces CreateNamespacedPodCertificateRequest MimeCbor+-- | @application/yaml@+instance Produces CreateNamespacedPodCertificateRequest MimeYaml++ -- *** deleteClusterTrustBundle -- | @DELETE \/apis\/certificates.k8s.io\/v1beta1\/clustertrustbundles\/{name}@@@ -279,6 +335,175 @@ instance Produces DeleteCollectionClusterTrustBundle MimeYaml +-- *** deleteCollectionNamespacedPodCertificateRequest++-- | @DELETE \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests@+-- +-- delete collection of PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +deleteCollectionNamespacedPodCertificateRequest+ :: (Consumes DeleteCollectionNamespacedPodCertificateRequest contentType)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest DeleteCollectionNamespacedPodCertificateRequest contentType V1Status accept+deleteCollectionNamespacedPodCertificateRequest _ _ (Namespace namespace) =+ _mkRequest "DELETE" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data DeleteCollectionNamespacedPodCertificateRequest +instance HasBodyParam DeleteCollectionNamespacedPodCertificateRequest V1DeleteOptions ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest Continue where+ applyOptionalParam req (Continue xs) =+ req `addQuery` toQuery ("continue", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest FieldSelector where+ applyOptionalParam req (FieldSelector xs) =+ req `addQuery` toQuery ("fieldSelector", Just xs)++-- | /Optional Param/ "gracePeriodSeconds" - 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.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest GracePeriodSeconds where+ applyOptionalParam req (GracePeriodSeconds xs) =+ req `addQuery` toQuery ("gracePeriodSeconds", Just xs)++-- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest IgnoreStoreReadErrorWithClusterBreakingPotential where+ applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =+ req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)++-- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest LabelSelector where+ applyOptionalParam req (LabelSelector xs) =+ req `addQuery` toQuery ("labelSelector", Just xs)++-- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest Limit where+ applyOptionalParam req (Limit xs) =+ req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "orphanDependents" - 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.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest OrphanDependents where+ applyOptionalParam req (OrphanDependents xs) =+ req `addQuery` toQuery ("orphanDependents", Just xs)++-- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest PropagationPolicy where+ applyOptionalParam req (PropagationPolicy xs) =+ req `addQuery` toQuery ("propagationPolicy", Just xs)++-- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest ResourceVersion where+ applyOptionalParam req (ResourceVersion xs) =+ req `addQuery` toQuery ("resourceVersion", Just xs)++-- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest ResourceVersionMatch where+ applyOptionalParam req (ResourceVersionMatch xs) =+ req `addQuery` toQuery ("resourceVersionMatch", Just xs)++-- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest SendInitialEvents where+ applyOptionalParam req (SendInitialEvents xs) =+ req `addQuery` toQuery ("sendInitialEvents", Just xs)++-- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.+instance HasOptionalParam DeleteCollectionNamespacedPodCertificateRequest TimeoutSeconds where+ applyOptionalParam req (TimeoutSeconds xs) =+ req `addQuery` toQuery ("timeoutSeconds", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes DeleteCollectionNamespacedPodCertificateRequest mtype++-- | @application/json@+instance Produces DeleteCollectionNamespacedPodCertificateRequest MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces DeleteCollectionNamespacedPodCertificateRequest MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces DeleteCollectionNamespacedPodCertificateRequest MimeCbor+-- | @application/yaml@+instance Produces DeleteCollectionNamespacedPodCertificateRequest MimeYaml+++-- *** deleteNamespacedPodCertificateRequest++-- | @DELETE \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests\/{name}@+-- +-- delete a PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +deleteNamespacedPodCertificateRequest+ :: (Consumes DeleteNamespacedPodCertificateRequest contentType)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the PodCertificateRequest+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest DeleteNamespacedPodCertificateRequest contentType V1Status accept+deleteNamespacedPodCertificateRequest _ _ (Name name) (Namespace namespace) =+ _mkRequest "DELETE" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data DeleteNamespacedPodCertificateRequest +instance HasBodyParam DeleteNamespacedPodCertificateRequest V1DeleteOptions ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam DeleteNamespacedPodCertificateRequest Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam DeleteNamespacedPodCertificateRequest DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "gracePeriodSeconds" - 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.+instance HasOptionalParam DeleteNamespacedPodCertificateRequest GracePeriodSeconds where+ applyOptionalParam req (GracePeriodSeconds xs) =+ req `addQuery` toQuery ("gracePeriodSeconds", Just xs)++-- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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+instance HasOptionalParam DeleteNamespacedPodCertificateRequest IgnoreStoreReadErrorWithClusterBreakingPotential where+ applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =+ req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)++-- | /Optional Param/ "orphanDependents" - 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.+instance HasOptionalParam DeleteNamespacedPodCertificateRequest OrphanDependents where+ applyOptionalParam req (OrphanDependents xs) =+ req `addQuery` toQuery ("orphanDependents", Just xs)++-- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.+instance HasOptionalParam DeleteNamespacedPodCertificateRequest PropagationPolicy where+ applyOptionalParam req (PropagationPolicy xs) =+ req `addQuery` toQuery ("propagationPolicy", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes DeleteNamespacedPodCertificateRequest mtype++-- | @application/json@+instance Produces DeleteNamespacedPodCertificateRequest MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces DeleteNamespacedPodCertificateRequest MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces DeleteNamespacedPodCertificateRequest MimeCbor+-- | @application/yaml@+instance Produces DeleteNamespacedPodCertificateRequest MimeYaml++ -- *** getAPIResources -- | @GET \/apis\/certificates.k8s.io\/v1beta1\/@@@ -392,6 +617,181 @@ instance Produces ListClusterTrustBundle MimeYaml +-- *** listNamespacedPodCertificateRequest++-- | @GET \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests@+-- +-- list or watch objects of kind PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +listNamespacedPodCertificateRequest+ :: Accept accept -- ^ request accept ('MimeType')+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest ListNamespacedPodCertificateRequest MimeNoContent V1beta1PodCertificateRequestList accept+listNamespacedPodCertificateRequest _ (Namespace namespace) =+ _mkRequest "GET" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ListNamespacedPodCertificateRequest ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ListNamespacedPodCertificateRequest Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.+instance HasOptionalParam ListNamespacedPodCertificateRequest AllowWatchBookmarks where+ applyOptionalParam req (AllowWatchBookmarks xs) =+ req `addQuery` toQuery ("allowWatchBookmarks", Just xs)++-- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.+instance HasOptionalParam ListNamespacedPodCertificateRequest Continue where+ applyOptionalParam req (Continue xs) =+ req `addQuery` toQuery ("continue", Just xs)++-- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.+instance HasOptionalParam ListNamespacedPodCertificateRequest FieldSelector where+ applyOptionalParam req (FieldSelector xs) =+ req `addQuery` toQuery ("fieldSelector", Just xs)++-- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.+instance HasOptionalParam ListNamespacedPodCertificateRequest LabelSelector where+ applyOptionalParam req (LabelSelector xs) =+ req `addQuery` toQuery ("labelSelector", Just xs)++-- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.+instance HasOptionalParam ListNamespacedPodCertificateRequest Limit where+ applyOptionalParam req (Limit xs) =+ req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListNamespacedPodCertificateRequest ResourceVersion where+ applyOptionalParam req (ResourceVersion xs) =+ req `addQuery` toQuery ("resourceVersion", Just xs)++-- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListNamespacedPodCertificateRequest ResourceVersionMatch where+ applyOptionalParam req (ResourceVersionMatch xs) =+ req `addQuery` toQuery ("resourceVersionMatch", Just xs)++-- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.+instance HasOptionalParam ListNamespacedPodCertificateRequest SendInitialEvents where+ applyOptionalParam req (SendInitialEvents xs) =+ req `addQuery` toQuery ("sendInitialEvents", Just xs)++-- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.+instance HasOptionalParam ListNamespacedPodCertificateRequest TimeoutSeconds where+ applyOptionalParam req (TimeoutSeconds xs) =+ req `addQuery` toQuery ("timeoutSeconds", Just xs)++-- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.+instance HasOptionalParam ListNamespacedPodCertificateRequest Watch where+ applyOptionalParam req (Watch xs) =+ req `addQuery` toQuery ("watch", Just xs)+-- | @application/cbor-seq@+instance Produces ListNamespacedPodCertificateRequest MimeCborSeq+-- | @application/json@+instance Produces ListNamespacedPodCertificateRequest MimeJSON+-- | @application/json;stream=watch@+instance Produces ListNamespacedPodCertificateRequest MimeJsonstreamwatch+-- | @application/vnd.kubernetes.protobuf@+instance Produces ListNamespacedPodCertificateRequest MimeVndKubernetesProtobuf+-- | @application/vnd.kubernetes.protobuf;stream=watch@+instance Produces ListNamespacedPodCertificateRequest MimeVndKubernetesProtobufstreamwatch+-- | @application/cbor@+instance Produces ListNamespacedPodCertificateRequest MimeCbor+-- | @application/yaml@+instance Produces ListNamespacedPodCertificateRequest MimeYaml+++-- *** listPodCertificateRequestForAllNamespaces++-- | @GET \/apis\/certificates.k8s.io\/v1beta1\/podcertificaterequests@+-- +-- list or watch objects of kind PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +listPodCertificateRequestForAllNamespaces+ :: Accept accept -- ^ request accept ('MimeType')+ -> KubernetesRequest ListPodCertificateRequestForAllNamespaces MimeNoContent V1beta1PodCertificateRequestList accept+listPodCertificateRequestForAllNamespaces _ =+ _mkRequest "GET" ["/apis/certificates.k8s.io/v1beta1/podcertificaterequests"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ListPodCertificateRequestForAllNamespaces ++-- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces AllowWatchBookmarks where+ applyOptionalParam req (AllowWatchBookmarks xs) =+ req `addQuery` toQuery ("allowWatchBookmarks", Just xs)++-- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces Continue where+ applyOptionalParam req (Continue xs) =+ req `addQuery` toQuery ("continue", Just xs)++-- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces FieldSelector where+ applyOptionalParam req (FieldSelector xs) =+ req `addQuery` toQuery ("fieldSelector", Just xs)++-- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces LabelSelector where+ applyOptionalParam req (LabelSelector xs) =+ req `addQuery` toQuery ("labelSelector", Just xs)++-- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces Limit where+ applyOptionalParam req (Limit xs) =+ req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces ResourceVersion where+ applyOptionalParam req (ResourceVersion xs) =+ req `addQuery` toQuery ("resourceVersion", Just xs)++-- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces ResourceVersionMatch where+ applyOptionalParam req (ResourceVersionMatch xs) =+ req `addQuery` toQuery ("resourceVersionMatch", Just xs)++-- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces SendInitialEvents where+ applyOptionalParam req (SendInitialEvents xs) =+ req `addQuery` toQuery ("sendInitialEvents", Just xs)++-- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces TimeoutSeconds where+ applyOptionalParam req (TimeoutSeconds xs) =+ req `addQuery` toQuery ("timeoutSeconds", Just xs)++-- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.+instance HasOptionalParam ListPodCertificateRequestForAllNamespaces Watch where+ applyOptionalParam req (Watch xs) =+ req `addQuery` toQuery ("watch", Just xs)+-- | @application/cbor-seq@+instance Produces ListPodCertificateRequestForAllNamespaces MimeCborSeq+-- | @application/json@+instance Produces ListPodCertificateRequestForAllNamespaces MimeJSON+-- | @application/json;stream=watch@+instance Produces ListPodCertificateRequestForAllNamespaces MimeJsonstreamwatch+-- | @application/vnd.kubernetes.protobuf@+instance Produces ListPodCertificateRequestForAllNamespaces MimeVndKubernetesProtobuf+-- | @application/vnd.kubernetes.protobuf;stream=watch@+instance Produces ListPodCertificateRequestForAllNamespaces MimeVndKubernetesProtobufstreamwatch+-- | @application/cbor@+instance Produces ListPodCertificateRequestForAllNamespaces MimeCbor+-- | @application/yaml@+instance Produces ListPodCertificateRequestForAllNamespaces MimeYaml++ -- *** patchClusterTrustBundle -- | @PATCH \/apis\/certificates.k8s.io\/v1beta1\/clustertrustbundles\/{name}@@@ -461,6 +861,146 @@ instance Produces PatchClusterTrustBundle MimeYaml +-- *** patchNamespacedPodCertificateRequest++-- | @PATCH \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests\/{name}@+-- +-- partially update the specified PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +patchNamespacedPodCertificateRequest+ :: (Consumes PatchNamespacedPodCertificateRequest contentType, MimeRender contentType Body)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Body -- ^ "body"+ -> Name -- ^ "name" - name of the PodCertificateRequest+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest PatchNamespacedPodCertificateRequest contentType V1beta1PodCertificateRequest accept+patchNamespacedPodCertificateRequest _ _ body (Name name) (Namespace namespace) =+ _mkRequest "PATCH" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data PatchNamespacedPodCertificateRequest +instance HasBodyParam PatchNamespacedPodCertificateRequest Body ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam PatchNamespacedPodCertificateRequest Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam PatchNamespacedPodCertificateRequest DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).+instance HasOptionalParam PatchNamespacedPodCertificateRequest FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam PatchNamespacedPodCertificateRequest FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.+instance HasOptionalParam PatchNamespacedPodCertificateRequest Force where+ applyOptionalParam req (Force xs) =+ req `addQuery` toQuery ("force", Just xs)++-- | @application/apply-patch+yaml@+instance Consumes PatchNamespacedPodCertificateRequest MimeApplyPatchyaml+-- | @application/json-patch+json@+instance Consumes PatchNamespacedPodCertificateRequest MimeJsonPatchjson+-- | @application/merge-patch+json@+instance Consumes PatchNamespacedPodCertificateRequest MimeMergePatchjson+-- | @application/strategic-merge-patch+json@+instance Consumes PatchNamespacedPodCertificateRequest MimeStrategicMergePatchjson+-- | @application/apply-patch+cbor@+instance Consumes PatchNamespacedPodCertificateRequest MimeApplyPatchcbor++-- | @application/json@+instance Produces PatchNamespacedPodCertificateRequest MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces PatchNamespacedPodCertificateRequest MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces PatchNamespacedPodCertificateRequest MimeCbor+-- | @application/yaml@+instance Produces PatchNamespacedPodCertificateRequest MimeYaml+++-- *** patchNamespacedPodCertificateRequestStatus++-- | @PATCH \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests\/{name}\/status@+-- +-- partially update status of the specified PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +patchNamespacedPodCertificateRequestStatus+ :: (Consumes PatchNamespacedPodCertificateRequestStatus contentType, MimeRender contentType Body)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Body -- ^ "body"+ -> Name -- ^ "name" - name of the PodCertificateRequest+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest PatchNamespacedPodCertificateRequestStatus contentType V1beta1PodCertificateRequest accept+patchNamespacedPodCertificateRequestStatus _ _ body (Name name) (Namespace namespace) =+ _mkRequest "PATCH" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data PatchNamespacedPodCertificateRequestStatus +instance HasBodyParam PatchNamespacedPodCertificateRequestStatus Body ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).+instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.+instance HasOptionalParam PatchNamespacedPodCertificateRequestStatus Force where+ applyOptionalParam req (Force xs) =+ req `addQuery` toQuery ("force", Just xs)++-- | @application/apply-patch+yaml@+instance Consumes PatchNamespacedPodCertificateRequestStatus MimeApplyPatchyaml+-- | @application/json-patch+json@+instance Consumes PatchNamespacedPodCertificateRequestStatus MimeJsonPatchjson+-- | @application/merge-patch+json@+instance Consumes PatchNamespacedPodCertificateRequestStatus MimeMergePatchjson+-- | @application/strategic-merge-patch+json@+instance Consumes PatchNamespacedPodCertificateRequestStatus MimeStrategicMergePatchjson+-- | @application/apply-patch+cbor@+instance Consumes PatchNamespacedPodCertificateRequestStatus MimeApplyPatchcbor++-- | @application/json@+instance Produces PatchNamespacedPodCertificateRequestStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces PatchNamespacedPodCertificateRequestStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces PatchNamespacedPodCertificateRequestStatus MimeCbor+-- | @application/yaml@+instance Produces PatchNamespacedPodCertificateRequestStatus MimeYaml++ -- *** readClusterTrustBundle -- | @GET \/apis\/certificates.k8s.io\/v1beta1\/clustertrustbundles\/{name}@@@ -493,6 +1033,72 @@ instance Produces ReadClusterTrustBundle MimeYaml +-- *** readNamespacedPodCertificateRequest++-- | @GET \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests\/{name}@+-- +-- read the specified PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +readNamespacedPodCertificateRequest+ :: Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the PodCertificateRequest+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest ReadNamespacedPodCertificateRequest MimeNoContent V1beta1PodCertificateRequest accept+readNamespacedPodCertificateRequest _ (Name name) (Namespace namespace) =+ _mkRequest "GET" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ReadNamespacedPodCertificateRequest ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReadNamespacedPodCertificateRequest Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)+-- | @application/json@+instance Produces ReadNamespacedPodCertificateRequest MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReadNamespacedPodCertificateRequest MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReadNamespacedPodCertificateRequest MimeCbor+-- | @application/yaml@+instance Produces ReadNamespacedPodCertificateRequest MimeYaml+++-- *** readNamespacedPodCertificateRequestStatus++-- | @GET \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests\/{name}\/status@+-- +-- read status of the specified PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +readNamespacedPodCertificateRequestStatus+ :: Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the PodCertificateRequest+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest ReadNamespacedPodCertificateRequestStatus MimeNoContent V1beta1PodCertificateRequest accept+readNamespacedPodCertificateRequestStatus _ (Name name) (Namespace namespace) =+ _mkRequest "GET" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ReadNamespacedPodCertificateRequestStatus ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReadNamespacedPodCertificateRequestStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)+-- | @application/json@+instance Produces ReadNamespacedPodCertificateRequestStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReadNamespacedPodCertificateRequestStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReadNamespacedPodCertificateRequestStatus MimeCbor+-- | @application/yaml@+instance Produces ReadNamespacedPodCertificateRequestStatus MimeYaml++ -- *** replaceClusterTrustBundle -- | @PUT \/apis\/certificates.k8s.io\/v1beta1\/clustertrustbundles\/{name}@@@ -547,4 +1153,118 @@ instance Produces ReplaceClusterTrustBundle MimeCbor -- | @application/yaml@ instance Produces ReplaceClusterTrustBundle MimeYaml+++-- *** replaceNamespacedPodCertificateRequest++-- | @PUT \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests\/{name}@+-- +-- replace the specified PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +replaceNamespacedPodCertificateRequest+ :: (Consumes ReplaceNamespacedPodCertificateRequest contentType, MimeRender contentType V1beta1PodCertificateRequest)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1beta1PodCertificateRequest -- ^ "body"+ -> Name -- ^ "name" - name of the PodCertificateRequest+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest ReplaceNamespacedPodCertificateRequest contentType V1beta1PodCertificateRequest accept+replaceNamespacedPodCertificateRequest _ _ body (Name name) (Namespace namespace) =+ _mkRequest "PUT" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data ReplaceNamespacedPodCertificateRequest +instance HasBodyParam ReplaceNamespacedPodCertificateRequest V1beta1PodCertificateRequest ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReplaceNamespacedPodCertificateRequest Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam ReplaceNamespacedPodCertificateRequest DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam ReplaceNamespacedPodCertificateRequest FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam ReplaceNamespacedPodCertificateRequest FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes ReplaceNamespacedPodCertificateRequest mtype++-- | @application/json@+instance Produces ReplaceNamespacedPodCertificateRequest MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReplaceNamespacedPodCertificateRequest MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReplaceNamespacedPodCertificateRequest MimeCbor+-- | @application/yaml@+instance Produces ReplaceNamespacedPodCertificateRequest MimeYaml+++-- *** replaceNamespacedPodCertificateRequestStatus++-- | @PUT \/apis\/certificates.k8s.io\/v1beta1\/namespaces\/{namespace}\/podcertificaterequests\/{name}\/status@+-- +-- replace status of the specified PodCertificateRequest+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +replaceNamespacedPodCertificateRequestStatus+ :: (Consumes ReplaceNamespacedPodCertificateRequestStatus contentType, MimeRender contentType V1beta1PodCertificateRequest)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1beta1PodCertificateRequest -- ^ "body"+ -> Name -- ^ "name" - name of the PodCertificateRequest+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest ReplaceNamespacedPodCertificateRequestStatus contentType V1beta1PodCertificateRequest accept+replaceNamespacedPodCertificateRequestStatus _ _ body (Name name) (Namespace namespace) =+ _mkRequest "PUT" ["/apis/certificates.k8s.io/v1beta1/namespaces/",toPath namespace,"/podcertificaterequests/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data ReplaceNamespacedPodCertificateRequestStatus +instance HasBodyParam ReplaceNamespacedPodCertificateRequestStatus V1beta1PodCertificateRequest ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReplaceNamespacedPodCertificateRequestStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam ReplaceNamespacedPodCertificateRequestStatus DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam ReplaceNamespacedPodCertificateRequestStatus FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam ReplaceNamespacedPodCertificateRequestStatus FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes ReplaceNamespacedPodCertificateRequestStatus mtype++-- | @application/json@+instance Produces ReplaceNamespacedPodCertificateRequestStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReplaceNamespacedPodCertificateRequestStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReplaceNamespacedPodCertificateRequestStatus MimeCbor+-- | @application/yaml@+instance Produces ReplaceNamespacedPodCertificateRequestStatus MimeYaml
lib/Kubernetes/OpenAPI/API/Coordination.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/CoordinationV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/CoordinationV1alpha2.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/CoordinationV1beta1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Core.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/CoreV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/CustomObjects.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Discovery.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/DiscoveryV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Events.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/EventsV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/FlowcontrolApiserver.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/FlowcontrolApiserverV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/InternalApiserver.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/InternalApiserverV1alpha1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Logs.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Networking.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/NetworkingV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/NetworkingV1beta1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Node.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/NodeV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Openid.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Policy.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/PolicyV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/RbacAuthorization.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/RbacAuthorizationV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Resource.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/ResourceV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/ResourceV1alpha3.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -} @@ -461,6 +461,75 @@ instance Produces PatchDeviceTaintRule MimeYaml +-- *** patchDeviceTaintRuleStatus++-- | @PATCH \/apis\/resource.k8s.io\/v1alpha3\/devicetaintrules\/{name}\/status@+-- +-- partially update status of the specified DeviceTaintRule+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +patchDeviceTaintRuleStatus+ :: (Consumes PatchDeviceTaintRuleStatus contentType, MimeRender contentType Body)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Body -- ^ "body"+ -> Name -- ^ "name" - name of the DeviceTaintRule+ -> KubernetesRequest PatchDeviceTaintRuleStatus contentType V1alpha3DeviceTaintRule accept+patchDeviceTaintRuleStatus _ _ body (Name name) =+ _mkRequest "PATCH" ["/apis/resource.k8s.io/v1alpha3/devicetaintrules/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data PatchDeviceTaintRuleStatus +instance HasBodyParam PatchDeviceTaintRuleStatus Body ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam PatchDeviceTaintRuleStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam PatchDeviceTaintRuleStatus DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).+instance HasOptionalParam PatchDeviceTaintRuleStatus FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam PatchDeviceTaintRuleStatus FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.+instance HasOptionalParam PatchDeviceTaintRuleStatus Force where+ applyOptionalParam req (Force xs) =+ req `addQuery` toQuery ("force", Just xs)++-- | @application/apply-patch+yaml@+instance Consumes PatchDeviceTaintRuleStatus MimeApplyPatchyaml+-- | @application/json-patch+json@+instance Consumes PatchDeviceTaintRuleStatus MimeJsonPatchjson+-- | @application/merge-patch+json@+instance Consumes PatchDeviceTaintRuleStatus MimeMergePatchjson+-- | @application/strategic-merge-patch+json@+instance Consumes PatchDeviceTaintRuleStatus MimeStrategicMergePatchjson+-- | @application/apply-patch+cbor@+instance Consumes PatchDeviceTaintRuleStatus MimeApplyPatchcbor++-- | @application/json@+instance Produces PatchDeviceTaintRuleStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces PatchDeviceTaintRuleStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces PatchDeviceTaintRuleStatus MimeCbor+-- | @application/yaml@+instance Produces PatchDeviceTaintRuleStatus MimeYaml++ -- *** readDeviceTaintRule -- | @GET \/apis\/resource.k8s.io\/v1alpha3\/devicetaintrules\/{name}@@@ -493,6 +562,38 @@ instance Produces ReadDeviceTaintRule MimeYaml +-- *** readDeviceTaintRuleStatus++-- | @GET \/apis\/resource.k8s.io\/v1alpha3\/devicetaintrules\/{name}\/status@+-- +-- read status of the specified DeviceTaintRule+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +readDeviceTaintRuleStatus+ :: Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the DeviceTaintRule+ -> KubernetesRequest ReadDeviceTaintRuleStatus MimeNoContent V1alpha3DeviceTaintRule accept+readDeviceTaintRuleStatus _ (Name name) =+ _mkRequest "GET" ["/apis/resource.k8s.io/v1alpha3/devicetaintrules/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ReadDeviceTaintRuleStatus ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReadDeviceTaintRuleStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)+-- | @application/json@+instance Produces ReadDeviceTaintRuleStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReadDeviceTaintRuleStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReadDeviceTaintRuleStatus MimeCbor+-- | @application/yaml@+instance Produces ReadDeviceTaintRuleStatus MimeYaml++ -- *** replaceDeviceTaintRule -- | @PUT \/apis\/resource.k8s.io\/v1alpha3\/devicetaintrules\/{name}@@@ -547,4 +648,60 @@ instance Produces ReplaceDeviceTaintRule MimeCbor -- | @application/yaml@ instance Produces ReplaceDeviceTaintRule MimeYaml+++-- *** replaceDeviceTaintRuleStatus++-- | @PUT \/apis\/resource.k8s.io\/v1alpha3\/devicetaintrules\/{name}\/status@+-- +-- replace status of the specified DeviceTaintRule+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +replaceDeviceTaintRuleStatus+ :: (Consumes ReplaceDeviceTaintRuleStatus contentType, MimeRender contentType V1alpha3DeviceTaintRule)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1alpha3DeviceTaintRule -- ^ "body"+ -> Name -- ^ "name" - name of the DeviceTaintRule+ -> KubernetesRequest ReplaceDeviceTaintRuleStatus contentType V1alpha3DeviceTaintRule accept+replaceDeviceTaintRuleStatus _ _ body (Name name) =+ _mkRequest "PUT" ["/apis/resource.k8s.io/v1alpha3/devicetaintrules/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data ReplaceDeviceTaintRuleStatus +instance HasBodyParam ReplaceDeviceTaintRuleStatus V1alpha3DeviceTaintRule ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReplaceDeviceTaintRuleStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam ReplaceDeviceTaintRuleStatus DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam ReplaceDeviceTaintRuleStatus FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam ReplaceDeviceTaintRuleStatus FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes ReplaceDeviceTaintRuleStatus mtype++-- | @application/json@+instance Produces ReplaceDeviceTaintRuleStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReplaceDeviceTaintRuleStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReplaceDeviceTaintRuleStatus MimeCbor+-- | @application/yaml@+instance Produces ReplaceDeviceTaintRuleStatus MimeYaml
lib/Kubernetes/OpenAPI/API/ResourceV1beta1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/ResourceV1beta2.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Scheduling.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/SchedulingV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
+ lib/Kubernetes/OpenAPI/API/SchedulingV1alpha1.hs view
@@ -0,0 +1,644 @@+{-+ Kubernetes++ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)++ OpenAPI Version: 3.0.1+ Kubernetes API version: release-1.35+ Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Kubernetes.OpenAPI.API.SchedulingV1alpha1+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Kubernetes.OpenAPI.API.SchedulingV1alpha1 where++import Kubernetes.OpenAPI.Core+import Kubernetes.OpenAPI.MimeTypes+import Kubernetes.OpenAPI.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** SchedulingV1alpha1++-- *** createNamespacedWorkload++-- | @POST \/apis\/scheduling.k8s.io\/v1alpha1\/namespaces\/{namespace}\/workloads@+-- +-- create a Workload+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +createNamespacedWorkload+ :: (Consumes CreateNamespacedWorkload contentType, MimeRender contentType V1alpha1Workload)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1alpha1Workload -- ^ "body"+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest CreateNamespacedWorkload contentType V1alpha1Workload accept+createNamespacedWorkload _ _ body (Namespace namespace) =+ _mkRequest "POST" ["/apis/scheduling.k8s.io/v1alpha1/namespaces/",toPath namespace,"/workloads"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data CreateNamespacedWorkload +instance HasBodyParam CreateNamespacedWorkload V1alpha1Workload ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam CreateNamespacedWorkload Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam CreateNamespacedWorkload DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam CreateNamespacedWorkload FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam CreateNamespacedWorkload FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes CreateNamespacedWorkload mtype++-- | @application/json@+instance Produces CreateNamespacedWorkload MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces CreateNamespacedWorkload MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces CreateNamespacedWorkload MimeCbor+-- | @application/yaml@+instance Produces CreateNamespacedWorkload MimeYaml+++-- *** deleteCollectionNamespacedWorkload++-- | @DELETE \/apis\/scheduling.k8s.io\/v1alpha1\/namespaces\/{namespace}\/workloads@+-- +-- delete collection of Workload+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +deleteCollectionNamespacedWorkload+ :: (Consumes DeleteCollectionNamespacedWorkload contentType)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest DeleteCollectionNamespacedWorkload contentType V1Status accept+deleteCollectionNamespacedWorkload _ _ (Namespace namespace) =+ _mkRequest "DELETE" ["/apis/scheduling.k8s.io/v1alpha1/namespaces/",toPath namespace,"/workloads"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data DeleteCollectionNamespacedWorkload +instance HasBodyParam DeleteCollectionNamespacedWorkload V1DeleteOptions ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam DeleteCollectionNamespacedWorkload Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.+instance HasOptionalParam DeleteCollectionNamespacedWorkload Continue where+ applyOptionalParam req (Continue xs) =+ req `addQuery` toQuery ("continue", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam DeleteCollectionNamespacedWorkload DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.+instance HasOptionalParam DeleteCollectionNamespacedWorkload FieldSelector where+ applyOptionalParam req (FieldSelector xs) =+ req `addQuery` toQuery ("fieldSelector", Just xs)++-- | /Optional Param/ "gracePeriodSeconds" - 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.+instance HasOptionalParam DeleteCollectionNamespacedWorkload GracePeriodSeconds where+ applyOptionalParam req (GracePeriodSeconds xs) =+ req `addQuery` toQuery ("gracePeriodSeconds", Just xs)++-- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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+instance HasOptionalParam DeleteCollectionNamespacedWorkload IgnoreStoreReadErrorWithClusterBreakingPotential where+ applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =+ req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)++-- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.+instance HasOptionalParam DeleteCollectionNamespacedWorkload LabelSelector where+ applyOptionalParam req (LabelSelector xs) =+ req `addQuery` toQuery ("labelSelector", Just xs)++-- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.+instance HasOptionalParam DeleteCollectionNamespacedWorkload Limit where+ applyOptionalParam req (Limit xs) =+ req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "orphanDependents" - 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.+instance HasOptionalParam DeleteCollectionNamespacedWorkload OrphanDependents where+ applyOptionalParam req (OrphanDependents xs) =+ req `addQuery` toQuery ("orphanDependents", Just xs)++-- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.+instance HasOptionalParam DeleteCollectionNamespacedWorkload PropagationPolicy where+ applyOptionalParam req (PropagationPolicy xs) =+ req `addQuery` toQuery ("propagationPolicy", Just xs)++-- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam DeleteCollectionNamespacedWorkload ResourceVersion where+ applyOptionalParam req (ResourceVersion xs) =+ req `addQuery` toQuery ("resourceVersion", Just xs)++-- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam DeleteCollectionNamespacedWorkload ResourceVersionMatch where+ applyOptionalParam req (ResourceVersionMatch xs) =+ req `addQuery` toQuery ("resourceVersionMatch", Just xs)++-- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.+instance HasOptionalParam DeleteCollectionNamespacedWorkload SendInitialEvents where+ applyOptionalParam req (SendInitialEvents xs) =+ req `addQuery` toQuery ("sendInitialEvents", Just xs)++-- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.+instance HasOptionalParam DeleteCollectionNamespacedWorkload TimeoutSeconds where+ applyOptionalParam req (TimeoutSeconds xs) =+ req `addQuery` toQuery ("timeoutSeconds", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes DeleteCollectionNamespacedWorkload mtype++-- | @application/json@+instance Produces DeleteCollectionNamespacedWorkload MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces DeleteCollectionNamespacedWorkload MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces DeleteCollectionNamespacedWorkload MimeCbor+-- | @application/yaml@+instance Produces DeleteCollectionNamespacedWorkload MimeYaml+++-- *** deleteNamespacedWorkload++-- | @DELETE \/apis\/scheduling.k8s.io\/v1alpha1\/namespaces\/{namespace}\/workloads\/{name}@+-- +-- delete a Workload+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +deleteNamespacedWorkload+ :: (Consumes DeleteNamespacedWorkload contentType)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the Workload+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest DeleteNamespacedWorkload contentType V1Status accept+deleteNamespacedWorkload _ _ (Name name) (Namespace namespace) =+ _mkRequest "DELETE" ["/apis/scheduling.k8s.io/v1alpha1/namespaces/",toPath namespace,"/workloads/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data DeleteNamespacedWorkload +instance HasBodyParam DeleteNamespacedWorkload V1DeleteOptions ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam DeleteNamespacedWorkload Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam DeleteNamespacedWorkload DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "gracePeriodSeconds" - 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.+instance HasOptionalParam DeleteNamespacedWorkload GracePeriodSeconds where+ applyOptionalParam req (GracePeriodSeconds xs) =+ req `addQuery` toQuery ("gracePeriodSeconds", Just xs)++-- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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+instance HasOptionalParam DeleteNamespacedWorkload IgnoreStoreReadErrorWithClusterBreakingPotential where+ applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =+ req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)++-- | /Optional Param/ "orphanDependents" - 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.+instance HasOptionalParam DeleteNamespacedWorkload OrphanDependents where+ applyOptionalParam req (OrphanDependents xs) =+ req `addQuery` toQuery ("orphanDependents", Just xs)++-- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.+instance HasOptionalParam DeleteNamespacedWorkload PropagationPolicy where+ applyOptionalParam req (PropagationPolicy xs) =+ req `addQuery` toQuery ("propagationPolicy", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes DeleteNamespacedWorkload mtype++-- | @application/json@+instance Produces DeleteNamespacedWorkload MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces DeleteNamespacedWorkload MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces DeleteNamespacedWorkload MimeCbor+-- | @application/yaml@+instance Produces DeleteNamespacedWorkload MimeYaml+++-- *** getAPIResources++-- | @GET \/apis\/scheduling.k8s.io\/v1alpha1\/@+-- +-- get available resources+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +getAPIResources+ :: Accept accept -- ^ request accept ('MimeType')+ -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept+getAPIResources _ =+ _mkRequest "GET" ["/apis/scheduling.k8s.io/v1alpha1/"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data GetAPIResources +-- | @application/json@+instance Produces GetAPIResources MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces GetAPIResources MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces GetAPIResources MimeCbor+-- | @application/yaml@+instance Produces GetAPIResources MimeYaml+++-- *** listNamespacedWorkload++-- | @GET \/apis\/scheduling.k8s.io\/v1alpha1\/namespaces\/{namespace}\/workloads@+-- +-- list or watch objects of kind Workload+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +listNamespacedWorkload+ :: Accept accept -- ^ request accept ('MimeType')+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest ListNamespacedWorkload MimeNoContent V1alpha1WorkloadList accept+listNamespacedWorkload _ (Namespace namespace) =+ _mkRequest "GET" ["/apis/scheduling.k8s.io/v1alpha1/namespaces/",toPath namespace,"/workloads"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ListNamespacedWorkload ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ListNamespacedWorkload Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.+instance HasOptionalParam ListNamespacedWorkload AllowWatchBookmarks where+ applyOptionalParam req (AllowWatchBookmarks xs) =+ req `addQuery` toQuery ("allowWatchBookmarks", Just xs)++-- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.+instance HasOptionalParam ListNamespacedWorkload Continue where+ applyOptionalParam req (Continue xs) =+ req `addQuery` toQuery ("continue", Just xs)++-- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.+instance HasOptionalParam ListNamespacedWorkload FieldSelector where+ applyOptionalParam req (FieldSelector xs) =+ req `addQuery` toQuery ("fieldSelector", Just xs)++-- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.+instance HasOptionalParam ListNamespacedWorkload LabelSelector where+ applyOptionalParam req (LabelSelector xs) =+ req `addQuery` toQuery ("labelSelector", Just xs)++-- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.+instance HasOptionalParam ListNamespacedWorkload Limit where+ applyOptionalParam req (Limit xs) =+ req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListNamespacedWorkload ResourceVersion where+ applyOptionalParam req (ResourceVersion xs) =+ req `addQuery` toQuery ("resourceVersion", Just xs)++-- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListNamespacedWorkload ResourceVersionMatch where+ applyOptionalParam req (ResourceVersionMatch xs) =+ req `addQuery` toQuery ("resourceVersionMatch", Just xs)++-- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.+instance HasOptionalParam ListNamespacedWorkload SendInitialEvents where+ applyOptionalParam req (SendInitialEvents xs) =+ req `addQuery` toQuery ("sendInitialEvents", Just xs)++-- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.+instance HasOptionalParam ListNamespacedWorkload TimeoutSeconds where+ applyOptionalParam req (TimeoutSeconds xs) =+ req `addQuery` toQuery ("timeoutSeconds", Just xs)++-- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.+instance HasOptionalParam ListNamespacedWorkload Watch where+ applyOptionalParam req (Watch xs) =+ req `addQuery` toQuery ("watch", Just xs)+-- | @application/cbor-seq@+instance Produces ListNamespacedWorkload MimeCborSeq+-- | @application/json@+instance Produces ListNamespacedWorkload MimeJSON+-- | @application/json;stream=watch@+instance Produces ListNamespacedWorkload MimeJsonstreamwatch+-- | @application/vnd.kubernetes.protobuf@+instance Produces ListNamespacedWorkload MimeVndKubernetesProtobuf+-- | @application/vnd.kubernetes.protobuf;stream=watch@+instance Produces ListNamespacedWorkload MimeVndKubernetesProtobufstreamwatch+-- | @application/cbor@+instance Produces ListNamespacedWorkload MimeCbor+-- | @application/yaml@+instance Produces ListNamespacedWorkload MimeYaml+++-- *** listWorkloadForAllNamespaces++-- | @GET \/apis\/scheduling.k8s.io\/v1alpha1\/workloads@+-- +-- list or watch objects of kind Workload+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +listWorkloadForAllNamespaces+ :: Accept accept -- ^ request accept ('MimeType')+ -> KubernetesRequest ListWorkloadForAllNamespaces MimeNoContent V1alpha1WorkloadList accept+listWorkloadForAllNamespaces _ =+ _mkRequest "GET" ["/apis/scheduling.k8s.io/v1alpha1/workloads"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ListWorkloadForAllNamespaces ++-- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.+instance HasOptionalParam ListWorkloadForAllNamespaces AllowWatchBookmarks where+ applyOptionalParam req (AllowWatchBookmarks xs) =+ req `addQuery` toQuery ("allowWatchBookmarks", Just xs)++-- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.+instance HasOptionalParam ListWorkloadForAllNamespaces Continue where+ applyOptionalParam req (Continue xs) =+ req `addQuery` toQuery ("continue", Just xs)++-- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.+instance HasOptionalParam ListWorkloadForAllNamespaces FieldSelector where+ applyOptionalParam req (FieldSelector xs) =+ req `addQuery` toQuery ("fieldSelector", Just xs)++-- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.+instance HasOptionalParam ListWorkloadForAllNamespaces LabelSelector where+ applyOptionalParam req (LabelSelector xs) =+ req `addQuery` toQuery ("labelSelector", Just xs)++-- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.+instance HasOptionalParam ListWorkloadForAllNamespaces Limit where+ applyOptionalParam req (Limit xs) =+ req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ListWorkloadForAllNamespaces Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListWorkloadForAllNamespaces ResourceVersion where+ applyOptionalParam req (ResourceVersion xs) =+ req `addQuery` toQuery ("resourceVersion", Just xs)++-- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListWorkloadForAllNamespaces ResourceVersionMatch where+ applyOptionalParam req (ResourceVersionMatch xs) =+ req `addQuery` toQuery ("resourceVersionMatch", Just xs)++-- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.+instance HasOptionalParam ListWorkloadForAllNamespaces SendInitialEvents where+ applyOptionalParam req (SendInitialEvents xs) =+ req `addQuery` toQuery ("sendInitialEvents", Just xs)++-- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.+instance HasOptionalParam ListWorkloadForAllNamespaces TimeoutSeconds where+ applyOptionalParam req (TimeoutSeconds xs) =+ req `addQuery` toQuery ("timeoutSeconds", Just xs)++-- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.+instance HasOptionalParam ListWorkloadForAllNamespaces Watch where+ applyOptionalParam req (Watch xs) =+ req `addQuery` toQuery ("watch", Just xs)+-- | @application/cbor-seq@+instance Produces ListWorkloadForAllNamespaces MimeCborSeq+-- | @application/json@+instance Produces ListWorkloadForAllNamespaces MimeJSON+-- | @application/json;stream=watch@+instance Produces ListWorkloadForAllNamespaces MimeJsonstreamwatch+-- | @application/vnd.kubernetes.protobuf@+instance Produces ListWorkloadForAllNamespaces MimeVndKubernetesProtobuf+-- | @application/vnd.kubernetes.protobuf;stream=watch@+instance Produces ListWorkloadForAllNamespaces MimeVndKubernetesProtobufstreamwatch+-- | @application/cbor@+instance Produces ListWorkloadForAllNamespaces MimeCbor+-- | @application/yaml@+instance Produces ListWorkloadForAllNamespaces MimeYaml+++-- *** patchNamespacedWorkload++-- | @PATCH \/apis\/scheduling.k8s.io\/v1alpha1\/namespaces\/{namespace}\/workloads\/{name}@+-- +-- partially update the specified Workload+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +patchNamespacedWorkload+ :: (Consumes PatchNamespacedWorkload contentType, MimeRender contentType Body)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Body -- ^ "body"+ -> Name -- ^ "name" - name of the Workload+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest PatchNamespacedWorkload contentType V1alpha1Workload accept+patchNamespacedWorkload _ _ body (Name name) (Namespace namespace) =+ _mkRequest "PATCH" ["/apis/scheduling.k8s.io/v1alpha1/namespaces/",toPath namespace,"/workloads/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data PatchNamespacedWorkload +instance HasBodyParam PatchNamespacedWorkload Body ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam PatchNamespacedWorkload Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam PatchNamespacedWorkload DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).+instance HasOptionalParam PatchNamespacedWorkload FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam PatchNamespacedWorkload FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.+instance HasOptionalParam PatchNamespacedWorkload Force where+ applyOptionalParam req (Force xs) =+ req `addQuery` toQuery ("force", Just xs)++-- | @application/apply-patch+yaml@+instance Consumes PatchNamespacedWorkload MimeApplyPatchyaml+-- | @application/json-patch+json@+instance Consumes PatchNamespacedWorkload MimeJsonPatchjson+-- | @application/merge-patch+json@+instance Consumes PatchNamespacedWorkload MimeMergePatchjson+-- | @application/strategic-merge-patch+json@+instance Consumes PatchNamespacedWorkload MimeStrategicMergePatchjson+-- | @application/apply-patch+cbor@+instance Consumes PatchNamespacedWorkload MimeApplyPatchcbor++-- | @application/json@+instance Produces PatchNamespacedWorkload MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces PatchNamespacedWorkload MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces PatchNamespacedWorkload MimeCbor+-- | @application/yaml@+instance Produces PatchNamespacedWorkload MimeYaml+++-- *** readNamespacedWorkload++-- | @GET \/apis\/scheduling.k8s.io\/v1alpha1\/namespaces\/{namespace}\/workloads\/{name}@+-- +-- read the specified Workload+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +readNamespacedWorkload+ :: Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the Workload+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest ReadNamespacedWorkload MimeNoContent V1alpha1Workload accept+readNamespacedWorkload _ (Name name) (Namespace namespace) =+ _mkRequest "GET" ["/apis/scheduling.k8s.io/v1alpha1/namespaces/",toPath namespace,"/workloads/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ReadNamespacedWorkload ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReadNamespacedWorkload Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)+-- | @application/json@+instance Produces ReadNamespacedWorkload MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReadNamespacedWorkload MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReadNamespacedWorkload MimeCbor+-- | @application/yaml@+instance Produces ReadNamespacedWorkload MimeYaml+++-- *** replaceNamespacedWorkload++-- | @PUT \/apis\/scheduling.k8s.io\/v1alpha1\/namespaces\/{namespace}\/workloads\/{name}@+-- +-- replace the specified Workload+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +replaceNamespacedWorkload+ :: (Consumes ReplaceNamespacedWorkload contentType, MimeRender contentType V1alpha1Workload)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1alpha1Workload -- ^ "body"+ -> Name -- ^ "name" - name of the Workload+ -> Namespace -- ^ "namespace" - object name and auth scope, such as for teams and projects+ -> KubernetesRequest ReplaceNamespacedWorkload contentType V1alpha1Workload accept+replaceNamespacedWorkload _ _ body (Name name) (Namespace namespace) =+ _mkRequest "PUT" ["/apis/scheduling.k8s.io/v1alpha1/namespaces/",toPath namespace,"/workloads/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data ReplaceNamespacedWorkload +instance HasBodyParam ReplaceNamespacedWorkload V1alpha1Workload ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReplaceNamespacedWorkload Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam ReplaceNamespacedWorkload DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam ReplaceNamespacedWorkload FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam ReplaceNamespacedWorkload FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes ReplaceNamespacedWorkload mtype++-- | @application/json@+instance Produces ReplaceNamespacedWorkload MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReplaceNamespacedWorkload MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReplaceNamespacedWorkload MimeCbor+-- | @application/yaml@+instance Produces ReplaceNamespacedWorkload MimeYaml+
lib/Kubernetes/OpenAPI/API/Storage.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/StorageV1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
− lib/Kubernetes/OpenAPI/API/StorageV1alpha1.hs
@@ -1,550 +0,0 @@-{-- Kubernetes-- No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)-- OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34- Generated by OpenAPI Generator (https://openapi-generator.tech)--}--{-|-Module : Kubernetes.OpenAPI.API.StorageV1alpha1--}--{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE MonoLocalBinds #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-}-{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}--module Kubernetes.OpenAPI.API.StorageV1alpha1 where--import Kubernetes.OpenAPI.Core-import Kubernetes.OpenAPI.MimeTypes-import Kubernetes.OpenAPI.Model as M--import qualified Data.Aeson as A-import qualified Data.ByteString as B-import qualified Data.ByteString.Lazy as BL-import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)-import qualified Data.Foldable as P-import qualified Data.Map as Map-import qualified Data.Maybe as P-import qualified Data.Proxy as P (Proxy(..))-import qualified Data.Set as Set-import qualified Data.String as P-import qualified Data.Text as T-import qualified Data.Text.Encoding as T-import qualified Data.Text.Lazy as TL-import qualified Data.Text.Lazy.Encoding as TL-import qualified Data.Time as TI-import qualified Network.HTTP.Client.MultipartFormData as NH-import qualified Network.HTTP.Media as ME-import qualified Network.HTTP.Types as NH-import qualified Web.FormUrlEncoded as WH-import qualified Web.HttpApiData as WH--import Data.Text (Text)-import GHC.Base ((<|>))--import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)-import qualified Prelude as P---- * Operations----- ** StorageV1alpha1---- *** createVolumeAttributesClass---- | @POST \/apis\/storage.k8s.io\/v1alpha1\/volumeattributesclasses@--- --- create a VolumeAttributesClass--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -createVolumeAttributesClass- :: (Consumes CreateVolumeAttributesClass contentType, MimeRender contentType V1alpha1VolumeAttributesClass)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> V1alpha1VolumeAttributesClass -- ^ "body"- -> KubernetesRequest CreateVolumeAttributesClass contentType V1alpha1VolumeAttributesClass accept-createVolumeAttributesClass _ _ body =- _mkRequest "POST" ["/apis/storage.k8s.io/v1alpha1/volumeattributesclasses"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data CreateVolumeAttributesClass -instance HasBodyParam CreateVolumeAttributesClass V1alpha1VolumeAttributesClass ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam CreateVolumeAttributesClass Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam CreateVolumeAttributesClass DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.-instance HasOptionalParam CreateVolumeAttributesClass FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam CreateVolumeAttributesClass FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | @*/*@-instance MimeType mtype => Consumes CreateVolumeAttributesClass mtype---- | @application/json@-instance Produces CreateVolumeAttributesClass MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces CreateVolumeAttributesClass MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces CreateVolumeAttributesClass MimeCbor--- | @application/yaml@-instance Produces CreateVolumeAttributesClass MimeYaml----- *** deleteCollectionVolumeAttributesClass---- | @DELETE \/apis\/storage.k8s.io\/v1alpha1\/volumeattributesclasses@--- --- delete collection of VolumeAttributesClass--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -deleteCollectionVolumeAttributesClass- :: (Consumes DeleteCollectionVolumeAttributesClass contentType)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> KubernetesRequest DeleteCollectionVolumeAttributesClass contentType V1Status accept-deleteCollectionVolumeAttributesClass _ _ =- _mkRequest "DELETE" ["/apis/storage.k8s.io/v1alpha1/volumeattributesclasses"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data DeleteCollectionVolumeAttributesClass -instance HasBodyParam DeleteCollectionVolumeAttributesClass V1DeleteOptions ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam DeleteCollectionVolumeAttributesClass Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass Continue where- applyOptionalParam req (Continue xs) =- req `addQuery` toQuery ("continue", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam DeleteCollectionVolumeAttributesClass DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass FieldSelector where- applyOptionalParam req (FieldSelector xs) =- req `addQuery` toQuery ("fieldSelector", Just xs)---- | /Optional Param/ "gracePeriodSeconds" - 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.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass GracePeriodSeconds where- applyOptionalParam req (GracePeriodSeconds xs) =- req `addQuery` toQuery ("gracePeriodSeconds", Just xs)---- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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-instance HasOptionalParam DeleteCollectionVolumeAttributesClass IgnoreStoreReadErrorWithClusterBreakingPotential where- applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =- req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)---- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass LabelSelector where- applyOptionalParam req (LabelSelector xs) =- req `addQuery` toQuery ("labelSelector", Just xs)---- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass Limit where- applyOptionalParam req (Limit xs) =- req `addQuery` toQuery ("limit", Just xs)---- | /Optional Param/ "orphanDependents" - 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.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass OrphanDependents where- applyOptionalParam req (OrphanDependents xs) =- req `addQuery` toQuery ("orphanDependents", Just xs)---- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass PropagationPolicy where- applyOptionalParam req (PropagationPolicy xs) =- req `addQuery` toQuery ("propagationPolicy", Just xs)---- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam DeleteCollectionVolumeAttributesClass ResourceVersion where- applyOptionalParam req (ResourceVersion xs) =- req `addQuery` toQuery ("resourceVersion", Just xs)---- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam DeleteCollectionVolumeAttributesClass ResourceVersionMatch where- applyOptionalParam req (ResourceVersionMatch xs) =- req `addQuery` toQuery ("resourceVersionMatch", Just xs)---- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass SendInitialEvents where- applyOptionalParam req (SendInitialEvents xs) =- req `addQuery` toQuery ("sendInitialEvents", Just xs)---- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.-instance HasOptionalParam DeleteCollectionVolumeAttributesClass TimeoutSeconds where- applyOptionalParam req (TimeoutSeconds xs) =- req `addQuery` toQuery ("timeoutSeconds", Just xs)---- | @*/*@-instance MimeType mtype => Consumes DeleteCollectionVolumeAttributesClass mtype---- | @application/json@-instance Produces DeleteCollectionVolumeAttributesClass MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces DeleteCollectionVolumeAttributesClass MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces DeleteCollectionVolumeAttributesClass MimeCbor--- | @application/yaml@-instance Produces DeleteCollectionVolumeAttributesClass MimeYaml----- *** deleteVolumeAttributesClass---- | @DELETE \/apis\/storage.k8s.io\/v1alpha1\/volumeattributesclasses\/{name}@--- --- delete a VolumeAttributesClass--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -deleteVolumeAttributesClass- :: (Consumes DeleteVolumeAttributesClass contentType)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Name -- ^ "name" - name of the VolumeAttributesClass- -> KubernetesRequest DeleteVolumeAttributesClass contentType V1alpha1VolumeAttributesClass accept-deleteVolumeAttributesClass _ _ (Name name) =- _mkRequest "DELETE" ["/apis/storage.k8s.io/v1alpha1/volumeattributesclasses/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data DeleteVolumeAttributesClass -instance HasBodyParam DeleteVolumeAttributesClass V1DeleteOptions ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam DeleteVolumeAttributesClass Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam DeleteVolumeAttributesClass DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "gracePeriodSeconds" - 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.-instance HasOptionalParam DeleteVolumeAttributesClass GracePeriodSeconds where- applyOptionalParam req (GracePeriodSeconds xs) =- req `addQuery` toQuery ("gracePeriodSeconds", Just xs)---- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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-instance HasOptionalParam DeleteVolumeAttributesClass IgnoreStoreReadErrorWithClusterBreakingPotential where- applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =- req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)---- | /Optional Param/ "orphanDependents" - 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.-instance HasOptionalParam DeleteVolumeAttributesClass OrphanDependents where- applyOptionalParam req (OrphanDependents xs) =- req `addQuery` toQuery ("orphanDependents", Just xs)---- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.-instance HasOptionalParam DeleteVolumeAttributesClass PropagationPolicy where- applyOptionalParam req (PropagationPolicy xs) =- req `addQuery` toQuery ("propagationPolicy", Just xs)---- | @*/*@-instance MimeType mtype => Consumes DeleteVolumeAttributesClass mtype---- | @application/json@-instance Produces DeleteVolumeAttributesClass MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces DeleteVolumeAttributesClass MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces DeleteVolumeAttributesClass MimeCbor--- | @application/yaml@-instance Produces DeleteVolumeAttributesClass MimeYaml----- *** getAPIResources---- | @GET \/apis\/storage.k8s.io\/v1alpha1\/@--- --- get available resources--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -getAPIResources- :: Accept accept -- ^ request accept ('MimeType')- -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept-getAPIResources _ =- _mkRequest "GET" ["/apis/storage.k8s.io/v1alpha1/"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data GetAPIResources --- | @application/json@-instance Produces GetAPIResources MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces GetAPIResources MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces GetAPIResources MimeCbor--- | @application/yaml@-instance Produces GetAPIResources MimeYaml----- *** listVolumeAttributesClass---- | @GET \/apis\/storage.k8s.io\/v1alpha1\/volumeattributesclasses@--- --- list or watch objects of kind VolumeAttributesClass--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -listVolumeAttributesClass- :: Accept accept -- ^ request accept ('MimeType')- -> KubernetesRequest ListVolumeAttributesClass MimeNoContent V1alpha1VolumeAttributesClassList accept-listVolumeAttributesClass _ =- _mkRequest "GET" ["/apis/storage.k8s.io/v1alpha1/volumeattributesclasses"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ListVolumeAttributesClass ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ListVolumeAttributesClass Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.-instance HasOptionalParam ListVolumeAttributesClass AllowWatchBookmarks where- applyOptionalParam req (AllowWatchBookmarks xs) =- req `addQuery` toQuery ("allowWatchBookmarks", Just xs)---- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.-instance HasOptionalParam ListVolumeAttributesClass Continue where- applyOptionalParam req (Continue xs) =- req `addQuery` toQuery ("continue", Just xs)---- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.-instance HasOptionalParam ListVolumeAttributesClass FieldSelector where- applyOptionalParam req (FieldSelector xs) =- req `addQuery` toQuery ("fieldSelector", Just xs)---- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.-instance HasOptionalParam ListVolumeAttributesClass LabelSelector where- applyOptionalParam req (LabelSelector xs) =- req `addQuery` toQuery ("labelSelector", Just xs)---- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.-instance HasOptionalParam ListVolumeAttributesClass Limit where- applyOptionalParam req (Limit xs) =- req `addQuery` toQuery ("limit", Just xs)---- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam ListVolumeAttributesClass ResourceVersion where- applyOptionalParam req (ResourceVersion xs) =- req `addQuery` toQuery ("resourceVersion", Just xs)---- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam ListVolumeAttributesClass ResourceVersionMatch where- applyOptionalParam req (ResourceVersionMatch xs) =- req `addQuery` toQuery ("resourceVersionMatch", Just xs)---- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.-instance HasOptionalParam ListVolumeAttributesClass SendInitialEvents where- applyOptionalParam req (SendInitialEvents xs) =- req `addQuery` toQuery ("sendInitialEvents", Just xs)---- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.-instance HasOptionalParam ListVolumeAttributesClass TimeoutSeconds where- applyOptionalParam req (TimeoutSeconds xs) =- req `addQuery` toQuery ("timeoutSeconds", Just xs)---- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.-instance HasOptionalParam ListVolumeAttributesClass Watch where- applyOptionalParam req (Watch xs) =- req `addQuery` toQuery ("watch", Just xs)--- | @application/cbor-seq@-instance Produces ListVolumeAttributesClass MimeCborSeq--- | @application/json@-instance Produces ListVolumeAttributesClass MimeJSON--- | @application/json;stream=watch@-instance Produces ListVolumeAttributesClass MimeJsonstreamwatch--- | @application/vnd.kubernetes.protobuf@-instance Produces ListVolumeAttributesClass MimeVndKubernetesProtobuf--- | @application/vnd.kubernetes.protobuf;stream=watch@-instance Produces ListVolumeAttributesClass MimeVndKubernetesProtobufstreamwatch--- | @application/cbor@-instance Produces ListVolumeAttributesClass MimeCbor--- | @application/yaml@-instance Produces ListVolumeAttributesClass MimeYaml----- *** patchVolumeAttributesClass---- | @PATCH \/apis\/storage.k8s.io\/v1alpha1\/volumeattributesclasses\/{name}@--- --- partially update the specified VolumeAttributesClass--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -patchVolumeAttributesClass- :: (Consumes PatchVolumeAttributesClass contentType, MimeRender contentType Body)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Body -- ^ "body"- -> Name -- ^ "name" - name of the VolumeAttributesClass- -> KubernetesRequest PatchVolumeAttributesClass contentType V1alpha1VolumeAttributesClass accept-patchVolumeAttributesClass _ _ body (Name name) =- _mkRequest "PATCH" ["/apis/storage.k8s.io/v1alpha1/volumeattributesclasses/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data PatchVolumeAttributesClass -instance HasBodyParam PatchVolumeAttributesClass Body ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam PatchVolumeAttributesClass Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam PatchVolumeAttributesClass DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).-instance HasOptionalParam PatchVolumeAttributesClass FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam PatchVolumeAttributesClass FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.-instance HasOptionalParam PatchVolumeAttributesClass Force where- applyOptionalParam req (Force xs) =- req `addQuery` toQuery ("force", Just xs)---- | @application/apply-patch+yaml@-instance Consumes PatchVolumeAttributesClass MimeApplyPatchyaml--- | @application/json-patch+json@-instance Consumes PatchVolumeAttributesClass MimeJsonPatchjson--- | @application/merge-patch+json@-instance Consumes PatchVolumeAttributesClass MimeMergePatchjson--- | @application/strategic-merge-patch+json@-instance Consumes PatchVolumeAttributesClass MimeStrategicMergePatchjson--- | @application/apply-patch+cbor@-instance Consumes PatchVolumeAttributesClass MimeApplyPatchcbor---- | @application/json@-instance Produces PatchVolumeAttributesClass MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces PatchVolumeAttributesClass MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces PatchVolumeAttributesClass MimeCbor--- | @application/yaml@-instance Produces PatchVolumeAttributesClass MimeYaml----- *** readVolumeAttributesClass---- | @GET \/apis\/storage.k8s.io\/v1alpha1\/volumeattributesclasses\/{name}@--- --- read the specified VolumeAttributesClass--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -readVolumeAttributesClass- :: Accept accept -- ^ request accept ('MimeType')- -> Name -- ^ "name" - name of the VolumeAttributesClass- -> KubernetesRequest ReadVolumeAttributesClass MimeNoContent V1alpha1VolumeAttributesClass accept-readVolumeAttributesClass _ (Name name) =- _mkRequest "GET" ["/apis/storage.k8s.io/v1alpha1/volumeattributesclasses/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ReadVolumeAttributesClass ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReadVolumeAttributesClass Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)--- | @application/json@-instance Produces ReadVolumeAttributesClass MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReadVolumeAttributesClass MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReadVolumeAttributesClass MimeCbor--- | @application/yaml@-instance Produces ReadVolumeAttributesClass MimeYaml----- *** replaceVolumeAttributesClass---- | @PUT \/apis\/storage.k8s.io\/v1alpha1\/volumeattributesclasses\/{name}@--- --- replace the specified VolumeAttributesClass--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -replaceVolumeAttributesClass- :: (Consumes ReplaceVolumeAttributesClass contentType, MimeRender contentType V1alpha1VolumeAttributesClass)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> V1alpha1VolumeAttributesClass -- ^ "body"- -> Name -- ^ "name" - name of the VolumeAttributesClass- -> KubernetesRequest ReplaceVolumeAttributesClass contentType V1alpha1VolumeAttributesClass accept-replaceVolumeAttributesClass _ _ body (Name name) =- _mkRequest "PUT" ["/apis/storage.k8s.io/v1alpha1/volumeattributesclasses/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data ReplaceVolumeAttributesClass -instance HasBodyParam ReplaceVolumeAttributesClass V1alpha1VolumeAttributesClass ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReplaceVolumeAttributesClass Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam ReplaceVolumeAttributesClass DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.-instance HasOptionalParam ReplaceVolumeAttributesClass FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam ReplaceVolumeAttributesClass FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | @*/*@-instance MimeType mtype => Consumes ReplaceVolumeAttributesClass mtype---- | @application/json@-instance Produces ReplaceVolumeAttributesClass MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReplaceVolumeAttributesClass MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReplaceVolumeAttributesClass MimeCbor--- | @application/yaml@-instance Produces ReplaceVolumeAttributesClass MimeYaml-
lib/Kubernetes/OpenAPI/API/StorageV1beta1.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/Storagemigration.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
− lib/Kubernetes/OpenAPI/API/StoragemigrationV1alpha1.hs
@@ -1,707 +0,0 @@-{-- Kubernetes-- No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)-- OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34- Generated by OpenAPI Generator (https://openapi-generator.tech)--}--{-|-Module : Kubernetes.OpenAPI.API.StoragemigrationV1alpha1--}--{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE MonoLocalBinds #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-}-{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}--module Kubernetes.OpenAPI.API.StoragemigrationV1alpha1 where--import Kubernetes.OpenAPI.Core-import Kubernetes.OpenAPI.MimeTypes-import Kubernetes.OpenAPI.Model as M--import qualified Data.Aeson as A-import qualified Data.ByteString as B-import qualified Data.ByteString.Lazy as BL-import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)-import qualified Data.Foldable as P-import qualified Data.Map as Map-import qualified Data.Maybe as P-import qualified Data.Proxy as P (Proxy(..))-import qualified Data.Set as Set-import qualified Data.String as P-import qualified Data.Text as T-import qualified Data.Text.Encoding as T-import qualified Data.Text.Lazy as TL-import qualified Data.Text.Lazy.Encoding as TL-import qualified Data.Time as TI-import qualified Network.HTTP.Client.MultipartFormData as NH-import qualified Network.HTTP.Media as ME-import qualified Network.HTTP.Types as NH-import qualified Web.FormUrlEncoded as WH-import qualified Web.HttpApiData as WH--import Data.Text (Text)-import GHC.Base ((<|>))--import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)-import qualified Prelude as P---- * Operations----- ** StoragemigrationV1alpha1---- *** createStorageVersionMigration---- | @POST \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations@--- --- create a StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -createStorageVersionMigration- :: (Consumes CreateStorageVersionMigration contentType, MimeRender contentType V1alpha1StorageVersionMigration)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> V1alpha1StorageVersionMigration -- ^ "body"- -> KubernetesRequest CreateStorageVersionMigration contentType V1alpha1StorageVersionMigration accept-createStorageVersionMigration _ _ body =- _mkRequest "POST" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data CreateStorageVersionMigration -instance HasBodyParam CreateStorageVersionMigration V1alpha1StorageVersionMigration ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam CreateStorageVersionMigration Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam CreateStorageVersionMigration DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.-instance HasOptionalParam CreateStorageVersionMigration FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam CreateStorageVersionMigration FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | @*/*@-instance MimeType mtype => Consumes CreateStorageVersionMigration mtype---- | @application/json@-instance Produces CreateStorageVersionMigration MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces CreateStorageVersionMigration MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces CreateStorageVersionMigration MimeCbor--- | @application/yaml@-instance Produces CreateStorageVersionMigration MimeYaml----- *** deleteCollectionStorageVersionMigration---- | @DELETE \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations@--- --- delete collection of StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -deleteCollectionStorageVersionMigration- :: (Consumes DeleteCollectionStorageVersionMigration contentType)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> KubernetesRequest DeleteCollectionStorageVersionMigration contentType V1Status accept-deleteCollectionStorageVersionMigration _ _ =- _mkRequest "DELETE" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data DeleteCollectionStorageVersionMigration -instance HasBodyParam DeleteCollectionStorageVersionMigration V1DeleteOptions ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam DeleteCollectionStorageVersionMigration Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.-instance HasOptionalParam DeleteCollectionStorageVersionMigration Continue where- applyOptionalParam req (Continue xs) =- req `addQuery` toQuery ("continue", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam DeleteCollectionStorageVersionMigration DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.-instance HasOptionalParam DeleteCollectionStorageVersionMigration FieldSelector where- applyOptionalParam req (FieldSelector xs) =- req `addQuery` toQuery ("fieldSelector", Just xs)---- | /Optional Param/ "gracePeriodSeconds" - 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.-instance HasOptionalParam DeleteCollectionStorageVersionMigration GracePeriodSeconds where- applyOptionalParam req (GracePeriodSeconds xs) =- req `addQuery` toQuery ("gracePeriodSeconds", Just xs)---- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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-instance HasOptionalParam DeleteCollectionStorageVersionMigration IgnoreStoreReadErrorWithClusterBreakingPotential where- applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =- req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)---- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.-instance HasOptionalParam DeleteCollectionStorageVersionMigration LabelSelector where- applyOptionalParam req (LabelSelector xs) =- req `addQuery` toQuery ("labelSelector", Just xs)---- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.-instance HasOptionalParam DeleteCollectionStorageVersionMigration Limit where- applyOptionalParam req (Limit xs) =- req `addQuery` toQuery ("limit", Just xs)---- | /Optional Param/ "orphanDependents" - 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.-instance HasOptionalParam DeleteCollectionStorageVersionMigration OrphanDependents where- applyOptionalParam req (OrphanDependents xs) =- req `addQuery` toQuery ("orphanDependents", Just xs)---- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.-instance HasOptionalParam DeleteCollectionStorageVersionMigration PropagationPolicy where- applyOptionalParam req (PropagationPolicy xs) =- req `addQuery` toQuery ("propagationPolicy", Just xs)---- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam DeleteCollectionStorageVersionMigration ResourceVersion where- applyOptionalParam req (ResourceVersion xs) =- req `addQuery` toQuery ("resourceVersion", Just xs)---- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam DeleteCollectionStorageVersionMigration ResourceVersionMatch where- applyOptionalParam req (ResourceVersionMatch xs) =- req `addQuery` toQuery ("resourceVersionMatch", Just xs)---- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.-instance HasOptionalParam DeleteCollectionStorageVersionMigration SendInitialEvents where- applyOptionalParam req (SendInitialEvents xs) =- req `addQuery` toQuery ("sendInitialEvents", Just xs)---- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.-instance HasOptionalParam DeleteCollectionStorageVersionMigration TimeoutSeconds where- applyOptionalParam req (TimeoutSeconds xs) =- req `addQuery` toQuery ("timeoutSeconds", Just xs)---- | @*/*@-instance MimeType mtype => Consumes DeleteCollectionStorageVersionMigration mtype---- | @application/json@-instance Produces DeleteCollectionStorageVersionMigration MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces DeleteCollectionStorageVersionMigration MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces DeleteCollectionStorageVersionMigration MimeCbor--- | @application/yaml@-instance Produces DeleteCollectionStorageVersionMigration MimeYaml----- *** deleteStorageVersionMigration---- | @DELETE \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations\/{name}@--- --- delete a StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -deleteStorageVersionMigration- :: (Consumes DeleteStorageVersionMigration contentType)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Name -- ^ "name" - name of the StorageVersionMigration- -> KubernetesRequest DeleteStorageVersionMigration contentType V1Status accept-deleteStorageVersionMigration _ _ (Name name) =- _mkRequest "DELETE" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data DeleteStorageVersionMigration -instance HasBodyParam DeleteStorageVersionMigration V1DeleteOptions ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam DeleteStorageVersionMigration Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam DeleteStorageVersionMigration DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "gracePeriodSeconds" - 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.-instance HasOptionalParam DeleteStorageVersionMigration GracePeriodSeconds where- applyOptionalParam req (GracePeriodSeconds xs) =- req `addQuery` toQuery ("gracePeriodSeconds", Just xs)---- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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-instance HasOptionalParam DeleteStorageVersionMigration IgnoreStoreReadErrorWithClusterBreakingPotential where- applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =- req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)---- | /Optional Param/ "orphanDependents" - 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.-instance HasOptionalParam DeleteStorageVersionMigration OrphanDependents where- applyOptionalParam req (OrphanDependents xs) =- req `addQuery` toQuery ("orphanDependents", Just xs)---- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.-instance HasOptionalParam DeleteStorageVersionMigration PropagationPolicy where- applyOptionalParam req (PropagationPolicy xs) =- req `addQuery` toQuery ("propagationPolicy", Just xs)---- | @*/*@-instance MimeType mtype => Consumes DeleteStorageVersionMigration mtype---- | @application/json@-instance Produces DeleteStorageVersionMigration MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces DeleteStorageVersionMigration MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces DeleteStorageVersionMigration MimeCbor--- | @application/yaml@-instance Produces DeleteStorageVersionMigration MimeYaml----- *** getAPIResources---- | @GET \/apis\/storagemigration.k8s.io\/v1alpha1\/@--- --- get available resources--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -getAPIResources- :: Accept accept -- ^ request accept ('MimeType')- -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept-getAPIResources _ =- _mkRequest "GET" ["/apis/storagemigration.k8s.io/v1alpha1/"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data GetAPIResources --- | @application/json@-instance Produces GetAPIResources MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces GetAPIResources MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces GetAPIResources MimeCbor--- | @application/yaml@-instance Produces GetAPIResources MimeYaml----- *** listStorageVersionMigration---- | @GET \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations@--- --- list or watch objects of kind StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -listStorageVersionMigration- :: Accept accept -- ^ request accept ('MimeType')- -> KubernetesRequest ListStorageVersionMigration MimeNoContent V1alpha1StorageVersionMigrationList accept-listStorageVersionMigration _ =- _mkRequest "GET" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ListStorageVersionMigration ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ListStorageVersionMigration Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.-instance HasOptionalParam ListStorageVersionMigration AllowWatchBookmarks where- applyOptionalParam req (AllowWatchBookmarks xs) =- req `addQuery` toQuery ("allowWatchBookmarks", Just xs)---- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.-instance HasOptionalParam ListStorageVersionMigration Continue where- applyOptionalParam req (Continue xs) =- req `addQuery` toQuery ("continue", Just xs)---- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.-instance HasOptionalParam ListStorageVersionMigration FieldSelector where- applyOptionalParam req (FieldSelector xs) =- req `addQuery` toQuery ("fieldSelector", Just xs)---- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.-instance HasOptionalParam ListStorageVersionMigration LabelSelector where- applyOptionalParam req (LabelSelector xs) =- req `addQuery` toQuery ("labelSelector", Just xs)---- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.-instance HasOptionalParam ListStorageVersionMigration Limit where- applyOptionalParam req (Limit xs) =- req `addQuery` toQuery ("limit", Just xs)---- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam ListStorageVersionMigration ResourceVersion where- applyOptionalParam req (ResourceVersion xs) =- req `addQuery` toQuery ("resourceVersion", Just xs)---- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset-instance HasOptionalParam ListStorageVersionMigration ResourceVersionMatch where- applyOptionalParam req (ResourceVersionMatch xs) =- req `addQuery` toQuery ("resourceVersionMatch", Just xs)---- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.-instance HasOptionalParam ListStorageVersionMigration SendInitialEvents where- applyOptionalParam req (SendInitialEvents xs) =- req `addQuery` toQuery ("sendInitialEvents", Just xs)---- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.-instance HasOptionalParam ListStorageVersionMigration TimeoutSeconds where- applyOptionalParam req (TimeoutSeconds xs) =- req `addQuery` toQuery ("timeoutSeconds", Just xs)---- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.-instance HasOptionalParam ListStorageVersionMigration Watch where- applyOptionalParam req (Watch xs) =- req `addQuery` toQuery ("watch", Just xs)--- | @application/cbor-seq@-instance Produces ListStorageVersionMigration MimeCborSeq--- | @application/json@-instance Produces ListStorageVersionMigration MimeJSON--- | @application/json;stream=watch@-instance Produces ListStorageVersionMigration MimeJsonstreamwatch--- | @application/vnd.kubernetes.protobuf@-instance Produces ListStorageVersionMigration MimeVndKubernetesProtobuf--- | @application/vnd.kubernetes.protobuf;stream=watch@-instance Produces ListStorageVersionMigration MimeVndKubernetesProtobufstreamwatch--- | @application/cbor@-instance Produces ListStorageVersionMigration MimeCbor--- | @application/yaml@-instance Produces ListStorageVersionMigration MimeYaml----- *** patchStorageVersionMigration---- | @PATCH \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations\/{name}@--- --- partially update the specified StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -patchStorageVersionMigration- :: (Consumes PatchStorageVersionMigration contentType, MimeRender contentType Body)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Body -- ^ "body"- -> Name -- ^ "name" - name of the StorageVersionMigration- -> KubernetesRequest PatchStorageVersionMigration contentType V1alpha1StorageVersionMigration accept-patchStorageVersionMigration _ _ body (Name name) =- _mkRequest "PATCH" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data PatchStorageVersionMigration -instance HasBodyParam PatchStorageVersionMigration Body ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam PatchStorageVersionMigration Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam PatchStorageVersionMigration DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).-instance HasOptionalParam PatchStorageVersionMigration FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam PatchStorageVersionMigration FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.-instance HasOptionalParam PatchStorageVersionMigration Force where- applyOptionalParam req (Force xs) =- req `addQuery` toQuery ("force", Just xs)---- | @application/apply-patch+yaml@-instance Consumes PatchStorageVersionMigration MimeApplyPatchyaml--- | @application/json-patch+json@-instance Consumes PatchStorageVersionMigration MimeJsonPatchjson--- | @application/merge-patch+json@-instance Consumes PatchStorageVersionMigration MimeMergePatchjson--- | @application/strategic-merge-patch+json@-instance Consumes PatchStorageVersionMigration MimeStrategicMergePatchjson--- | @application/apply-patch+cbor@-instance Consumes PatchStorageVersionMigration MimeApplyPatchcbor---- | @application/json@-instance Produces PatchStorageVersionMigration MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces PatchStorageVersionMigration MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces PatchStorageVersionMigration MimeCbor--- | @application/yaml@-instance Produces PatchStorageVersionMigration MimeYaml----- *** patchStorageVersionMigrationStatus---- | @PATCH \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations\/{name}\/status@--- --- partially update status of the specified StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -patchStorageVersionMigrationStatus- :: (Consumes PatchStorageVersionMigrationStatus contentType, MimeRender contentType Body)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> Body -- ^ "body"- -> Name -- ^ "name" - name of the StorageVersionMigration- -> KubernetesRequest PatchStorageVersionMigrationStatus contentType V1alpha1StorageVersionMigration accept-patchStorageVersionMigrationStatus _ _ body (Name name) =- _mkRequest "PATCH" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/",toPath name,"/status"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data PatchStorageVersionMigrationStatus -instance HasBodyParam PatchStorageVersionMigrationStatus Body ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam PatchStorageVersionMigrationStatus Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam PatchStorageVersionMigrationStatus DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).-instance HasOptionalParam PatchStorageVersionMigrationStatus FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam PatchStorageVersionMigrationStatus FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.-instance HasOptionalParam PatchStorageVersionMigrationStatus Force where- applyOptionalParam req (Force xs) =- req `addQuery` toQuery ("force", Just xs)---- | @application/apply-patch+yaml@-instance Consumes PatchStorageVersionMigrationStatus MimeApplyPatchyaml--- | @application/json-patch+json@-instance Consumes PatchStorageVersionMigrationStatus MimeJsonPatchjson--- | @application/merge-patch+json@-instance Consumes PatchStorageVersionMigrationStatus MimeMergePatchjson--- | @application/strategic-merge-patch+json@-instance Consumes PatchStorageVersionMigrationStatus MimeStrategicMergePatchjson--- | @application/apply-patch+cbor@-instance Consumes PatchStorageVersionMigrationStatus MimeApplyPatchcbor---- | @application/json@-instance Produces PatchStorageVersionMigrationStatus MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces PatchStorageVersionMigrationStatus MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces PatchStorageVersionMigrationStatus MimeCbor--- | @application/yaml@-instance Produces PatchStorageVersionMigrationStatus MimeYaml----- *** readStorageVersionMigration---- | @GET \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations\/{name}@--- --- read the specified StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -readStorageVersionMigration- :: Accept accept -- ^ request accept ('MimeType')- -> Name -- ^ "name" - name of the StorageVersionMigration- -> KubernetesRequest ReadStorageVersionMigration MimeNoContent V1alpha1StorageVersionMigration accept-readStorageVersionMigration _ (Name name) =- _mkRequest "GET" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ReadStorageVersionMigration ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReadStorageVersionMigration Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)--- | @application/json@-instance Produces ReadStorageVersionMigration MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReadStorageVersionMigration MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReadStorageVersionMigration MimeCbor--- | @application/yaml@-instance Produces ReadStorageVersionMigration MimeYaml----- *** readStorageVersionMigrationStatus---- | @GET \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations\/{name}\/status@--- --- read status of the specified StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -readStorageVersionMigrationStatus- :: Accept accept -- ^ request accept ('MimeType')- -> Name -- ^ "name" - name of the StorageVersionMigration- -> KubernetesRequest ReadStorageVersionMigrationStatus MimeNoContent V1alpha1StorageVersionMigration accept-readStorageVersionMigrationStatus _ (Name name) =- _mkRequest "GET" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/",toPath name,"/status"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)--data ReadStorageVersionMigrationStatus ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReadStorageVersionMigrationStatus Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)--- | @application/json@-instance Produces ReadStorageVersionMigrationStatus MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReadStorageVersionMigrationStatus MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReadStorageVersionMigrationStatus MimeCbor--- | @application/yaml@-instance Produces ReadStorageVersionMigrationStatus MimeYaml----- *** replaceStorageVersionMigration---- | @PUT \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations\/{name}@--- --- replace the specified StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -replaceStorageVersionMigration- :: (Consumes ReplaceStorageVersionMigration contentType, MimeRender contentType V1alpha1StorageVersionMigration)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> V1alpha1StorageVersionMigration -- ^ "body"- -> Name -- ^ "name" - name of the StorageVersionMigration- -> KubernetesRequest ReplaceStorageVersionMigration contentType V1alpha1StorageVersionMigration accept-replaceStorageVersionMigration _ _ body (Name name) =- _mkRequest "PUT" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/",toPath name]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data ReplaceStorageVersionMigration -instance HasBodyParam ReplaceStorageVersionMigration V1alpha1StorageVersionMigration ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReplaceStorageVersionMigration Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam ReplaceStorageVersionMigration DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.-instance HasOptionalParam ReplaceStorageVersionMigration FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam ReplaceStorageVersionMigration FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | @*/*@-instance MimeType mtype => Consumes ReplaceStorageVersionMigration mtype---- | @application/json@-instance Produces ReplaceStorageVersionMigration MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReplaceStorageVersionMigration MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReplaceStorageVersionMigration MimeCbor--- | @application/yaml@-instance Produces ReplaceStorageVersionMigration MimeYaml----- *** replaceStorageVersionMigrationStatus---- | @PUT \/apis\/storagemigration.k8s.io\/v1alpha1\/storageversionmigrations\/{name}\/status@--- --- replace status of the specified StorageVersionMigration--- --- AuthMethod: 'AuthApiKeyBearerToken'--- -replaceStorageVersionMigrationStatus- :: (Consumes ReplaceStorageVersionMigrationStatus contentType, MimeRender contentType V1alpha1StorageVersionMigration)- => ContentType contentType -- ^ request content-type ('MimeType')- -> Accept accept -- ^ request accept ('MimeType')- -> V1alpha1StorageVersionMigration -- ^ "body"- -> Name -- ^ "name" - name of the StorageVersionMigration- -> KubernetesRequest ReplaceStorageVersionMigrationStatus contentType V1alpha1StorageVersionMigration accept-replaceStorageVersionMigrationStatus _ _ body (Name name) =- _mkRequest "PUT" ["/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/",toPath name,"/status"]- `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)- `setBodyParam` body--data ReplaceStorageVersionMigrationStatus -instance HasBodyParam ReplaceStorageVersionMigrationStatus V1alpha1StorageVersionMigration ---- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).-instance HasOptionalParam ReplaceStorageVersionMigrationStatus Pretty where- applyOptionalParam req (Pretty xs) =- req `addQuery` toQuery ("pretty", Just xs)---- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed-instance HasOptionalParam ReplaceStorageVersionMigrationStatus DryRun where- applyOptionalParam req (DryRun xs) =- req `addQuery` toQuery ("dryRun", Just xs)---- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.-instance HasOptionalParam ReplaceStorageVersionMigrationStatus FieldManager where- applyOptionalParam req (FieldManager xs) =- req `addQuery` toQuery ("fieldManager", Just xs)---- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.-instance HasOptionalParam ReplaceStorageVersionMigrationStatus FieldValidation where- applyOptionalParam req (FieldValidation xs) =- req `addQuery` toQuery ("fieldValidation", Just xs)---- | @*/*@-instance MimeType mtype => Consumes ReplaceStorageVersionMigrationStatus mtype---- | @application/json@-instance Produces ReplaceStorageVersionMigrationStatus MimeJSON--- | @application/vnd.kubernetes.protobuf@-instance Produces ReplaceStorageVersionMigrationStatus MimeVndKubernetesProtobuf--- | @application/cbor@-instance Produces ReplaceStorageVersionMigrationStatus MimeCbor--- | @application/yaml@-instance Produces ReplaceStorageVersionMigrationStatus MimeYaml-
+ lib/Kubernetes/OpenAPI/API/StoragemigrationV1beta1.hs view
@@ -0,0 +1,707 @@+{-+ Kubernetes++ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)++ OpenAPI Version: 3.0.1+ Kubernetes API version: release-1.35+ Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Kubernetes.OpenAPI.API.StoragemigrationV1beta1+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Kubernetes.OpenAPI.API.StoragemigrationV1beta1 where++import Kubernetes.OpenAPI.Core+import Kubernetes.OpenAPI.MimeTypes+import Kubernetes.OpenAPI.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** StoragemigrationV1beta1++-- *** createStorageVersionMigration++-- | @POST \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations@+-- +-- create a StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +createStorageVersionMigration+ :: (Consumes CreateStorageVersionMigration contentType, MimeRender contentType V1beta1StorageVersionMigration)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1beta1StorageVersionMigration -- ^ "body"+ -> KubernetesRequest CreateStorageVersionMigration contentType V1beta1StorageVersionMigration accept+createStorageVersionMigration _ _ body =+ _mkRequest "POST" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data CreateStorageVersionMigration +instance HasBodyParam CreateStorageVersionMigration V1beta1StorageVersionMigration ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam CreateStorageVersionMigration Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam CreateStorageVersionMigration DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam CreateStorageVersionMigration FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam CreateStorageVersionMigration FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes CreateStorageVersionMigration mtype++-- | @application/json@+instance Produces CreateStorageVersionMigration MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces CreateStorageVersionMigration MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces CreateStorageVersionMigration MimeCbor+-- | @application/yaml@+instance Produces CreateStorageVersionMigration MimeYaml+++-- *** deleteCollectionStorageVersionMigration++-- | @DELETE \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations@+-- +-- delete collection of StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +deleteCollectionStorageVersionMigration+ :: (Consumes DeleteCollectionStorageVersionMigration contentType)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> KubernetesRequest DeleteCollectionStorageVersionMigration contentType V1Status accept+deleteCollectionStorageVersionMigration _ _ =+ _mkRequest "DELETE" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data DeleteCollectionStorageVersionMigration +instance HasBodyParam DeleteCollectionStorageVersionMigration V1DeleteOptions ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam DeleteCollectionStorageVersionMigration Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.+instance HasOptionalParam DeleteCollectionStorageVersionMigration Continue where+ applyOptionalParam req (Continue xs) =+ req `addQuery` toQuery ("continue", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam DeleteCollectionStorageVersionMigration DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.+instance HasOptionalParam DeleteCollectionStorageVersionMigration FieldSelector where+ applyOptionalParam req (FieldSelector xs) =+ req `addQuery` toQuery ("fieldSelector", Just xs)++-- | /Optional Param/ "gracePeriodSeconds" - 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.+instance HasOptionalParam DeleteCollectionStorageVersionMigration GracePeriodSeconds where+ applyOptionalParam req (GracePeriodSeconds xs) =+ req `addQuery` toQuery ("gracePeriodSeconds", Just xs)++-- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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+instance HasOptionalParam DeleteCollectionStorageVersionMigration IgnoreStoreReadErrorWithClusterBreakingPotential where+ applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =+ req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)++-- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.+instance HasOptionalParam DeleteCollectionStorageVersionMigration LabelSelector where+ applyOptionalParam req (LabelSelector xs) =+ req `addQuery` toQuery ("labelSelector", Just xs)++-- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.+instance HasOptionalParam DeleteCollectionStorageVersionMigration Limit where+ applyOptionalParam req (Limit xs) =+ req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "orphanDependents" - 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.+instance HasOptionalParam DeleteCollectionStorageVersionMigration OrphanDependents where+ applyOptionalParam req (OrphanDependents xs) =+ req `addQuery` toQuery ("orphanDependents", Just xs)++-- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.+instance HasOptionalParam DeleteCollectionStorageVersionMigration PropagationPolicy where+ applyOptionalParam req (PropagationPolicy xs) =+ req `addQuery` toQuery ("propagationPolicy", Just xs)++-- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam DeleteCollectionStorageVersionMigration ResourceVersion where+ applyOptionalParam req (ResourceVersion xs) =+ req `addQuery` toQuery ("resourceVersion", Just xs)++-- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam DeleteCollectionStorageVersionMigration ResourceVersionMatch where+ applyOptionalParam req (ResourceVersionMatch xs) =+ req `addQuery` toQuery ("resourceVersionMatch", Just xs)++-- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.+instance HasOptionalParam DeleteCollectionStorageVersionMigration SendInitialEvents where+ applyOptionalParam req (SendInitialEvents xs) =+ req `addQuery` toQuery ("sendInitialEvents", Just xs)++-- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.+instance HasOptionalParam DeleteCollectionStorageVersionMigration TimeoutSeconds where+ applyOptionalParam req (TimeoutSeconds xs) =+ req `addQuery` toQuery ("timeoutSeconds", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes DeleteCollectionStorageVersionMigration mtype++-- | @application/json@+instance Produces DeleteCollectionStorageVersionMigration MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces DeleteCollectionStorageVersionMigration MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces DeleteCollectionStorageVersionMigration MimeCbor+-- | @application/yaml@+instance Produces DeleteCollectionStorageVersionMigration MimeYaml+++-- *** deleteStorageVersionMigration++-- | @DELETE \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations\/{name}@+-- +-- delete a StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +deleteStorageVersionMigration+ :: (Consumes DeleteStorageVersionMigration contentType)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the StorageVersionMigration+ -> KubernetesRequest DeleteStorageVersionMigration contentType V1Status accept+deleteStorageVersionMigration _ _ (Name name) =+ _mkRequest "DELETE" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data DeleteStorageVersionMigration +instance HasBodyParam DeleteStorageVersionMigration V1DeleteOptions ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam DeleteStorageVersionMigration Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam DeleteStorageVersionMigration DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "gracePeriodSeconds" - 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.+instance HasOptionalParam DeleteStorageVersionMigration GracePeriodSeconds where+ applyOptionalParam req (GracePeriodSeconds xs) =+ req `addQuery` toQuery ("gracePeriodSeconds", Just xs)++-- | /Optional Param/ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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+instance HasOptionalParam DeleteStorageVersionMigration IgnoreStoreReadErrorWithClusterBreakingPotential where+ applyOptionalParam req (IgnoreStoreReadErrorWithClusterBreakingPotential xs) =+ req `addQuery` toQuery ("ignoreStoreReadErrorWithClusterBreakingPotential", Just xs)++-- | /Optional Param/ "orphanDependents" - 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.+instance HasOptionalParam DeleteStorageVersionMigration OrphanDependents where+ applyOptionalParam req (OrphanDependents xs) =+ req `addQuery` toQuery ("orphanDependents", Just xs)++-- | /Optional Param/ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.+instance HasOptionalParam DeleteStorageVersionMigration PropagationPolicy where+ applyOptionalParam req (PropagationPolicy xs) =+ req `addQuery` toQuery ("propagationPolicy", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes DeleteStorageVersionMigration mtype++-- | @application/json@+instance Produces DeleteStorageVersionMigration MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces DeleteStorageVersionMigration MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces DeleteStorageVersionMigration MimeCbor+-- | @application/yaml@+instance Produces DeleteStorageVersionMigration MimeYaml+++-- *** getAPIResources++-- | @GET \/apis\/storagemigration.k8s.io\/v1beta1\/@+-- +-- get available resources+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +getAPIResources+ :: Accept accept -- ^ request accept ('MimeType')+ -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept+getAPIResources _ =+ _mkRequest "GET" ["/apis/storagemigration.k8s.io/v1beta1/"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data GetAPIResources +-- | @application/json@+instance Produces GetAPIResources MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces GetAPIResources MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces GetAPIResources MimeCbor+-- | @application/yaml@+instance Produces GetAPIResources MimeYaml+++-- *** listStorageVersionMigration++-- | @GET \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations@+-- +-- list or watch objects of kind StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +listStorageVersionMigration+ :: Accept accept -- ^ request accept ('MimeType')+ -> KubernetesRequest ListStorageVersionMigration MimeNoContent V1beta1StorageVersionMigrationList accept+listStorageVersionMigration _ =+ _mkRequest "GET" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ListStorageVersionMigration ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ListStorageVersionMigration Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "allowWatchBookmarks" - allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.+instance HasOptionalParam ListStorageVersionMigration AllowWatchBookmarks where+ applyOptionalParam req (AllowWatchBookmarks xs) =+ req `addQuery` toQuery ("allowWatchBookmarks", Just xs)++-- | /Optional Param/ "continue" - The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.+instance HasOptionalParam ListStorageVersionMigration Continue where+ applyOptionalParam req (Continue xs) =+ req `addQuery` toQuery ("continue", Just xs)++-- | /Optional Param/ "fieldSelector" - A selector to restrict the list of returned objects by their fields. Defaults to everything.+instance HasOptionalParam ListStorageVersionMigration FieldSelector where+ applyOptionalParam req (FieldSelector xs) =+ req `addQuery` toQuery ("fieldSelector", Just xs)++-- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.+instance HasOptionalParam ListStorageVersionMigration LabelSelector where+ applyOptionalParam req (LabelSelector xs) =+ req `addQuery` toQuery ("labelSelector", Just xs)++-- | /Optional Param/ "limit" - limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.+instance HasOptionalParam ListStorageVersionMigration Limit where+ applyOptionalParam req (Limit xs) =+ req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "resourceVersion" - resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListStorageVersionMigration ResourceVersion where+ applyOptionalParam req (ResourceVersion xs) =+ req `addQuery` toQuery ("resourceVersion", Just xs)++-- | /Optional Param/ "resourceVersionMatch" - resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset+instance HasOptionalParam ListStorageVersionMigration ResourceVersionMatch where+ applyOptionalParam req (ResourceVersionMatch xs) =+ req `addQuery` toQuery ("resourceVersionMatch", Just xs)++-- | /Optional Param/ "sendInitialEvents" - `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.+instance HasOptionalParam ListStorageVersionMigration SendInitialEvents where+ applyOptionalParam req (SendInitialEvents xs) =+ req `addQuery` toQuery ("sendInitialEvents", Just xs)++-- | /Optional Param/ "timeoutSeconds" - Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.+instance HasOptionalParam ListStorageVersionMigration TimeoutSeconds where+ applyOptionalParam req (TimeoutSeconds xs) =+ req `addQuery` toQuery ("timeoutSeconds", Just xs)++-- | /Optional Param/ "watch" - Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.+instance HasOptionalParam ListStorageVersionMigration Watch where+ applyOptionalParam req (Watch xs) =+ req `addQuery` toQuery ("watch", Just xs)+-- | @application/cbor-seq@+instance Produces ListStorageVersionMigration MimeCborSeq+-- | @application/json@+instance Produces ListStorageVersionMigration MimeJSON+-- | @application/json;stream=watch@+instance Produces ListStorageVersionMigration MimeJsonstreamwatch+-- | @application/vnd.kubernetes.protobuf@+instance Produces ListStorageVersionMigration MimeVndKubernetesProtobuf+-- | @application/vnd.kubernetes.protobuf;stream=watch@+instance Produces ListStorageVersionMigration MimeVndKubernetesProtobufstreamwatch+-- | @application/cbor@+instance Produces ListStorageVersionMigration MimeCbor+-- | @application/yaml@+instance Produces ListStorageVersionMigration MimeYaml+++-- *** patchStorageVersionMigration++-- | @PATCH \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations\/{name}@+-- +-- partially update the specified StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +patchStorageVersionMigration+ :: (Consumes PatchStorageVersionMigration contentType, MimeRender contentType Body)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Body -- ^ "body"+ -> Name -- ^ "name" - name of the StorageVersionMigration+ -> KubernetesRequest PatchStorageVersionMigration contentType V1beta1StorageVersionMigration accept+patchStorageVersionMigration _ _ body (Name name) =+ _mkRequest "PATCH" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data PatchStorageVersionMigration +instance HasBodyParam PatchStorageVersionMigration Body ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam PatchStorageVersionMigration Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam PatchStorageVersionMigration DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).+instance HasOptionalParam PatchStorageVersionMigration FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam PatchStorageVersionMigration FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.+instance HasOptionalParam PatchStorageVersionMigration Force where+ applyOptionalParam req (Force xs) =+ req `addQuery` toQuery ("force", Just xs)++-- | @application/apply-patch+yaml@+instance Consumes PatchStorageVersionMigration MimeApplyPatchyaml+-- | @application/json-patch+json@+instance Consumes PatchStorageVersionMigration MimeJsonPatchjson+-- | @application/merge-patch+json@+instance Consumes PatchStorageVersionMigration MimeMergePatchjson+-- | @application/strategic-merge-patch+json@+instance Consumes PatchStorageVersionMigration MimeStrategicMergePatchjson+-- | @application/apply-patch+cbor@+instance Consumes PatchStorageVersionMigration MimeApplyPatchcbor++-- | @application/json@+instance Produces PatchStorageVersionMigration MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces PatchStorageVersionMigration MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces PatchStorageVersionMigration MimeCbor+-- | @application/yaml@+instance Produces PatchStorageVersionMigration MimeYaml+++-- *** patchStorageVersionMigrationStatus++-- | @PATCH \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations\/{name}\/status@+-- +-- partially update status of the specified StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +patchStorageVersionMigrationStatus+ :: (Consumes PatchStorageVersionMigrationStatus contentType, MimeRender contentType Body)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> Body -- ^ "body"+ -> Name -- ^ "name" - name of the StorageVersionMigration+ -> KubernetesRequest PatchStorageVersionMigrationStatus contentType V1beta1StorageVersionMigration accept+patchStorageVersionMigrationStatus _ _ body (Name name) =+ _mkRequest "PATCH" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data PatchStorageVersionMigrationStatus +instance HasBodyParam PatchStorageVersionMigrationStatus Body ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam PatchStorageVersionMigrationStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam PatchStorageVersionMigrationStatus DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).+instance HasOptionalParam PatchStorageVersionMigrationStatus FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam PatchStorageVersionMigrationStatus FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | /Optional Param/ "force" - Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.+instance HasOptionalParam PatchStorageVersionMigrationStatus Force where+ applyOptionalParam req (Force xs) =+ req `addQuery` toQuery ("force", Just xs)++-- | @application/apply-patch+yaml@+instance Consumes PatchStorageVersionMigrationStatus MimeApplyPatchyaml+-- | @application/json-patch+json@+instance Consumes PatchStorageVersionMigrationStatus MimeJsonPatchjson+-- | @application/merge-patch+json@+instance Consumes PatchStorageVersionMigrationStatus MimeMergePatchjson+-- | @application/strategic-merge-patch+json@+instance Consumes PatchStorageVersionMigrationStatus MimeStrategicMergePatchjson+-- | @application/apply-patch+cbor@+instance Consumes PatchStorageVersionMigrationStatus MimeApplyPatchcbor++-- | @application/json@+instance Produces PatchStorageVersionMigrationStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces PatchStorageVersionMigrationStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces PatchStorageVersionMigrationStatus MimeCbor+-- | @application/yaml@+instance Produces PatchStorageVersionMigrationStatus MimeYaml+++-- *** readStorageVersionMigration++-- | @GET \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations\/{name}@+-- +-- read the specified StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +readStorageVersionMigration+ :: Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the StorageVersionMigration+ -> KubernetesRequest ReadStorageVersionMigration MimeNoContent V1beta1StorageVersionMigration accept+readStorageVersionMigration _ (Name name) =+ _mkRequest "GET" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ReadStorageVersionMigration ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReadStorageVersionMigration Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)+-- | @application/json@+instance Produces ReadStorageVersionMigration MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReadStorageVersionMigration MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReadStorageVersionMigration MimeCbor+-- | @application/yaml@+instance Produces ReadStorageVersionMigration MimeYaml+++-- *** readStorageVersionMigrationStatus++-- | @GET \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations\/{name}\/status@+-- +-- read status of the specified StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +readStorageVersionMigrationStatus+ :: Accept accept -- ^ request accept ('MimeType')+ -> Name -- ^ "name" - name of the StorageVersionMigration+ -> KubernetesRequest ReadStorageVersionMigrationStatus MimeNoContent V1beta1StorageVersionMigration accept+readStorageVersionMigrationStatus _ (Name name) =+ _mkRequest "GET" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)++data ReadStorageVersionMigrationStatus ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReadStorageVersionMigrationStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)+-- | @application/json@+instance Produces ReadStorageVersionMigrationStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReadStorageVersionMigrationStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReadStorageVersionMigrationStatus MimeCbor+-- | @application/yaml@+instance Produces ReadStorageVersionMigrationStatus MimeYaml+++-- *** replaceStorageVersionMigration++-- | @PUT \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations\/{name}@+-- +-- replace the specified StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +replaceStorageVersionMigration+ :: (Consumes ReplaceStorageVersionMigration contentType, MimeRender contentType V1beta1StorageVersionMigration)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1beta1StorageVersionMigration -- ^ "body"+ -> Name -- ^ "name" - name of the StorageVersionMigration+ -> KubernetesRequest ReplaceStorageVersionMigration contentType V1beta1StorageVersionMigration accept+replaceStorageVersionMigration _ _ body (Name name) =+ _mkRequest "PUT" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/",toPath name]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data ReplaceStorageVersionMigration +instance HasBodyParam ReplaceStorageVersionMigration V1beta1StorageVersionMigration ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReplaceStorageVersionMigration Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam ReplaceStorageVersionMigration DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam ReplaceStorageVersionMigration FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam ReplaceStorageVersionMigration FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes ReplaceStorageVersionMigration mtype++-- | @application/json@+instance Produces ReplaceStorageVersionMigration MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReplaceStorageVersionMigration MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReplaceStorageVersionMigration MimeCbor+-- | @application/yaml@+instance Produces ReplaceStorageVersionMigration MimeYaml+++-- *** replaceStorageVersionMigrationStatus++-- | @PUT \/apis\/storagemigration.k8s.io\/v1beta1\/storageversionmigrations\/{name}\/status@+-- +-- replace status of the specified StorageVersionMigration+-- +-- AuthMethod: 'AuthApiKeyBearerToken'+-- +replaceStorageVersionMigrationStatus+ :: (Consumes ReplaceStorageVersionMigrationStatus contentType, MimeRender contentType V1beta1StorageVersionMigration)+ => ContentType contentType -- ^ request content-type ('MimeType')+ -> Accept accept -- ^ request accept ('MimeType')+ -> V1beta1StorageVersionMigration -- ^ "body"+ -> Name -- ^ "name" - name of the StorageVersionMigration+ -> KubernetesRequest ReplaceStorageVersionMigrationStatus contentType V1beta1StorageVersionMigration accept+replaceStorageVersionMigrationStatus _ _ body (Name name) =+ _mkRequest "PUT" ["/apis/storagemigration.k8s.io/v1beta1/storageversionmigrations/",toPath name,"/status"]+ `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)+ `setBodyParam` body++data ReplaceStorageVersionMigrationStatus +instance HasBodyParam ReplaceStorageVersionMigrationStatus V1beta1StorageVersionMigration ++-- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).+instance HasOptionalParam ReplaceStorageVersionMigrationStatus Pretty where+ applyOptionalParam req (Pretty xs) =+ req `addQuery` toQuery ("pretty", Just xs)++-- | /Optional Param/ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+instance HasOptionalParam ReplaceStorageVersionMigrationStatus DryRun where+ applyOptionalParam req (DryRun xs) =+ req `addQuery` toQuery ("dryRun", Just xs)++-- | /Optional Param/ "fieldManager" - fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.+instance HasOptionalParam ReplaceStorageVersionMigrationStatus FieldManager where+ applyOptionalParam req (FieldManager xs) =+ req `addQuery` toQuery ("fieldManager", Just xs)++-- | /Optional Param/ "fieldValidation" - fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.+instance HasOptionalParam ReplaceStorageVersionMigrationStatus FieldValidation where+ applyOptionalParam req (FieldValidation xs) =+ req `addQuery` toQuery ("fieldValidation", Just xs)++-- | @*/*@+instance MimeType mtype => Consumes ReplaceStorageVersionMigrationStatus mtype++-- | @application/json@+instance Produces ReplaceStorageVersionMigrationStatus MimeJSON+-- | @application/vnd.kubernetes.protobuf@+instance Produces ReplaceStorageVersionMigrationStatus MimeVndKubernetesProtobuf+-- | @application/cbor@+instance Produces ReplaceStorageVersionMigrationStatus MimeCbor+-- | @application/yaml@+instance Produces ReplaceStorageVersionMigrationStatus MimeYaml+
lib/Kubernetes/OpenAPI/API/Version.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/API/WellKnown.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/Client.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/Core.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/Logging.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/LoggingKatip.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/LoggingMonadLogger.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/MimeTypes.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -}
lib/Kubernetes/OpenAPI/Model.hs view
@@ -4,29938 +4,30092 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34- Generated by OpenAPI Generator (https://openapi-generator.tech)--}--{-|-Module : Kubernetes.OpenAPI.Model--}--{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveFoldable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE DeriveTraversable #-}-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TupleSections #-}-{-# LANGUAGE TypeFamilies #-}-{-# OPTIONS_GHC -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-}--module Kubernetes.OpenAPI.Model (module Kubernetes.OpenAPI.Model, module Kubernetes.OpenAPI.ImportMappings) where--import Kubernetes.OpenAPI.Core-import Kubernetes.OpenAPI.MimeTypes-import Kubernetes.OpenAPI.ImportMappings--import Data.Aeson ((.:),(.:!),(.:?),(.=))--import qualified Control.Arrow as P (left)-import qualified Data.Aeson as A-import qualified Data.ByteString as B-import qualified Data.ByteString.Base64 as B64-import qualified Data.ByteString.Char8 as BC-import qualified Data.ByteString.Lazy as BL-import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)-import qualified Data.Foldable as P-import qualified Data.HashMap.Lazy as HM-import qualified Data.Map as Map-import qualified Data.Maybe as P-import qualified Data.Set as Set-import qualified Data.Text as T-import qualified Data.Text.Encoding as T-import qualified Data.Time as TI-import qualified Lens.Micro as L-import qualified Web.FormUrlEncoded as WH-import qualified Web.HttpApiData as WH--import Control.Applicative ((<|>))-import Control.Applicative (Alternative)-import Data.Function ((&))-import Data.Monoid ((<>))-import Data.Text (Text)-import Prelude (($),(/=),(.),(<$>),(<*>),(>>=),(=<<),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)--import qualified Prelude as P------ * Parameter newtypes----- ** AllowWatchBookmarks-newtype AllowWatchBookmarks = AllowWatchBookmarks { unAllowWatchBookmarks :: Bool } deriving (P.Eq, P.Show)---- ** Body-newtype Body = Body { unBody :: A.Value } deriving (P.Eq, P.Show, A.ToJSON)---- ** Command-newtype Command = Command { unCommand :: Text } deriving (P.Eq, P.Show)---- ** Container-newtype Container = Container { unContainer :: Text } deriving (P.Eq, P.Show)---- ** Continue-newtype Continue = Continue { unContinue :: Text } deriving (P.Eq, P.Show)---- ** DryRun-newtype DryRun = DryRun { unDryRun :: Text } deriving (P.Eq, P.Show)---- ** FieldManager-newtype FieldManager = FieldManager { unFieldManager :: Text } deriving (P.Eq, P.Show)---- ** FieldSelector-newtype FieldSelector = FieldSelector { unFieldSelector :: Text } deriving (P.Eq, P.Show)---- ** FieldValidation-newtype FieldValidation = FieldValidation { unFieldValidation :: Text } deriving (P.Eq, P.Show)---- ** Follow-newtype Follow = Follow { unFollow :: Bool } deriving (P.Eq, P.Show)---- ** Force-newtype Force = Force { unForce :: Bool } deriving (P.Eq, P.Show)---- ** GracePeriodSeconds-newtype GracePeriodSeconds = GracePeriodSeconds { unGracePeriodSeconds :: Int } deriving (P.Eq, P.Show)---- ** Group-newtype Group = Group { unGroup :: Text } deriving (P.Eq, P.Show)---- ** IgnoreStoreReadErrorWithClusterBreakingPotential-newtype IgnoreStoreReadErrorWithClusterBreakingPotential = IgnoreStoreReadErrorWithClusterBreakingPotential { unIgnoreStoreReadErrorWithClusterBreakingPotential :: Bool } deriving (P.Eq, P.Show)---- ** InsecureSkipTlsVerifyBackend-newtype InsecureSkipTlsVerifyBackend = InsecureSkipTlsVerifyBackend { unInsecureSkipTlsVerifyBackend :: Bool } deriving (P.Eq, P.Show)---- ** LabelSelector-newtype LabelSelector = LabelSelector { unLabelSelector :: Text } deriving (P.Eq, P.Show)---- ** Limit-newtype Limit = Limit { unLimit :: Int } deriving (P.Eq, P.Show)---- ** LimitBytes-newtype LimitBytes = LimitBytes { unLimitBytes :: Int } deriving (P.Eq, P.Show)---- ** Logpath-newtype Logpath = Logpath { unLogpath :: Text } deriving (P.Eq, P.Show)---- ** Name-newtype Name = Name { unName :: Text } deriving (P.Eq, P.Show)---- ** Namespace-newtype Namespace = Namespace { unNamespace :: Text } deriving (P.Eq, P.Show)---- ** OrphanDependents-newtype OrphanDependents = OrphanDependents { unOrphanDependents :: Bool } deriving (P.Eq, P.Show)---- ** Path-newtype Path = Path { unPath :: Text } deriving (P.Eq, P.Show)---- ** Path2-newtype Path2 = Path2 { unPath2 :: Text } deriving (P.Eq, P.Show)---- ** Plural-newtype Plural = Plural { unPlural :: Text } deriving (P.Eq, P.Show)---- ** Ports-newtype Ports = Ports { unPorts :: Int } deriving (P.Eq, P.Show)---- ** Pretty-newtype Pretty = Pretty { unPretty :: Text } deriving (P.Eq, P.Show)---- ** Previous-newtype Previous = Previous { unPrevious :: Bool } deriving (P.Eq, P.Show)---- ** PropagationPolicy-newtype PropagationPolicy = PropagationPolicy { unPropagationPolicy :: Text } deriving (P.Eq, P.Show)---- ** ResourcePlural-newtype ResourcePlural = ResourcePlural { unResourcePlural :: Text } deriving (P.Eq, P.Show)---- ** ResourceVersion-newtype ResourceVersion = ResourceVersion { unResourceVersion :: Text } deriving (P.Eq, P.Show)---- ** ResourceVersionMatch-newtype ResourceVersionMatch = ResourceVersionMatch { unResourceVersionMatch :: Text } deriving (P.Eq, P.Show)---- ** SendInitialEvents-newtype SendInitialEvents = SendInitialEvents { unSendInitialEvents :: Bool } deriving (P.Eq, P.Show)---- ** SinceSeconds-newtype SinceSeconds = SinceSeconds { unSinceSeconds :: Int } deriving (P.Eq, P.Show)---- ** Stderr-newtype Stderr = Stderr { unStderr :: Bool } deriving (P.Eq, P.Show)---- ** Stdin-newtype Stdin = Stdin { unStdin :: Bool } deriving (P.Eq, P.Show)---- ** Stdout-newtype Stdout = Stdout { unStdout :: Bool } deriving (P.Eq, P.Show)---- ** Stream-newtype Stream = Stream { unStream :: Text } deriving (P.Eq, P.Show)---- ** TailLines-newtype TailLines = TailLines { unTailLines :: Int } deriving (P.Eq, P.Show)---- ** TimeoutSeconds-newtype TimeoutSeconds = TimeoutSeconds { unTimeoutSeconds :: Int } deriving (P.Eq, P.Show)---- ** Timestamps-newtype Timestamps = Timestamps { unTimestamps :: Bool } deriving (P.Eq, P.Show)---- ** Tty-newtype Tty = Tty { unTty :: Bool } deriving (P.Eq, P.Show)---- ** Version-newtype Version = Version { unVersion :: Text } deriving (P.Eq, P.Show)---- ** Watch-newtype Watch = Watch { unWatch :: Bool } deriving (P.Eq, P.Show)---- * Models----- ** AdmissionregistrationV1ServiceReference--- | AdmissionregistrationV1ServiceReference--- ServiceReference holds a reference to Service.legacy.k8s.io-data AdmissionregistrationV1ServiceReference = AdmissionregistrationV1ServiceReference- { admissionregistrationV1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - `name` is the name of the service. Required- , admissionregistrationV1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - `namespace` is the namespace of the service. Required- , admissionregistrationV1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - `path` is an optional URL path which will be sent in any request to this service.- , admissionregistrationV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON AdmissionregistrationV1ServiceReference-instance A.FromJSON AdmissionregistrationV1ServiceReference where- parseJSON = A.withObject "AdmissionregistrationV1ServiceReference" $ \o ->- AdmissionregistrationV1ServiceReference- <$> (o .: "name")- <*> (o .: "namespace")- <*> (o .:? "path")- <*> (o .:? "port")---- | ToJSON AdmissionregistrationV1ServiceReference-instance A.ToJSON AdmissionregistrationV1ServiceReference where- toJSON AdmissionregistrationV1ServiceReference {..} =- _omitNulls- [ "name" .= admissionregistrationV1ServiceReferenceName- , "namespace" .= admissionregistrationV1ServiceReferenceNamespace- , "path" .= admissionregistrationV1ServiceReferencePath- , "port" .= admissionregistrationV1ServiceReferencePort- ]----- | Construct a value of type 'AdmissionregistrationV1ServiceReference' (by applying it's required fields, if any)-mkAdmissionregistrationV1ServiceReference- :: Text -- ^ 'admissionregistrationV1ServiceReferenceName': `name` is the name of the service. Required- -> Text -- ^ 'admissionregistrationV1ServiceReferenceNamespace': `namespace` is the namespace of the service. Required- -> AdmissionregistrationV1ServiceReference-mkAdmissionregistrationV1ServiceReference admissionregistrationV1ServiceReferenceName admissionregistrationV1ServiceReferenceNamespace =- AdmissionregistrationV1ServiceReference- { admissionregistrationV1ServiceReferenceName- , admissionregistrationV1ServiceReferenceNamespace- , admissionregistrationV1ServiceReferencePath = Nothing- , admissionregistrationV1ServiceReferencePort = Nothing- }---- ** AdmissionregistrationV1WebhookClientConfig--- | AdmissionregistrationV1WebhookClientConfig--- WebhookClientConfig contains the information to make a TLS connection with the webhook-data AdmissionregistrationV1WebhookClientConfig = AdmissionregistrationV1WebhookClientConfig- { admissionregistrationV1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.- , admissionregistrationV1WebhookClientConfigService :: !(Maybe AdmissionregistrationV1ServiceReference) -- ^ "service"- , admissionregistrationV1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - `url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified. The `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address. Please note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster. The scheme must be \"https\"; the URL must begin with \"https://\". A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier. Attempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON AdmissionregistrationV1WebhookClientConfig-instance A.FromJSON AdmissionregistrationV1WebhookClientConfig where- parseJSON = A.withObject "AdmissionregistrationV1WebhookClientConfig" $ \o ->- AdmissionregistrationV1WebhookClientConfig- <$> (o .:? "caBundle")- <*> (o .:? "service")- <*> (o .:? "url")---- | ToJSON AdmissionregistrationV1WebhookClientConfig-instance A.ToJSON AdmissionregistrationV1WebhookClientConfig where- toJSON AdmissionregistrationV1WebhookClientConfig {..} =- _omitNulls- [ "caBundle" .= admissionregistrationV1WebhookClientConfigCaBundle- , "service" .= admissionregistrationV1WebhookClientConfigService- , "url" .= admissionregistrationV1WebhookClientConfigUrl- ]----- | Construct a value of type 'AdmissionregistrationV1WebhookClientConfig' (by applying it's required fields, if any)-mkAdmissionregistrationV1WebhookClientConfig- :: AdmissionregistrationV1WebhookClientConfig-mkAdmissionregistrationV1WebhookClientConfig =- AdmissionregistrationV1WebhookClientConfig- { admissionregistrationV1WebhookClientConfigCaBundle = Nothing- , admissionregistrationV1WebhookClientConfigService = Nothing- , admissionregistrationV1WebhookClientConfigUrl = Nothing- }---- ** ApiextensionsV1ServiceReference--- | ApiextensionsV1ServiceReference--- ServiceReference holds a reference to Service.legacy.k8s.io-data ApiextensionsV1ServiceReference = ApiextensionsV1ServiceReference- { apiextensionsV1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of the service. Required- , apiextensionsV1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - namespace is the namespace of the service. Required- , apiextensionsV1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - path is an optional URL path at which the webhook will be contacted.- , apiextensionsV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON ApiextensionsV1ServiceReference-instance A.FromJSON ApiextensionsV1ServiceReference where- parseJSON = A.withObject "ApiextensionsV1ServiceReference" $ \o ->- ApiextensionsV1ServiceReference- <$> (o .: "name")- <*> (o .: "namespace")- <*> (o .:? "path")- <*> (o .:? "port")---- | ToJSON ApiextensionsV1ServiceReference-instance A.ToJSON ApiextensionsV1ServiceReference where- toJSON ApiextensionsV1ServiceReference {..} =- _omitNulls- [ "name" .= apiextensionsV1ServiceReferenceName- , "namespace" .= apiextensionsV1ServiceReferenceNamespace- , "path" .= apiextensionsV1ServiceReferencePath- , "port" .= apiextensionsV1ServiceReferencePort- ]----- | Construct a value of type 'ApiextensionsV1ServiceReference' (by applying it's required fields, if any)-mkApiextensionsV1ServiceReference- :: Text -- ^ 'apiextensionsV1ServiceReferenceName': name is the name of the service. Required- -> Text -- ^ 'apiextensionsV1ServiceReferenceNamespace': namespace is the namespace of the service. Required- -> ApiextensionsV1ServiceReference-mkApiextensionsV1ServiceReference apiextensionsV1ServiceReferenceName apiextensionsV1ServiceReferenceNamespace =- ApiextensionsV1ServiceReference- { apiextensionsV1ServiceReferenceName- , apiextensionsV1ServiceReferenceNamespace- , apiextensionsV1ServiceReferencePath = Nothing- , apiextensionsV1ServiceReferencePort = Nothing- }---- ** ApiextensionsV1WebhookClientConfig--- | ApiextensionsV1WebhookClientConfig--- WebhookClientConfig contains the information to make a TLS connection with the webhook.-data ApiextensionsV1WebhookClientConfig = ApiextensionsV1WebhookClientConfig- { apiextensionsV1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.- , apiextensionsV1WebhookClientConfigService :: !(Maybe ApiextensionsV1ServiceReference) -- ^ "service"- , apiextensionsV1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified. The `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address. Please note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster. The scheme must be \"https\"; the URL must begin with \"https://\". A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier. Attempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON ApiextensionsV1WebhookClientConfig-instance A.FromJSON ApiextensionsV1WebhookClientConfig where- parseJSON = A.withObject "ApiextensionsV1WebhookClientConfig" $ \o ->- ApiextensionsV1WebhookClientConfig- <$> (o .:? "caBundle")- <*> (o .:? "service")- <*> (o .:? "url")---- | ToJSON ApiextensionsV1WebhookClientConfig-instance A.ToJSON ApiextensionsV1WebhookClientConfig where- toJSON ApiextensionsV1WebhookClientConfig {..} =- _omitNulls- [ "caBundle" .= apiextensionsV1WebhookClientConfigCaBundle- , "service" .= apiextensionsV1WebhookClientConfigService- , "url" .= apiextensionsV1WebhookClientConfigUrl- ]----- | Construct a value of type 'ApiextensionsV1WebhookClientConfig' (by applying it's required fields, if any)-mkApiextensionsV1WebhookClientConfig- :: ApiextensionsV1WebhookClientConfig-mkApiextensionsV1WebhookClientConfig =- ApiextensionsV1WebhookClientConfig- { apiextensionsV1WebhookClientConfigCaBundle = Nothing- , apiextensionsV1WebhookClientConfigService = Nothing- , apiextensionsV1WebhookClientConfigUrl = Nothing- }---- ** ApiregistrationV1ServiceReference--- | ApiregistrationV1ServiceReference--- ServiceReference holds a reference to Service.legacy.k8s.io-data ApiregistrationV1ServiceReference = ApiregistrationV1ServiceReference- { apiregistrationV1ServiceReferenceName :: !(Maybe Text) -- ^ "name" - Name is the name of the service- , apiregistrationV1ServiceReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the service- , apiregistrationV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON ApiregistrationV1ServiceReference-instance A.FromJSON ApiregistrationV1ServiceReference where- parseJSON = A.withObject "ApiregistrationV1ServiceReference" $ \o ->- ApiregistrationV1ServiceReference- <$> (o .:? "name")- <*> (o .:? "namespace")- <*> (o .:? "port")---- | ToJSON ApiregistrationV1ServiceReference-instance A.ToJSON ApiregistrationV1ServiceReference where- toJSON ApiregistrationV1ServiceReference {..} =- _omitNulls- [ "name" .= apiregistrationV1ServiceReferenceName- , "namespace" .= apiregistrationV1ServiceReferenceNamespace- , "port" .= apiregistrationV1ServiceReferencePort- ]----- | Construct a value of type 'ApiregistrationV1ServiceReference' (by applying it's required fields, if any)-mkApiregistrationV1ServiceReference- :: ApiregistrationV1ServiceReference-mkApiregistrationV1ServiceReference =- ApiregistrationV1ServiceReference- { apiregistrationV1ServiceReferenceName = Nothing- , apiregistrationV1ServiceReferenceNamespace = Nothing- , apiregistrationV1ServiceReferencePort = Nothing- }---- ** AuthenticationV1TokenRequest--- | AuthenticationV1TokenRequest--- TokenRequest requests a token for a given service account.-data AuthenticationV1TokenRequest = AuthenticationV1TokenRequest- { authenticationV1TokenRequestApiVersion :: !(Maybe Text) -- ^ "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- , authenticationV1TokenRequestKind :: !(Maybe Text) -- ^ "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- , authenticationV1TokenRequestMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , authenticationV1TokenRequestSpec :: !(V1TokenRequestSpec) -- ^ /Required/ "spec"- , authenticationV1TokenRequestStatus :: !(Maybe V1TokenRequestStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON AuthenticationV1TokenRequest-instance A.FromJSON AuthenticationV1TokenRequest where- parseJSON = A.withObject "AuthenticationV1TokenRequest" $ \o ->- AuthenticationV1TokenRequest- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON AuthenticationV1TokenRequest-instance A.ToJSON AuthenticationV1TokenRequest where- toJSON AuthenticationV1TokenRequest {..} =- _omitNulls- [ "apiVersion" .= authenticationV1TokenRequestApiVersion- , "kind" .= authenticationV1TokenRequestKind- , "metadata" .= authenticationV1TokenRequestMetadata- , "spec" .= authenticationV1TokenRequestSpec- , "status" .= authenticationV1TokenRequestStatus- ]----- | Construct a value of type 'AuthenticationV1TokenRequest' (by applying it's required fields, if any)-mkAuthenticationV1TokenRequest- :: V1TokenRequestSpec -- ^ 'authenticationV1TokenRequestSpec' - -> AuthenticationV1TokenRequest-mkAuthenticationV1TokenRequest authenticationV1TokenRequestSpec =- AuthenticationV1TokenRequest- { authenticationV1TokenRequestApiVersion = Nothing- , authenticationV1TokenRequestKind = Nothing- , authenticationV1TokenRequestMetadata = Nothing- , authenticationV1TokenRequestSpec- , authenticationV1TokenRequestStatus = Nothing- }---- ** CoreV1EndpointPort--- | CoreV1EndpointPort--- EndpointPort is a tuple that describes a single port. Deprecated: This API is deprecated in v1.33+.-data CoreV1EndpointPort = CoreV1EndpointPort- { coreV1EndpointPortAppProtocol :: !(Maybe Text) -- ^ "appProtocol" - The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.- , coreV1EndpointPortName :: !(Maybe Text) -- ^ "name" - The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.- , coreV1EndpointPortPort :: !(Int) -- ^ /Required/ "port" - The port number of the endpoint.- , coreV1EndpointPortProtocol :: !(Maybe Text) -- ^ "protocol" - The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON CoreV1EndpointPort-instance A.FromJSON CoreV1EndpointPort where- parseJSON = A.withObject "CoreV1EndpointPort" $ \o ->- CoreV1EndpointPort- <$> (o .:? "appProtocol")- <*> (o .:? "name")- <*> (o .: "port")- <*> (o .:? "protocol")---- | ToJSON CoreV1EndpointPort-instance A.ToJSON CoreV1EndpointPort where- toJSON CoreV1EndpointPort {..} =- _omitNulls- [ "appProtocol" .= coreV1EndpointPortAppProtocol- , "name" .= coreV1EndpointPortName- , "port" .= coreV1EndpointPortPort- , "protocol" .= coreV1EndpointPortProtocol- ]----- | Construct a value of type 'CoreV1EndpointPort' (by applying it's required fields, if any)-mkCoreV1EndpointPort- :: Int -- ^ 'coreV1EndpointPortPort': The port number of the endpoint.- -> CoreV1EndpointPort-mkCoreV1EndpointPort coreV1EndpointPortPort =- CoreV1EndpointPort- { coreV1EndpointPortAppProtocol = Nothing- , coreV1EndpointPortName = Nothing- , coreV1EndpointPortPort- , coreV1EndpointPortProtocol = Nothing- }---- ** CoreV1Event--- | CoreV1Event--- Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.-data CoreV1Event = CoreV1Event- { coreV1EventAction :: !(Maybe Text) -- ^ "action" - What action was taken/failed regarding to the Regarding object.- , coreV1EventApiVersion :: !(Maybe Text) -- ^ "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- , coreV1EventCount :: !(Maybe Int) -- ^ "count" - The number of times this event has occurred.- , coreV1EventEventTime :: !(Maybe DateTime) -- ^ "eventTime" - Time when this Event was first observed.- , coreV1EventFirstTimestamp :: !(Maybe DateTime) -- ^ "firstTimestamp" - The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)- , coreV1EventInvolvedObject :: !(V1ObjectReference) -- ^ /Required/ "involvedObject"- , coreV1EventKind :: !(Maybe Text) -- ^ "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- , coreV1EventLastTimestamp :: !(Maybe DateTime) -- ^ "lastTimestamp" - The time at which the most recent occurrence of this event was recorded.- , coreV1EventMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the status of this operation.- , coreV1EventMetadata :: !(V1ObjectMeta) -- ^ /Required/ "metadata"- , coreV1EventReason :: !(Maybe Text) -- ^ "reason" - This should be a short, machine understandable string that gives the reason for the transition into the object's current status.- , coreV1EventRelated :: !(Maybe V1ObjectReference) -- ^ "related"- , coreV1EventReportingComponent :: !(Maybe Text) -- ^ "reportingComponent" - Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.- , coreV1EventReportingInstance :: !(Maybe Text) -- ^ "reportingInstance" - ID of the controller instance, e.g. `kubelet-xyzf`.- , coreV1EventSeries :: !(Maybe CoreV1EventSeries) -- ^ "series"- , coreV1EventSource :: !(Maybe V1EventSource) -- ^ "source"- , coreV1EventType :: !(Maybe Text) -- ^ "type" - Type of this event (Normal, Warning), new types could be added in the future- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON CoreV1Event-instance A.FromJSON CoreV1Event where- parseJSON = A.withObject "CoreV1Event" $ \o ->- CoreV1Event- <$> (o .:? "action")- <*> (o .:? "apiVersion")- <*> (o .:? "count")- <*> (o .:? "eventTime")- <*> (o .:? "firstTimestamp")- <*> (o .: "involvedObject")- <*> (o .:? "kind")- <*> (o .:? "lastTimestamp")- <*> (o .:? "message")- <*> (o .: "metadata")- <*> (o .:? "reason")- <*> (o .:? "related")- <*> (o .:? "reportingComponent")- <*> (o .:? "reportingInstance")- <*> (o .:? "series")- <*> (o .:? "source")- <*> (o .:? "type")---- | ToJSON CoreV1Event-instance A.ToJSON CoreV1Event where- toJSON CoreV1Event {..} =- _omitNulls- [ "action" .= coreV1EventAction- , "apiVersion" .= coreV1EventApiVersion- , "count" .= coreV1EventCount- , "eventTime" .= coreV1EventEventTime- , "firstTimestamp" .= coreV1EventFirstTimestamp- , "involvedObject" .= coreV1EventInvolvedObject- , "kind" .= coreV1EventKind- , "lastTimestamp" .= coreV1EventLastTimestamp- , "message" .= coreV1EventMessage- , "metadata" .= coreV1EventMetadata- , "reason" .= coreV1EventReason- , "related" .= coreV1EventRelated- , "reportingComponent" .= coreV1EventReportingComponent- , "reportingInstance" .= coreV1EventReportingInstance- , "series" .= coreV1EventSeries- , "source" .= coreV1EventSource- , "type" .= coreV1EventType- ]----- | Construct a value of type 'CoreV1Event' (by applying it's required fields, if any)-mkCoreV1Event- :: V1ObjectReference -- ^ 'coreV1EventInvolvedObject' - -> V1ObjectMeta -- ^ 'coreV1EventMetadata' - -> CoreV1Event-mkCoreV1Event coreV1EventInvolvedObject coreV1EventMetadata =- CoreV1Event- { coreV1EventAction = Nothing- , coreV1EventApiVersion = Nothing- , coreV1EventCount = Nothing- , coreV1EventEventTime = Nothing- , coreV1EventFirstTimestamp = Nothing- , coreV1EventInvolvedObject- , coreV1EventKind = Nothing- , coreV1EventLastTimestamp = Nothing- , coreV1EventMessage = Nothing- , coreV1EventMetadata- , coreV1EventReason = Nothing- , coreV1EventRelated = Nothing- , coreV1EventReportingComponent = Nothing- , coreV1EventReportingInstance = Nothing- , coreV1EventSeries = Nothing- , coreV1EventSource = Nothing- , coreV1EventType = Nothing- }---- ** CoreV1EventList--- | CoreV1EventList--- EventList is a list of events.-data CoreV1EventList = CoreV1EventList- { coreV1EventListApiVersion :: !(Maybe Text) -- ^ "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- , coreV1EventListItems :: !([CoreV1Event]) -- ^ /Required/ "items" - List of events- , coreV1EventListKind :: !(Maybe Text) -- ^ "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- , coreV1EventListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON CoreV1EventList-instance A.FromJSON CoreV1EventList where- parseJSON = A.withObject "CoreV1EventList" $ \o ->- CoreV1EventList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON CoreV1EventList-instance A.ToJSON CoreV1EventList where- toJSON CoreV1EventList {..} =- _omitNulls- [ "apiVersion" .= coreV1EventListApiVersion- , "items" .= coreV1EventListItems- , "kind" .= coreV1EventListKind- , "metadata" .= coreV1EventListMetadata- ]----- | Construct a value of type 'CoreV1EventList' (by applying it's required fields, if any)-mkCoreV1EventList- :: [CoreV1Event] -- ^ 'coreV1EventListItems': List of events- -> CoreV1EventList-mkCoreV1EventList coreV1EventListItems =- CoreV1EventList- { coreV1EventListApiVersion = Nothing- , coreV1EventListItems- , coreV1EventListKind = Nothing- , coreV1EventListMetadata = Nothing- }---- ** CoreV1EventSeries--- | CoreV1EventSeries--- EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.-data CoreV1EventSeries = CoreV1EventSeries- { coreV1EventSeriesCount :: !(Maybe Int) -- ^ "count" - Number of occurrences in this series up to the last heartbeat time- , coreV1EventSeriesLastObservedTime :: !(Maybe DateTime) -- ^ "lastObservedTime" - Time of the last occurrence observed- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON CoreV1EventSeries-instance A.FromJSON CoreV1EventSeries where- parseJSON = A.withObject "CoreV1EventSeries" $ \o ->- CoreV1EventSeries- <$> (o .:? "count")- <*> (o .:? "lastObservedTime")---- | ToJSON CoreV1EventSeries-instance A.ToJSON CoreV1EventSeries where- toJSON CoreV1EventSeries {..} =- _omitNulls- [ "count" .= coreV1EventSeriesCount- , "lastObservedTime" .= coreV1EventSeriesLastObservedTime- ]----- | Construct a value of type 'CoreV1EventSeries' (by applying it's required fields, if any)-mkCoreV1EventSeries- :: CoreV1EventSeries-mkCoreV1EventSeries =- CoreV1EventSeries- { coreV1EventSeriesCount = Nothing- , coreV1EventSeriesLastObservedTime = Nothing- }---- ** CoreV1ResourceClaim--- | CoreV1ResourceClaim--- ResourceClaim references one entry in PodSpec.ResourceClaims.-data CoreV1ResourceClaim = CoreV1ResourceClaim- { coreV1ResourceClaimName :: !(Text) -- ^ /Required/ "name" - Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.- , coreV1ResourceClaimRequest :: !(Maybe Text) -- ^ "request" - Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON CoreV1ResourceClaim-instance A.FromJSON CoreV1ResourceClaim where- parseJSON = A.withObject "CoreV1ResourceClaim" $ \o ->- CoreV1ResourceClaim- <$> (o .: "name")- <*> (o .:? "request")---- | ToJSON CoreV1ResourceClaim-instance A.ToJSON CoreV1ResourceClaim where- toJSON CoreV1ResourceClaim {..} =- _omitNulls- [ "name" .= coreV1ResourceClaimName- , "request" .= coreV1ResourceClaimRequest- ]----- | Construct a value of type 'CoreV1ResourceClaim' (by applying it's required fields, if any)-mkCoreV1ResourceClaim- :: Text -- ^ 'coreV1ResourceClaimName': Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.- -> CoreV1ResourceClaim-mkCoreV1ResourceClaim coreV1ResourceClaimName =- CoreV1ResourceClaim- { coreV1ResourceClaimName- , coreV1ResourceClaimRequest = Nothing- }---- ** DiscoveryV1EndpointPort--- | DiscoveryV1EndpointPort--- EndpointPort represents a Port used by an EndpointSlice-data DiscoveryV1EndpointPort = DiscoveryV1EndpointPort- { discoveryV1EndpointPortAppProtocol :: !(Maybe Text) -- ^ "appProtocol" - The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.- , discoveryV1EndpointPortName :: !(Maybe Text) -- ^ "name" - name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.- , discoveryV1EndpointPortPort :: !(Maybe Int) -- ^ "port" - port represents the port number of the endpoint. If the EndpointSlice is derived from a Kubernetes service, this must be set to the service's target port. EndpointSlices used for other purposes may have a nil port.- , discoveryV1EndpointPortProtocol :: !(Maybe Text) -- ^ "protocol" - protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON DiscoveryV1EndpointPort-instance A.FromJSON DiscoveryV1EndpointPort where- parseJSON = A.withObject "DiscoveryV1EndpointPort" $ \o ->- DiscoveryV1EndpointPort- <$> (o .:? "appProtocol")- <*> (o .:? "name")- <*> (o .:? "port")- <*> (o .:? "protocol")---- | ToJSON DiscoveryV1EndpointPort-instance A.ToJSON DiscoveryV1EndpointPort where- toJSON DiscoveryV1EndpointPort {..} =- _omitNulls- [ "appProtocol" .= discoveryV1EndpointPortAppProtocol- , "name" .= discoveryV1EndpointPortName- , "port" .= discoveryV1EndpointPortPort- , "protocol" .= discoveryV1EndpointPortProtocol- ]----- | Construct a value of type 'DiscoveryV1EndpointPort' (by applying it's required fields, if any)-mkDiscoveryV1EndpointPort- :: DiscoveryV1EndpointPort-mkDiscoveryV1EndpointPort =- DiscoveryV1EndpointPort- { discoveryV1EndpointPortAppProtocol = Nothing- , discoveryV1EndpointPortName = Nothing- , discoveryV1EndpointPortPort = Nothing- , discoveryV1EndpointPortProtocol = Nothing- }---- ** EventsV1Event--- | EventsV1Event--- Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.-data EventsV1Event = EventsV1Event- { eventsV1EventAction :: !(Maybe Text) -- ^ "action" - action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field cannot be empty for new Events and it can have at most 128 characters.- , eventsV1EventApiVersion :: !(Maybe Text) -- ^ "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- , eventsV1EventDeprecatedCount :: !(Maybe Int) -- ^ "deprecatedCount" - deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.- , eventsV1EventDeprecatedFirstTimestamp :: !(Maybe DateTime) -- ^ "deprecatedFirstTimestamp" - deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.- , eventsV1EventDeprecatedLastTimestamp :: !(Maybe DateTime) -- ^ "deprecatedLastTimestamp" - deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.- , eventsV1EventDeprecatedSource :: !(Maybe V1EventSource) -- ^ "deprecatedSource"- , eventsV1EventEventTime :: !(DateTime) -- ^ /Required/ "eventTime" - eventTime is the time when this Event was first observed. It is required.- , eventsV1EventKind :: !(Maybe Text) -- ^ "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- , eventsV1EventMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , eventsV1EventNote :: !(Maybe Text) -- ^ "note" - note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.- , eventsV1EventReason :: !(Maybe Text) -- ^ "reason" - reason is why the action was taken. It is human-readable. This field cannot be empty for new Events and it can have at most 128 characters.- , eventsV1EventRegarding :: !(Maybe V1ObjectReference) -- ^ "regarding"- , eventsV1EventRelated :: !(Maybe V1ObjectReference) -- ^ "related"- , eventsV1EventReportingController :: !(Maybe Text) -- ^ "reportingController" - reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.- , eventsV1EventReportingInstance :: !(Maybe Text) -- ^ "reportingInstance" - reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.- , eventsV1EventSeries :: !(Maybe EventsV1EventSeries) -- ^ "series"- , eventsV1EventType :: !(Maybe Text) -- ^ "type" - type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable. This field cannot be empty for new Events.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON EventsV1Event-instance A.FromJSON EventsV1Event where- parseJSON = A.withObject "EventsV1Event" $ \o ->- EventsV1Event- <$> (o .:? "action")- <*> (o .:? "apiVersion")- <*> (o .:? "deprecatedCount")- <*> (o .:? "deprecatedFirstTimestamp")- <*> (o .:? "deprecatedLastTimestamp")- <*> (o .:? "deprecatedSource")- <*> (o .: "eventTime")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "note")- <*> (o .:? "reason")- <*> (o .:? "regarding")- <*> (o .:? "related")- <*> (o .:? "reportingController")- <*> (o .:? "reportingInstance")- <*> (o .:? "series")- <*> (o .:? "type")---- | ToJSON EventsV1Event-instance A.ToJSON EventsV1Event where- toJSON EventsV1Event {..} =- _omitNulls- [ "action" .= eventsV1EventAction- , "apiVersion" .= eventsV1EventApiVersion- , "deprecatedCount" .= eventsV1EventDeprecatedCount- , "deprecatedFirstTimestamp" .= eventsV1EventDeprecatedFirstTimestamp- , "deprecatedLastTimestamp" .= eventsV1EventDeprecatedLastTimestamp- , "deprecatedSource" .= eventsV1EventDeprecatedSource- , "eventTime" .= eventsV1EventEventTime- , "kind" .= eventsV1EventKind- , "metadata" .= eventsV1EventMetadata- , "note" .= eventsV1EventNote- , "reason" .= eventsV1EventReason- , "regarding" .= eventsV1EventRegarding- , "related" .= eventsV1EventRelated- , "reportingController" .= eventsV1EventReportingController- , "reportingInstance" .= eventsV1EventReportingInstance- , "series" .= eventsV1EventSeries- , "type" .= eventsV1EventType- ]----- | Construct a value of type 'EventsV1Event' (by applying it's required fields, if any)-mkEventsV1Event- :: DateTime -- ^ 'eventsV1EventEventTime': eventTime is the time when this Event was first observed. It is required.- -> EventsV1Event-mkEventsV1Event eventsV1EventEventTime =- EventsV1Event- { eventsV1EventAction = Nothing- , eventsV1EventApiVersion = Nothing- , eventsV1EventDeprecatedCount = Nothing- , eventsV1EventDeprecatedFirstTimestamp = Nothing- , eventsV1EventDeprecatedLastTimestamp = Nothing- , eventsV1EventDeprecatedSource = Nothing- , eventsV1EventEventTime- , eventsV1EventKind = Nothing- , eventsV1EventMetadata = Nothing- , eventsV1EventNote = Nothing- , eventsV1EventReason = Nothing- , eventsV1EventRegarding = Nothing- , eventsV1EventRelated = Nothing- , eventsV1EventReportingController = Nothing- , eventsV1EventReportingInstance = Nothing- , eventsV1EventSeries = Nothing- , eventsV1EventType = Nothing- }---- ** EventsV1EventList--- | EventsV1EventList--- EventList is a list of Event objects.-data EventsV1EventList = EventsV1EventList- { eventsV1EventListApiVersion :: !(Maybe Text) -- ^ "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- , eventsV1EventListItems :: !([EventsV1Event]) -- ^ /Required/ "items" - items is a list of schema objects.- , eventsV1EventListKind :: !(Maybe Text) -- ^ "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- , eventsV1EventListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON EventsV1EventList-instance A.FromJSON EventsV1EventList where- parseJSON = A.withObject "EventsV1EventList" $ \o ->- EventsV1EventList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON EventsV1EventList-instance A.ToJSON EventsV1EventList where- toJSON EventsV1EventList {..} =- _omitNulls- [ "apiVersion" .= eventsV1EventListApiVersion- , "items" .= eventsV1EventListItems- , "kind" .= eventsV1EventListKind- , "metadata" .= eventsV1EventListMetadata- ]----- | Construct a value of type 'EventsV1EventList' (by applying it's required fields, if any)-mkEventsV1EventList- :: [EventsV1Event] -- ^ 'eventsV1EventListItems': items is a list of schema objects.- -> EventsV1EventList-mkEventsV1EventList eventsV1EventListItems =- EventsV1EventList- { eventsV1EventListApiVersion = Nothing- , eventsV1EventListItems- , eventsV1EventListKind = Nothing- , eventsV1EventListMetadata = Nothing- }---- ** EventsV1EventSeries--- | EventsV1EventSeries--- EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.-data EventsV1EventSeries = EventsV1EventSeries- { eventsV1EventSeriesCount :: !(Int) -- ^ /Required/ "count" - count is the number of occurrences in this series up to the last heartbeat time.- , eventsV1EventSeriesLastObservedTime :: !(DateTime) -- ^ /Required/ "lastObservedTime" - lastObservedTime is the time when last Event from the series was seen before last heartbeat.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON EventsV1EventSeries-instance A.FromJSON EventsV1EventSeries where- parseJSON = A.withObject "EventsV1EventSeries" $ \o ->- EventsV1EventSeries- <$> (o .: "count")- <*> (o .: "lastObservedTime")---- | ToJSON EventsV1EventSeries-instance A.ToJSON EventsV1EventSeries where- toJSON EventsV1EventSeries {..} =- _omitNulls- [ "count" .= eventsV1EventSeriesCount- , "lastObservedTime" .= eventsV1EventSeriesLastObservedTime- ]----- | Construct a value of type 'EventsV1EventSeries' (by applying it's required fields, if any)-mkEventsV1EventSeries- :: Int -- ^ 'eventsV1EventSeriesCount': count is the number of occurrences in this series up to the last heartbeat time.- -> DateTime -- ^ 'eventsV1EventSeriesLastObservedTime': lastObservedTime is the time when last Event from the series was seen before last heartbeat.- -> EventsV1EventSeries-mkEventsV1EventSeries eventsV1EventSeriesCount eventsV1EventSeriesLastObservedTime =- EventsV1EventSeries- { eventsV1EventSeriesCount- , eventsV1EventSeriesLastObservedTime- }---- ** FlowcontrolV1Subject--- | FlowcontrolV1Subject--- Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.-data FlowcontrolV1Subject = FlowcontrolV1Subject- { flowcontrolV1SubjectGroup :: !(Maybe V1GroupSubject) -- ^ "group"- , flowcontrolV1SubjectKind :: !(Text) -- ^ /Required/ "kind" - `kind` indicates which one of the other fields is non-empty. Required- , flowcontrolV1SubjectServiceAccount :: !(Maybe V1ServiceAccountSubject) -- ^ "serviceAccount"- , flowcontrolV1SubjectUser :: !(Maybe V1UserSubject) -- ^ "user"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON FlowcontrolV1Subject-instance A.FromJSON FlowcontrolV1Subject where- parseJSON = A.withObject "FlowcontrolV1Subject" $ \o ->- FlowcontrolV1Subject- <$> (o .:? "group")- <*> (o .: "kind")- <*> (o .:? "serviceAccount")- <*> (o .:? "user")---- | ToJSON FlowcontrolV1Subject-instance A.ToJSON FlowcontrolV1Subject where- toJSON FlowcontrolV1Subject {..} =- _omitNulls- [ "group" .= flowcontrolV1SubjectGroup- , "kind" .= flowcontrolV1SubjectKind- , "serviceAccount" .= flowcontrolV1SubjectServiceAccount- , "user" .= flowcontrolV1SubjectUser- ]----- | Construct a value of type 'FlowcontrolV1Subject' (by applying it's required fields, if any)-mkFlowcontrolV1Subject- :: Text -- ^ 'flowcontrolV1SubjectKind': `kind` indicates which one of the other fields is non-empty. Required- -> FlowcontrolV1Subject-mkFlowcontrolV1Subject flowcontrolV1SubjectKind =- FlowcontrolV1Subject- { flowcontrolV1SubjectGroup = Nothing- , flowcontrolV1SubjectKind- , flowcontrolV1SubjectServiceAccount = Nothing- , flowcontrolV1SubjectUser = Nothing- }---- ** RbacV1Subject--- | RbacV1Subject--- Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.-data RbacV1Subject = RbacV1Subject- { rbacV1SubjectApiGroup :: !(Maybe Text) -- ^ "apiGroup" - APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.- , rbacV1SubjectKind :: !(Text) -- ^ /Required/ "kind" - Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.- , rbacV1SubjectName :: !(Text) -- ^ /Required/ "name" - Name of the object being referenced.- , rbacV1SubjectNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON RbacV1Subject-instance A.FromJSON RbacV1Subject where- parseJSON = A.withObject "RbacV1Subject" $ \o ->- RbacV1Subject- <$> (o .:? "apiGroup")- <*> (o .: "kind")- <*> (o .: "name")- <*> (o .:? "namespace")---- | ToJSON RbacV1Subject-instance A.ToJSON RbacV1Subject where- toJSON RbacV1Subject {..} =- _omitNulls- [ "apiGroup" .= rbacV1SubjectApiGroup- , "kind" .= rbacV1SubjectKind- , "name" .= rbacV1SubjectName- , "namespace" .= rbacV1SubjectNamespace- ]----- | Construct a value of type 'RbacV1Subject' (by applying it's required fields, if any)-mkRbacV1Subject- :: Text -- ^ 'rbacV1SubjectKind': Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.- -> Text -- ^ 'rbacV1SubjectName': Name of the object being referenced.- -> RbacV1Subject-mkRbacV1Subject rbacV1SubjectKind rbacV1SubjectName =- RbacV1Subject- { rbacV1SubjectApiGroup = Nothing- , rbacV1SubjectKind- , rbacV1SubjectName- , rbacV1SubjectNamespace = Nothing- }---- ** ResourceV1ResourceClaim--- | ResourceV1ResourceClaim--- 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.-data ResourceV1ResourceClaim = ResourceV1ResourceClaim- { resourceV1ResourceClaimApiVersion :: !(Maybe Text) -- ^ "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- , resourceV1ResourceClaimKind :: !(Maybe Text) -- ^ "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- , resourceV1ResourceClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , resourceV1ResourceClaimSpec :: !(V1ResourceClaimSpec) -- ^ /Required/ "spec"- , resourceV1ResourceClaimStatus :: !(Maybe V1ResourceClaimStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON ResourceV1ResourceClaim-instance A.FromJSON ResourceV1ResourceClaim where- parseJSON = A.withObject "ResourceV1ResourceClaim" $ \o ->- ResourceV1ResourceClaim- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON ResourceV1ResourceClaim-instance A.ToJSON ResourceV1ResourceClaim where- toJSON ResourceV1ResourceClaim {..} =- _omitNulls- [ "apiVersion" .= resourceV1ResourceClaimApiVersion- , "kind" .= resourceV1ResourceClaimKind- , "metadata" .= resourceV1ResourceClaimMetadata- , "spec" .= resourceV1ResourceClaimSpec- , "status" .= resourceV1ResourceClaimStatus- ]----- | Construct a value of type 'ResourceV1ResourceClaim' (by applying it's required fields, if any)-mkResourceV1ResourceClaim- :: V1ResourceClaimSpec -- ^ 'resourceV1ResourceClaimSpec' - -> ResourceV1ResourceClaim-mkResourceV1ResourceClaim resourceV1ResourceClaimSpec =- ResourceV1ResourceClaim- { resourceV1ResourceClaimApiVersion = Nothing- , resourceV1ResourceClaimKind = Nothing- , resourceV1ResourceClaimMetadata = Nothing- , resourceV1ResourceClaimSpec- , resourceV1ResourceClaimStatus = Nothing- }---- ** StorageV1TokenRequest--- | StorageV1TokenRequest--- TokenRequest contains parameters of a service account token.-data StorageV1TokenRequest = StorageV1TokenRequest- { storageV1TokenRequestAudience :: !(Text) -- ^ /Required/ "audience" - audience is the intended audience of the token in \"TokenRequestSpec\". It will default to the audiences of kube apiserver.- , storageV1TokenRequestExpirationSeconds :: !(Maybe Integer) -- ^ "expirationSeconds" - expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\". It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON StorageV1TokenRequest-instance A.FromJSON StorageV1TokenRequest where- parseJSON = A.withObject "StorageV1TokenRequest" $ \o ->- StorageV1TokenRequest- <$> (o .: "audience")- <*> (o .:? "expirationSeconds")---- | ToJSON StorageV1TokenRequest-instance A.ToJSON StorageV1TokenRequest where- toJSON StorageV1TokenRequest {..} =- _omitNulls- [ "audience" .= storageV1TokenRequestAudience- , "expirationSeconds" .= storageV1TokenRequestExpirationSeconds- ]----- | Construct a value of type 'StorageV1TokenRequest' (by applying it's required fields, if any)-mkStorageV1TokenRequest- :: Text -- ^ 'storageV1TokenRequestAudience': audience is the intended audience of the token in \"TokenRequestSpec\". It will default to the audiences of kube apiserver.- -> StorageV1TokenRequest-mkStorageV1TokenRequest storageV1TokenRequestAudience =- StorageV1TokenRequest- { storageV1TokenRequestAudience- , storageV1TokenRequestExpirationSeconds = Nothing- }---- ** V1APIGroup--- | V1APIGroup--- APIGroup contains the name, the supported versions, and the preferred version of a group.-data V1APIGroup = V1APIGroup- { v1APIGroupApiVersion :: !(Maybe Text) -- ^ "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- , v1APIGroupKind :: !(Maybe Text) -- ^ "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- , v1APIGroupName :: !(Text) -- ^ /Required/ "name" - name is the name of the group.- , v1APIGroupPreferredVersion :: !(Maybe V1GroupVersionForDiscovery) -- ^ "preferredVersion"- , v1APIGroupServerAddressByClientCidrs :: !(Maybe [V1ServerAddressByClientCIDR]) -- ^ "serverAddressByClientCIDRs" - a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.- , v1APIGroupVersions :: !([V1GroupVersionForDiscovery]) -- ^ /Required/ "versions" - versions are the versions supported in this group.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIGroup-instance A.FromJSON V1APIGroup where- parseJSON = A.withObject "V1APIGroup" $ \o ->- V1APIGroup- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .: "name")- <*> (o .:? "preferredVersion")- <*> (o .:? "serverAddressByClientCIDRs")- <*> (o .: "versions")---- | ToJSON V1APIGroup-instance A.ToJSON V1APIGroup where- toJSON V1APIGroup {..} =- _omitNulls- [ "apiVersion" .= v1APIGroupApiVersion- , "kind" .= v1APIGroupKind- , "name" .= v1APIGroupName- , "preferredVersion" .= v1APIGroupPreferredVersion- , "serverAddressByClientCIDRs" .= v1APIGroupServerAddressByClientCidrs- , "versions" .= v1APIGroupVersions- ]----- | Construct a value of type 'V1APIGroup' (by applying it's required fields, if any)-mkV1APIGroup- :: Text -- ^ 'v1APIGroupName': name is the name of the group.- -> [V1GroupVersionForDiscovery] -- ^ 'v1APIGroupVersions': versions are the versions supported in this group.- -> V1APIGroup-mkV1APIGroup v1APIGroupName v1APIGroupVersions =- V1APIGroup- { v1APIGroupApiVersion = Nothing- , v1APIGroupKind = Nothing- , v1APIGroupName- , v1APIGroupPreferredVersion = Nothing- , v1APIGroupServerAddressByClientCidrs = Nothing- , v1APIGroupVersions- }---- ** V1APIGroupList--- | V1APIGroupList--- APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.-data V1APIGroupList = V1APIGroupList- { v1APIGroupListApiVersion :: !(Maybe Text) -- ^ "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- , v1APIGroupListGroups :: !([V1APIGroup]) -- ^ /Required/ "groups" - groups is a list of APIGroup.- , v1APIGroupListKind :: !(Maybe Text) -- ^ "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- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIGroupList-instance A.FromJSON V1APIGroupList where- parseJSON = A.withObject "V1APIGroupList" $ \o ->- V1APIGroupList- <$> (o .:? "apiVersion")- <*> (o .: "groups")- <*> (o .:? "kind")---- | ToJSON V1APIGroupList-instance A.ToJSON V1APIGroupList where- toJSON V1APIGroupList {..} =- _omitNulls- [ "apiVersion" .= v1APIGroupListApiVersion- , "groups" .= v1APIGroupListGroups- , "kind" .= v1APIGroupListKind- ]----- | Construct a value of type 'V1APIGroupList' (by applying it's required fields, if any)-mkV1APIGroupList- :: [V1APIGroup] -- ^ 'v1APIGroupListGroups': groups is a list of APIGroup.- -> V1APIGroupList-mkV1APIGroupList v1APIGroupListGroups =- V1APIGroupList- { v1APIGroupListApiVersion = Nothing- , v1APIGroupListGroups- , v1APIGroupListKind = Nothing- }---- ** V1APIResource--- | V1APIResource--- APIResource specifies the name of a resource and whether it is namespaced.-data V1APIResource = V1APIResource- { v1APIResourceCategories :: !(Maybe [Text]) -- ^ "categories" - categories is a list of the grouped resources this resource belongs to (e.g. 'all')- , v1APIResourceGroup :: !(Maybe Text) -- ^ "group" - group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".- , v1APIResourceKind :: !(Text) -- ^ /Required/ "kind" - kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')- , v1APIResourceName :: !(Text) -- ^ /Required/ "name" - name is the plural name of the resource.- , v1APIResourceNamespaced :: !(Bool) -- ^ /Required/ "namespaced" - namespaced indicates if a resource is namespaced or not.- , v1APIResourceShortNames :: !(Maybe [Text]) -- ^ "shortNames" - shortNames is a list of suggested short names of the resource.- , v1APIResourceSingularName :: !(Text) -- ^ /Required/ "singularName" - singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.- , v1APIResourceStorageVersionHash :: !(Maybe Text) -- ^ "storageVersionHash" - The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.- , v1APIResourceVerbs :: !([Text]) -- ^ /Required/ "verbs" - verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)- , v1APIResourceVersion :: !(Maybe Text) -- ^ "version" - version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIResource-instance A.FromJSON V1APIResource where- parseJSON = A.withObject "V1APIResource" $ \o ->- V1APIResource- <$> (o .:? "categories")- <*> (o .:? "group")- <*> (o .: "kind")- <*> (o .: "name")- <*> (o .: "namespaced")- <*> (o .:? "shortNames")- <*> (o .: "singularName")- <*> (o .:? "storageVersionHash")- <*> (o .: "verbs")- <*> (o .:? "version")---- | ToJSON V1APIResource-instance A.ToJSON V1APIResource where- toJSON V1APIResource {..} =- _omitNulls- [ "categories" .= v1APIResourceCategories- , "group" .= v1APIResourceGroup- , "kind" .= v1APIResourceKind- , "name" .= v1APIResourceName- , "namespaced" .= v1APIResourceNamespaced- , "shortNames" .= v1APIResourceShortNames- , "singularName" .= v1APIResourceSingularName- , "storageVersionHash" .= v1APIResourceStorageVersionHash- , "verbs" .= v1APIResourceVerbs- , "version" .= v1APIResourceVersion- ]----- | Construct a value of type 'V1APIResource' (by applying it's required fields, if any)-mkV1APIResource- :: Text -- ^ 'v1APIResourceKind': kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')- -> Text -- ^ 'v1APIResourceName': name is the plural name of the resource.- -> Bool -- ^ 'v1APIResourceNamespaced': namespaced indicates if a resource is namespaced or not.- -> Text -- ^ 'v1APIResourceSingularName': singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.- -> [Text] -- ^ 'v1APIResourceVerbs': verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)- -> V1APIResource-mkV1APIResource v1APIResourceKind v1APIResourceName v1APIResourceNamespaced v1APIResourceSingularName v1APIResourceVerbs =- V1APIResource- { v1APIResourceCategories = Nothing- , v1APIResourceGroup = Nothing- , v1APIResourceKind- , v1APIResourceName- , v1APIResourceNamespaced- , v1APIResourceShortNames = Nothing- , v1APIResourceSingularName- , v1APIResourceStorageVersionHash = Nothing- , v1APIResourceVerbs- , v1APIResourceVersion = Nothing- }---- ** V1APIResourceList--- | V1APIResourceList--- APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.-data V1APIResourceList = V1APIResourceList- { v1APIResourceListApiVersion :: !(Maybe Text) -- ^ "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- , v1APIResourceListGroupVersion :: !(Text) -- ^ /Required/ "groupVersion" - groupVersion is the group and version this APIResourceList is for.- , v1APIResourceListKind :: !(Maybe Text) -- ^ "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- , v1APIResourceListResources :: !([V1APIResource]) -- ^ /Required/ "resources" - resources contains the name of the resources and if they are namespaced.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIResourceList-instance A.FromJSON V1APIResourceList where- parseJSON = A.withObject "V1APIResourceList" $ \o ->- V1APIResourceList- <$> (o .:? "apiVersion")- <*> (o .: "groupVersion")- <*> (o .:? "kind")- <*> (o .: "resources")---- | ToJSON V1APIResourceList-instance A.ToJSON V1APIResourceList where- toJSON V1APIResourceList {..} =- _omitNulls- [ "apiVersion" .= v1APIResourceListApiVersion- , "groupVersion" .= v1APIResourceListGroupVersion- , "kind" .= v1APIResourceListKind- , "resources" .= v1APIResourceListResources- ]----- | Construct a value of type 'V1APIResourceList' (by applying it's required fields, if any)-mkV1APIResourceList- :: Text -- ^ 'v1APIResourceListGroupVersion': groupVersion is the group and version this APIResourceList is for.- -> [V1APIResource] -- ^ 'v1APIResourceListResources': resources contains the name of the resources and if they are namespaced.- -> V1APIResourceList-mkV1APIResourceList v1APIResourceListGroupVersion v1APIResourceListResources =- V1APIResourceList- { v1APIResourceListApiVersion = Nothing- , v1APIResourceListGroupVersion- , v1APIResourceListKind = Nothing- , v1APIResourceListResources- }---- ** V1APIService--- | V1APIService--- APIService represents a server for a particular GroupVersion. Name must be \"version.group\".-data V1APIService = V1APIService- { v1APIServiceApiVersion :: !(Maybe Text) -- ^ "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- , v1APIServiceKind :: !(Maybe Text) -- ^ "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- , v1APIServiceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1APIServiceSpec :: !(Maybe V1APIServiceSpec) -- ^ "spec"- , v1APIServiceStatus :: !(Maybe V1APIServiceStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIService-instance A.FromJSON V1APIService where- parseJSON = A.withObject "V1APIService" $ \o ->- V1APIService- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1APIService-instance A.ToJSON V1APIService where- toJSON V1APIService {..} =- _omitNulls- [ "apiVersion" .= v1APIServiceApiVersion- , "kind" .= v1APIServiceKind- , "metadata" .= v1APIServiceMetadata- , "spec" .= v1APIServiceSpec- , "status" .= v1APIServiceStatus- ]----- | Construct a value of type 'V1APIService' (by applying it's required fields, if any)-mkV1APIService- :: V1APIService-mkV1APIService =- V1APIService- { v1APIServiceApiVersion = Nothing- , v1APIServiceKind = Nothing- , v1APIServiceMetadata = Nothing- , v1APIServiceSpec = Nothing- , v1APIServiceStatus = Nothing- }---- ** V1APIServiceCondition--- | V1APIServiceCondition--- APIServiceCondition describes the state of an APIService at a particular point-data V1APIServiceCondition = V1APIServiceCondition- { v1APIServiceConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.- , v1APIServiceConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.- , v1APIServiceConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition's last transition.- , v1APIServiceConditionStatus :: !(Text) -- ^ /Required/ "status" - Status is the status of the condition. Can be True, False, Unknown.- , v1APIServiceConditionType :: !(Text) -- ^ /Required/ "type" - Type is the type of the condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIServiceCondition-instance A.FromJSON V1APIServiceCondition where- parseJSON = A.withObject "V1APIServiceCondition" $ \o ->- V1APIServiceCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1APIServiceCondition-instance A.ToJSON V1APIServiceCondition where- toJSON V1APIServiceCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1APIServiceConditionLastTransitionTime- , "message" .= v1APIServiceConditionMessage- , "reason" .= v1APIServiceConditionReason- , "status" .= v1APIServiceConditionStatus- , "type" .= v1APIServiceConditionType- ]----- | Construct a value of type 'V1APIServiceCondition' (by applying it's required fields, if any)-mkV1APIServiceCondition- :: Text -- ^ 'v1APIServiceConditionStatus': Status is the status of the condition. Can be True, False, Unknown.- -> Text -- ^ 'v1APIServiceConditionType': Type is the type of the condition.- -> V1APIServiceCondition-mkV1APIServiceCondition v1APIServiceConditionStatus v1APIServiceConditionType =- V1APIServiceCondition- { v1APIServiceConditionLastTransitionTime = Nothing- , v1APIServiceConditionMessage = Nothing- , v1APIServiceConditionReason = Nothing- , v1APIServiceConditionStatus- , v1APIServiceConditionType- }---- ** V1APIServiceList--- | V1APIServiceList--- APIServiceList is a list of APIService objects.-data V1APIServiceList = V1APIServiceList- { v1APIServiceListApiVersion :: !(Maybe Text) -- ^ "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- , v1APIServiceListItems :: !([V1APIService]) -- ^ /Required/ "items" - Items is the list of APIService- , v1APIServiceListKind :: !(Maybe Text) -- ^ "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- , v1APIServiceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIServiceList-instance A.FromJSON V1APIServiceList where- parseJSON = A.withObject "V1APIServiceList" $ \o ->- V1APIServiceList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1APIServiceList-instance A.ToJSON V1APIServiceList where- toJSON V1APIServiceList {..} =- _omitNulls- [ "apiVersion" .= v1APIServiceListApiVersion- , "items" .= v1APIServiceListItems- , "kind" .= v1APIServiceListKind- , "metadata" .= v1APIServiceListMetadata- ]----- | Construct a value of type 'V1APIServiceList' (by applying it's required fields, if any)-mkV1APIServiceList- :: [V1APIService] -- ^ 'v1APIServiceListItems': Items is the list of APIService- -> V1APIServiceList-mkV1APIServiceList v1APIServiceListItems =- V1APIServiceList- { v1APIServiceListApiVersion = Nothing- , v1APIServiceListItems- , v1APIServiceListKind = Nothing- , v1APIServiceListMetadata = Nothing- }---- ** V1APIServiceSpec--- | V1APIServiceSpec--- APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.-data V1APIServiceSpec = V1APIServiceSpec- { v1APIServiceSpecCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.- , v1APIServiceSpecGroup :: !(Maybe Text) -- ^ "group" - Group is the API group name this server hosts- , v1APIServiceSpecGroupPriorityMinimum :: !(Int) -- ^ /Required/ "groupPriorityMinimum" - GroupPriorityMinimum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMinimum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s- , v1APIServiceSpecInsecureSkipTlsVerify :: !(Maybe Bool) -- ^ "insecureSkipTLSVerify" - InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.- , v1APIServiceSpecService :: !(Maybe ApiregistrationV1ServiceReference) -- ^ "service"- , v1APIServiceSpecVersion :: !(Maybe Text) -- ^ "version" - Version is the API version this server hosts. For example, \"v1\"- , v1APIServiceSpecVersionPriority :: !(Int) -- ^ /Required/ "versionPriority" - VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIServiceSpec-instance A.FromJSON V1APIServiceSpec where- parseJSON = A.withObject "V1APIServiceSpec" $ \o ->- V1APIServiceSpec- <$> (o .:? "caBundle")- <*> (o .:? "group")- <*> (o .: "groupPriorityMinimum")- <*> (o .:? "insecureSkipTLSVerify")- <*> (o .:? "service")- <*> (o .:? "version")- <*> (o .: "versionPriority")---- | ToJSON V1APIServiceSpec-instance A.ToJSON V1APIServiceSpec where- toJSON V1APIServiceSpec {..} =- _omitNulls- [ "caBundle" .= v1APIServiceSpecCaBundle- , "group" .= v1APIServiceSpecGroup- , "groupPriorityMinimum" .= v1APIServiceSpecGroupPriorityMinimum- , "insecureSkipTLSVerify" .= v1APIServiceSpecInsecureSkipTlsVerify- , "service" .= v1APIServiceSpecService- , "version" .= v1APIServiceSpecVersion- , "versionPriority" .= v1APIServiceSpecVersionPriority- ]----- | Construct a value of type 'V1APIServiceSpec' (by applying it's required fields, if any)-mkV1APIServiceSpec- :: Int -- ^ 'v1APIServiceSpecGroupPriorityMinimum': GroupPriorityMinimum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMinimum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s- -> Int -- ^ 'v1APIServiceSpecVersionPriority': VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.- -> V1APIServiceSpec-mkV1APIServiceSpec v1APIServiceSpecGroupPriorityMinimum v1APIServiceSpecVersionPriority =- V1APIServiceSpec- { v1APIServiceSpecCaBundle = Nothing- , v1APIServiceSpecGroup = Nothing- , v1APIServiceSpecGroupPriorityMinimum- , v1APIServiceSpecInsecureSkipTlsVerify = Nothing- , v1APIServiceSpecService = Nothing- , v1APIServiceSpecVersion = Nothing- , v1APIServiceSpecVersionPriority- }---- ** V1APIServiceStatus--- | V1APIServiceStatus--- APIServiceStatus contains derived information about an API server-data V1APIServiceStatus = V1APIServiceStatus- { v1APIServiceStatusConditions :: !(Maybe [V1APIServiceCondition]) -- ^ "conditions" - Current service state of apiService.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIServiceStatus-instance A.FromJSON V1APIServiceStatus where- parseJSON = A.withObject "V1APIServiceStatus" $ \o ->- V1APIServiceStatus- <$> (o .:? "conditions")---- | ToJSON V1APIServiceStatus-instance A.ToJSON V1APIServiceStatus where- toJSON V1APIServiceStatus {..} =- _omitNulls- [ "conditions" .= v1APIServiceStatusConditions- ]----- | Construct a value of type 'V1APIServiceStatus' (by applying it's required fields, if any)-mkV1APIServiceStatus- :: V1APIServiceStatus-mkV1APIServiceStatus =- V1APIServiceStatus- { v1APIServiceStatusConditions = Nothing- }---- ** V1APIVersions--- | V1APIVersions--- APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.-data V1APIVersions = V1APIVersions- { v1APIVersionsApiVersion :: !(Maybe Text) -- ^ "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- , v1APIVersionsKind :: !(Maybe Text) -- ^ "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- , v1APIVersionsServerAddressByClientCidrs :: !([V1ServerAddressByClientCIDR]) -- ^ /Required/ "serverAddressByClientCIDRs" - a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.- , v1APIVersionsVersions :: !([Text]) -- ^ /Required/ "versions" - versions are the api versions that are available.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1APIVersions-instance A.FromJSON V1APIVersions where- parseJSON = A.withObject "V1APIVersions" $ \o ->- V1APIVersions- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .: "serverAddressByClientCIDRs")- <*> (o .: "versions")---- | ToJSON V1APIVersions-instance A.ToJSON V1APIVersions where- toJSON V1APIVersions {..} =- _omitNulls- [ "apiVersion" .= v1APIVersionsApiVersion- , "kind" .= v1APIVersionsKind- , "serverAddressByClientCIDRs" .= v1APIVersionsServerAddressByClientCidrs- , "versions" .= v1APIVersionsVersions- ]----- | Construct a value of type 'V1APIVersions' (by applying it's required fields, if any)-mkV1APIVersions- :: [V1ServerAddressByClientCIDR] -- ^ 'v1APIVersionsServerAddressByClientCidrs': a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.- -> [Text] -- ^ 'v1APIVersionsVersions': versions are the api versions that are available.- -> V1APIVersions-mkV1APIVersions v1APIVersionsServerAddressByClientCidrs v1APIVersionsVersions =- V1APIVersions- { v1APIVersionsApiVersion = Nothing- , v1APIVersionsKind = Nothing- , v1APIVersionsServerAddressByClientCidrs- , v1APIVersionsVersions- }---- ** V1AWSElasticBlockStoreVolumeSource--- | V1AWSElasticBlockStoreVolumeSource--- Represents a Persistent Disk resource in AWS. An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.-data V1AWSElasticBlockStoreVolumeSource = V1AWSElasticBlockStoreVolumeSource- { v1AWSElasticBlockStoreVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore- , v1AWSElasticBlockStoreVolumeSourcePartition :: !(Maybe Int) -- ^ "partition" - partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).- , v1AWSElasticBlockStoreVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore- , v1AWSElasticBlockStoreVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AWSElasticBlockStoreVolumeSource-instance A.FromJSON V1AWSElasticBlockStoreVolumeSource where- parseJSON = A.withObject "V1AWSElasticBlockStoreVolumeSource" $ \o ->- V1AWSElasticBlockStoreVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "partition")- <*> (o .:? "readOnly")- <*> (o .: "volumeID")---- | ToJSON V1AWSElasticBlockStoreVolumeSource-instance A.ToJSON V1AWSElasticBlockStoreVolumeSource where- toJSON V1AWSElasticBlockStoreVolumeSource {..} =- _omitNulls- [ "fsType" .= v1AWSElasticBlockStoreVolumeSourceFsType- , "partition" .= v1AWSElasticBlockStoreVolumeSourcePartition- , "readOnly" .= v1AWSElasticBlockStoreVolumeSourceReadOnly- , "volumeID" .= v1AWSElasticBlockStoreVolumeSourceVolumeId- ]----- | Construct a value of type 'V1AWSElasticBlockStoreVolumeSource' (by applying it's required fields, if any)-mkV1AWSElasticBlockStoreVolumeSource- :: Text -- ^ 'v1AWSElasticBlockStoreVolumeSourceVolumeId': volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore- -> V1AWSElasticBlockStoreVolumeSource-mkV1AWSElasticBlockStoreVolumeSource v1AWSElasticBlockStoreVolumeSourceVolumeId =- V1AWSElasticBlockStoreVolumeSource- { v1AWSElasticBlockStoreVolumeSourceFsType = Nothing- , v1AWSElasticBlockStoreVolumeSourcePartition = Nothing- , v1AWSElasticBlockStoreVolumeSourceReadOnly = Nothing- , v1AWSElasticBlockStoreVolumeSourceVolumeId- }---- ** V1Affinity--- | V1Affinity--- Affinity is a group of affinity scheduling rules.-data V1Affinity = V1Affinity- { v1AffinityNodeAffinity :: !(Maybe V1NodeAffinity) -- ^ "nodeAffinity"- , v1AffinityPodAffinity :: !(Maybe V1PodAffinity) -- ^ "podAffinity"- , v1AffinityPodAntiAffinity :: !(Maybe V1PodAntiAffinity) -- ^ "podAntiAffinity"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Affinity-instance A.FromJSON V1Affinity where- parseJSON = A.withObject "V1Affinity" $ \o ->- V1Affinity- <$> (o .:? "nodeAffinity")- <*> (o .:? "podAffinity")- <*> (o .:? "podAntiAffinity")---- | ToJSON V1Affinity-instance A.ToJSON V1Affinity where- toJSON V1Affinity {..} =- _omitNulls- [ "nodeAffinity" .= v1AffinityNodeAffinity- , "podAffinity" .= v1AffinityPodAffinity- , "podAntiAffinity" .= v1AffinityPodAntiAffinity- ]----- | Construct a value of type 'V1Affinity' (by applying it's required fields, if any)-mkV1Affinity- :: V1Affinity-mkV1Affinity =- V1Affinity- { v1AffinityNodeAffinity = Nothing- , v1AffinityPodAffinity = Nothing- , v1AffinityPodAntiAffinity = Nothing- }---- ** V1AggregationRule--- | V1AggregationRule--- AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole-data V1AggregationRule = V1AggregationRule- { v1AggregationRuleClusterRoleSelectors :: !(Maybe [V1LabelSelector]) -- ^ "clusterRoleSelectors" - ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AggregationRule-instance A.FromJSON V1AggregationRule where- parseJSON = A.withObject "V1AggregationRule" $ \o ->- V1AggregationRule- <$> (o .:? "clusterRoleSelectors")---- | ToJSON V1AggregationRule-instance A.ToJSON V1AggregationRule where- toJSON V1AggregationRule {..} =- _omitNulls- [ "clusterRoleSelectors" .= v1AggregationRuleClusterRoleSelectors- ]----- | Construct a value of type 'V1AggregationRule' (by applying it's required fields, if any)-mkV1AggregationRule- :: V1AggregationRule-mkV1AggregationRule =- V1AggregationRule- { v1AggregationRuleClusterRoleSelectors = Nothing- }---- ** V1AllocatedDeviceStatus--- | V1AllocatedDeviceStatus--- AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices.-data V1AllocatedDeviceStatus = V1AllocatedDeviceStatus- { v1AllocatedDeviceStatusConditions :: !(Maybe [V1Condition]) -- ^ "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. Must not contain more than 8 entries.- , v1AllocatedDeviceStatusData :: !(Maybe A.Value) -- ^ "data" - Data contains arbitrary driver-specific data. The length of the raw data must be smaller or equal to 10 Ki.- , v1AllocatedDeviceStatusDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- , v1AllocatedDeviceStatusDriver :: !(Text) -- ^ /Required/ "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.- , v1AllocatedDeviceStatusNetworkData :: !(Maybe V1NetworkDeviceData) -- ^ "networkData"- , v1AllocatedDeviceStatusPool :: !(Text) -- ^ /Required/ "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.- , v1AllocatedDeviceStatusShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AllocatedDeviceStatus-instance A.FromJSON V1AllocatedDeviceStatus where- parseJSON = A.withObject "V1AllocatedDeviceStatus" $ \o ->- V1AllocatedDeviceStatus- <$> (o .:? "conditions")- <*> (o .:? "data")- <*> (o .: "device")- <*> (o .: "driver")- <*> (o .:? "networkData")- <*> (o .: "pool")- <*> (o .:? "shareID")---- | ToJSON V1AllocatedDeviceStatus-instance A.ToJSON V1AllocatedDeviceStatus where- toJSON V1AllocatedDeviceStatus {..} =- _omitNulls- [ "conditions" .= v1AllocatedDeviceStatusConditions- , "data" .= v1AllocatedDeviceStatusData- , "device" .= v1AllocatedDeviceStatusDevice- , "driver" .= v1AllocatedDeviceStatusDriver- , "networkData" .= v1AllocatedDeviceStatusNetworkData- , "pool" .= v1AllocatedDeviceStatusPool- , "shareID" .= v1AllocatedDeviceStatusShareId- ]----- | Construct a value of type 'V1AllocatedDeviceStatus' (by applying it's required fields, if any)-mkV1AllocatedDeviceStatus- :: Text -- ^ 'v1AllocatedDeviceStatusDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- -> Text -- ^ 'v1AllocatedDeviceStatusDriver': 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.- -> Text -- ^ 'v1AllocatedDeviceStatusPool': 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.- -> V1AllocatedDeviceStatus-mkV1AllocatedDeviceStatus v1AllocatedDeviceStatusDevice v1AllocatedDeviceStatusDriver v1AllocatedDeviceStatusPool =- V1AllocatedDeviceStatus- { v1AllocatedDeviceStatusConditions = Nothing- , v1AllocatedDeviceStatusData = Nothing- , v1AllocatedDeviceStatusDevice- , v1AllocatedDeviceStatusDriver- , v1AllocatedDeviceStatusNetworkData = Nothing- , v1AllocatedDeviceStatusPool- , v1AllocatedDeviceStatusShareId = Nothing- }---- ** V1AllocationResult--- | V1AllocationResult--- AllocationResult contains attributes of an allocated resource.-data V1AllocationResult = V1AllocationResult- { v1AllocationResultAllocationTimestamp :: !(Maybe DateTime) -- ^ "allocationTimestamp" - AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate.- , v1AllocationResultDevices :: !(Maybe V1DeviceAllocationResult) -- ^ "devices"- , v1AllocationResultNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AllocationResult-instance A.FromJSON V1AllocationResult where- parseJSON = A.withObject "V1AllocationResult" $ \o ->- V1AllocationResult- <$> (o .:? "allocationTimestamp")- <*> (o .:? "devices")- <*> (o .:? "nodeSelector")---- | ToJSON V1AllocationResult-instance A.ToJSON V1AllocationResult where- toJSON V1AllocationResult {..} =- _omitNulls- [ "allocationTimestamp" .= v1AllocationResultAllocationTimestamp- , "devices" .= v1AllocationResultDevices- , "nodeSelector" .= v1AllocationResultNodeSelector- ]----- | Construct a value of type 'V1AllocationResult' (by applying it's required fields, if any)-mkV1AllocationResult- :: V1AllocationResult-mkV1AllocationResult =- V1AllocationResult- { v1AllocationResultAllocationTimestamp = Nothing- , v1AllocationResultDevices = Nothing- , v1AllocationResultNodeSelector = Nothing- }---- ** V1AppArmorProfile--- | V1AppArmorProfile--- AppArmorProfile defines a pod or container's AppArmor settings.-data V1AppArmorProfile = V1AppArmorProfile- { v1AppArmorProfileLocalhostProfile :: !(Maybe Text) -- ^ "localhostProfile" - localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \"Localhost\".- , v1AppArmorProfileType :: !(Text) -- ^ /Required/ "type" - type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AppArmorProfile-instance A.FromJSON V1AppArmorProfile where- parseJSON = A.withObject "V1AppArmorProfile" $ \o ->- V1AppArmorProfile- <$> (o .:? "localhostProfile")- <*> (o .: "type")---- | ToJSON V1AppArmorProfile-instance A.ToJSON V1AppArmorProfile where- toJSON V1AppArmorProfile {..} =- _omitNulls- [ "localhostProfile" .= v1AppArmorProfileLocalhostProfile- , "type" .= v1AppArmorProfileType- ]----- | Construct a value of type 'V1AppArmorProfile' (by applying it's required fields, if any)-mkV1AppArmorProfile- :: Text -- ^ 'v1AppArmorProfileType': type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.- -> V1AppArmorProfile-mkV1AppArmorProfile v1AppArmorProfileType =- V1AppArmorProfile- { v1AppArmorProfileLocalhostProfile = Nothing- , v1AppArmorProfileType- }---- ** V1AttachedVolume--- | V1AttachedVolume--- AttachedVolume describes a volume attached to a node-data V1AttachedVolume = V1AttachedVolume- { v1AttachedVolumeDevicePath :: !(Text) -- ^ /Required/ "devicePath" - DevicePath represents the device path where the volume should be available- , v1AttachedVolumeName :: !(Text) -- ^ /Required/ "name" - Name of the attached volume- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AttachedVolume-instance A.FromJSON V1AttachedVolume where- parseJSON = A.withObject "V1AttachedVolume" $ \o ->- V1AttachedVolume- <$> (o .: "devicePath")- <*> (o .: "name")---- | ToJSON V1AttachedVolume-instance A.ToJSON V1AttachedVolume where- toJSON V1AttachedVolume {..} =- _omitNulls- [ "devicePath" .= v1AttachedVolumeDevicePath- , "name" .= v1AttachedVolumeName- ]----- | Construct a value of type 'V1AttachedVolume' (by applying it's required fields, if any)-mkV1AttachedVolume- :: Text -- ^ 'v1AttachedVolumeDevicePath': DevicePath represents the device path where the volume should be available- -> Text -- ^ 'v1AttachedVolumeName': Name of the attached volume- -> V1AttachedVolume-mkV1AttachedVolume v1AttachedVolumeDevicePath v1AttachedVolumeName =- V1AttachedVolume- { v1AttachedVolumeDevicePath- , v1AttachedVolumeName- }---- ** V1AuditAnnotation--- | V1AuditAnnotation--- AuditAnnotation describes how to produce an audit annotation for an API request.-data V1AuditAnnotation = V1AuditAnnotation- { v1AuditAnnotationKey :: !(Text) -- ^ /Required/ "key" - 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.- , v1AuditAnnotationValueExpression :: !(Text) -- ^ /Required/ "valueExpression" - 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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AuditAnnotation-instance A.FromJSON V1AuditAnnotation where- parseJSON = A.withObject "V1AuditAnnotation" $ \o ->- V1AuditAnnotation- <$> (o .: "key")- <*> (o .: "valueExpression")---- | ToJSON V1AuditAnnotation-instance A.ToJSON V1AuditAnnotation where- toJSON V1AuditAnnotation {..} =- _omitNulls- [ "key" .= v1AuditAnnotationKey- , "valueExpression" .= v1AuditAnnotationValueExpression- ]----- | Construct a value of type 'V1AuditAnnotation' (by applying it's required fields, if any)-mkV1AuditAnnotation- :: Text -- ^ 'v1AuditAnnotationKey': 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.- -> Text -- ^ 'v1AuditAnnotationValueExpression': 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.- -> V1AuditAnnotation-mkV1AuditAnnotation v1AuditAnnotationKey v1AuditAnnotationValueExpression =- V1AuditAnnotation- { v1AuditAnnotationKey- , v1AuditAnnotationValueExpression- }---- ** V1AzureDiskVolumeSource--- | V1AzureDiskVolumeSource--- AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.-data V1AzureDiskVolumeSource = V1AzureDiskVolumeSource- { v1AzureDiskVolumeSourceCachingMode :: !(Maybe Text) -- ^ "cachingMode" - cachingMode is the Host Caching mode: None, Read Only, Read Write.- , v1AzureDiskVolumeSourceDiskName :: !(Text) -- ^ /Required/ "diskName" - diskName is the Name of the data disk in the blob storage- , v1AzureDiskVolumeSourceDiskUri :: !(Text) -- ^ /Required/ "diskURI" - diskURI is the URI of data disk in the blob storage- , v1AzureDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.- , v1AzureDiskVolumeSourceKind :: !(Maybe Text) -- ^ "kind" - kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared- , v1AzureDiskVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AzureDiskVolumeSource-instance A.FromJSON V1AzureDiskVolumeSource where- parseJSON = A.withObject "V1AzureDiskVolumeSource" $ \o ->- V1AzureDiskVolumeSource- <$> (o .:? "cachingMode")- <*> (o .: "diskName")- <*> (o .: "diskURI")- <*> (o .:? "fsType")- <*> (o .:? "kind")- <*> (o .:? "readOnly")---- | ToJSON V1AzureDiskVolumeSource-instance A.ToJSON V1AzureDiskVolumeSource where- toJSON V1AzureDiskVolumeSource {..} =- _omitNulls- [ "cachingMode" .= v1AzureDiskVolumeSourceCachingMode- , "diskName" .= v1AzureDiskVolumeSourceDiskName- , "diskURI" .= v1AzureDiskVolumeSourceDiskUri- , "fsType" .= v1AzureDiskVolumeSourceFsType- , "kind" .= v1AzureDiskVolumeSourceKind- , "readOnly" .= v1AzureDiskVolumeSourceReadOnly- ]----- | Construct a value of type 'V1AzureDiskVolumeSource' (by applying it's required fields, if any)-mkV1AzureDiskVolumeSource- :: Text -- ^ 'v1AzureDiskVolumeSourceDiskName': diskName is the Name of the data disk in the blob storage- -> Text -- ^ 'v1AzureDiskVolumeSourceDiskUri': diskURI is the URI of data disk in the blob storage- -> V1AzureDiskVolumeSource-mkV1AzureDiskVolumeSource v1AzureDiskVolumeSourceDiskName v1AzureDiskVolumeSourceDiskUri =- V1AzureDiskVolumeSource- { v1AzureDiskVolumeSourceCachingMode = Nothing- , v1AzureDiskVolumeSourceDiskName- , v1AzureDiskVolumeSourceDiskUri- , v1AzureDiskVolumeSourceFsType = Nothing- , v1AzureDiskVolumeSourceKind = Nothing- , v1AzureDiskVolumeSourceReadOnly = Nothing- }---- ** V1AzureFilePersistentVolumeSource--- | V1AzureFilePersistentVolumeSource--- AzureFile represents an Azure File Service mount on the host and bind mount to the pod.-data V1AzureFilePersistentVolumeSource = V1AzureFilePersistentVolumeSource- { v1AzureFilePersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1AzureFilePersistentVolumeSourceSecretName :: !(Text) -- ^ /Required/ "secretName" - secretName is the name of secret that contains Azure Storage Account Name and Key- , v1AzureFilePersistentVolumeSourceSecretNamespace :: !(Maybe Text) -- ^ "secretNamespace" - secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod- , v1AzureFilePersistentVolumeSourceShareName :: !(Text) -- ^ /Required/ "shareName" - shareName is the azure Share Name- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AzureFilePersistentVolumeSource-instance A.FromJSON V1AzureFilePersistentVolumeSource where- parseJSON = A.withObject "V1AzureFilePersistentVolumeSource" $ \o ->- V1AzureFilePersistentVolumeSource- <$> (o .:? "readOnly")- <*> (o .: "secretName")- <*> (o .:? "secretNamespace")- <*> (o .: "shareName")---- | ToJSON V1AzureFilePersistentVolumeSource-instance A.ToJSON V1AzureFilePersistentVolumeSource where- toJSON V1AzureFilePersistentVolumeSource {..} =- _omitNulls- [ "readOnly" .= v1AzureFilePersistentVolumeSourceReadOnly- , "secretName" .= v1AzureFilePersistentVolumeSourceSecretName- , "secretNamespace" .= v1AzureFilePersistentVolumeSourceSecretNamespace- , "shareName" .= v1AzureFilePersistentVolumeSourceShareName- ]----- | Construct a value of type 'V1AzureFilePersistentVolumeSource' (by applying it's required fields, if any)-mkV1AzureFilePersistentVolumeSource- :: Text -- ^ 'v1AzureFilePersistentVolumeSourceSecretName': secretName is the name of secret that contains Azure Storage Account Name and Key- -> Text -- ^ 'v1AzureFilePersistentVolumeSourceShareName': shareName is the azure Share Name- -> V1AzureFilePersistentVolumeSource-mkV1AzureFilePersistentVolumeSource v1AzureFilePersistentVolumeSourceSecretName v1AzureFilePersistentVolumeSourceShareName =- V1AzureFilePersistentVolumeSource- { v1AzureFilePersistentVolumeSourceReadOnly = Nothing- , v1AzureFilePersistentVolumeSourceSecretName- , v1AzureFilePersistentVolumeSourceSecretNamespace = Nothing- , v1AzureFilePersistentVolumeSourceShareName- }---- ** V1AzureFileVolumeSource--- | V1AzureFileVolumeSource--- AzureFile represents an Azure File Service mount on the host and bind mount to the pod.-data V1AzureFileVolumeSource = V1AzureFileVolumeSource- { v1AzureFileVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1AzureFileVolumeSourceSecretName :: !(Text) -- ^ /Required/ "secretName" - secretName is the name of secret that contains Azure Storage Account Name and Key- , v1AzureFileVolumeSourceShareName :: !(Text) -- ^ /Required/ "shareName" - shareName is the azure share Name- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1AzureFileVolumeSource-instance A.FromJSON V1AzureFileVolumeSource where- parseJSON = A.withObject "V1AzureFileVolumeSource" $ \o ->- V1AzureFileVolumeSource- <$> (o .:? "readOnly")- <*> (o .: "secretName")- <*> (o .: "shareName")---- | ToJSON V1AzureFileVolumeSource-instance A.ToJSON V1AzureFileVolumeSource where- toJSON V1AzureFileVolumeSource {..} =- _omitNulls- [ "readOnly" .= v1AzureFileVolumeSourceReadOnly- , "secretName" .= v1AzureFileVolumeSourceSecretName- , "shareName" .= v1AzureFileVolumeSourceShareName- ]----- | Construct a value of type 'V1AzureFileVolumeSource' (by applying it's required fields, if any)-mkV1AzureFileVolumeSource- :: Text -- ^ 'v1AzureFileVolumeSourceSecretName': secretName is the name of secret that contains Azure Storage Account Name and Key- -> Text -- ^ 'v1AzureFileVolumeSourceShareName': shareName is the azure share Name- -> V1AzureFileVolumeSource-mkV1AzureFileVolumeSource v1AzureFileVolumeSourceSecretName v1AzureFileVolumeSourceShareName =- V1AzureFileVolumeSource- { v1AzureFileVolumeSourceReadOnly = Nothing- , v1AzureFileVolumeSourceSecretName- , v1AzureFileVolumeSourceShareName- }---- ** V1Binding--- | V1Binding--- Binding ties one object to another; for example, a pod is bound to a node by a scheduler.-data V1Binding = V1Binding- { v1BindingApiVersion :: !(Maybe Text) -- ^ "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- , v1BindingKind :: !(Maybe Text) -- ^ "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- , v1BindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1BindingTarget :: !(V1ObjectReference) -- ^ /Required/ "target"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Binding-instance A.FromJSON V1Binding where- parseJSON = A.withObject "V1Binding" $ \o ->- V1Binding- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "target")---- | ToJSON V1Binding-instance A.ToJSON V1Binding where- toJSON V1Binding {..} =- _omitNulls- [ "apiVersion" .= v1BindingApiVersion- , "kind" .= v1BindingKind- , "metadata" .= v1BindingMetadata- , "target" .= v1BindingTarget- ]----- | Construct a value of type 'V1Binding' (by applying it's required fields, if any)-mkV1Binding- :: V1ObjectReference -- ^ 'v1BindingTarget' - -> V1Binding-mkV1Binding v1BindingTarget =- V1Binding- { v1BindingApiVersion = Nothing- , v1BindingKind = Nothing- , v1BindingMetadata = Nothing- , v1BindingTarget- }---- ** V1BoundObjectReference--- | V1BoundObjectReference--- BoundObjectReference is a reference to an object that a token is bound to.-data V1BoundObjectReference = V1BoundObjectReference- { v1BoundObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent.- , v1BoundObjectReferenceKind :: !(Maybe Text) -- ^ "kind" - Kind of the referent. Valid kinds are 'Pod' and 'Secret'.- , v1BoundObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent.- , v1BoundObjectReferenceUid :: !(Maybe Text) -- ^ "uid" - UID of the referent.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1BoundObjectReference-instance A.FromJSON V1BoundObjectReference where- parseJSON = A.withObject "V1BoundObjectReference" $ \o ->- V1BoundObjectReference- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "name")- <*> (o .:? "uid")---- | ToJSON V1BoundObjectReference-instance A.ToJSON V1BoundObjectReference where- toJSON V1BoundObjectReference {..} =- _omitNulls- [ "apiVersion" .= v1BoundObjectReferenceApiVersion- , "kind" .= v1BoundObjectReferenceKind- , "name" .= v1BoundObjectReferenceName- , "uid" .= v1BoundObjectReferenceUid- ]----- | Construct a value of type 'V1BoundObjectReference' (by applying it's required fields, if any)-mkV1BoundObjectReference- :: V1BoundObjectReference-mkV1BoundObjectReference =- V1BoundObjectReference- { v1BoundObjectReferenceApiVersion = Nothing- , v1BoundObjectReferenceKind = Nothing- , v1BoundObjectReferenceName = Nothing- , v1BoundObjectReferenceUid = Nothing- }---- ** V1CELDeviceSelector--- | V1CELDeviceSelector--- CELDeviceSelector contains a CEL expression for selecting a device.-data V1CELDeviceSelector = V1CELDeviceSelector- { v1CELDeviceSelectorExpression :: !(Text) -- ^ /Required/ "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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CELDeviceSelector-instance A.FromJSON V1CELDeviceSelector where- parseJSON = A.withObject "V1CELDeviceSelector" $ \o ->- V1CELDeviceSelector- <$> (o .: "expression")---- | ToJSON V1CELDeviceSelector-instance A.ToJSON V1CELDeviceSelector where- toJSON V1CELDeviceSelector {..} =- _omitNulls- [ "expression" .= v1CELDeviceSelectorExpression- ]----- | Construct a value of type 'V1CELDeviceSelector' (by applying it's required fields, if any)-mkV1CELDeviceSelector- :: Text -- ^ 'v1CELDeviceSelectorExpression': 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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.- -> V1CELDeviceSelector-mkV1CELDeviceSelector v1CELDeviceSelectorExpression =- V1CELDeviceSelector- { v1CELDeviceSelectorExpression- }---- ** V1CSIDriver--- | V1CSIDriver--- CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.-data V1CSIDriver = V1CSIDriver- { v1CSIDriverApiVersion :: !(Maybe Text) -- ^ "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- , v1CSIDriverKind :: !(Maybe Text) -- ^ "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- , v1CSIDriverMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1CSIDriverSpec :: !(V1CSIDriverSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSIDriver-instance A.FromJSON V1CSIDriver where- parseJSON = A.withObject "V1CSIDriver" $ \o ->- V1CSIDriver- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1CSIDriver-instance A.ToJSON V1CSIDriver where- toJSON V1CSIDriver {..} =- _omitNulls- [ "apiVersion" .= v1CSIDriverApiVersion- , "kind" .= v1CSIDriverKind- , "metadata" .= v1CSIDriverMetadata- , "spec" .= v1CSIDriverSpec- ]----- | Construct a value of type 'V1CSIDriver' (by applying it's required fields, if any)-mkV1CSIDriver- :: V1CSIDriverSpec -- ^ 'v1CSIDriverSpec' - -> V1CSIDriver-mkV1CSIDriver v1CSIDriverSpec =- V1CSIDriver- { v1CSIDriverApiVersion = Nothing- , v1CSIDriverKind = Nothing- , v1CSIDriverMetadata = Nothing- , v1CSIDriverSpec- }---- ** V1CSIDriverList--- | V1CSIDriverList--- CSIDriverList is a collection of CSIDriver objects.-data V1CSIDriverList = V1CSIDriverList- { v1CSIDriverListApiVersion :: !(Maybe Text) -- ^ "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- , v1CSIDriverListItems :: !([V1CSIDriver]) -- ^ /Required/ "items" - items is the list of CSIDriver- , v1CSIDriverListKind :: !(Maybe Text) -- ^ "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- , v1CSIDriverListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSIDriverList-instance A.FromJSON V1CSIDriverList where- parseJSON = A.withObject "V1CSIDriverList" $ \o ->- V1CSIDriverList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1CSIDriverList-instance A.ToJSON V1CSIDriverList where- toJSON V1CSIDriverList {..} =- _omitNulls- [ "apiVersion" .= v1CSIDriverListApiVersion- , "items" .= v1CSIDriverListItems- , "kind" .= v1CSIDriverListKind- , "metadata" .= v1CSIDriverListMetadata- ]----- | Construct a value of type 'V1CSIDriverList' (by applying it's required fields, if any)-mkV1CSIDriverList- :: [V1CSIDriver] -- ^ 'v1CSIDriverListItems': items is the list of CSIDriver- -> V1CSIDriverList-mkV1CSIDriverList v1CSIDriverListItems =- V1CSIDriverList- { v1CSIDriverListApiVersion = Nothing- , v1CSIDriverListItems- , v1CSIDriverListKind = Nothing- , v1CSIDriverListMetadata = Nothing- }---- ** V1CSIDriverSpec--- | V1CSIDriverSpec--- CSIDriverSpec is the specification of a CSIDriver.-data V1CSIDriverSpec = V1CSIDriverSpec- { v1CSIDriverSpecAttachRequired :: !(Maybe Bool) -- ^ "attachRequired" - attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called. This field is immutable.- , v1CSIDriverSpecFsGroupPolicy :: !(Maybe Text) -- ^ "fsGroupPolicy" - fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field was immutable in Kubernetes < 1.29 and now is mutable. Defaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.- , v1CSIDriverSpecNodeAllocatableUpdatePeriodSeconds :: !(Maybe Integer) -- ^ "nodeAllocatableUpdatePeriodSeconds" - nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds. This is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled. This field is mutable.- , v1CSIDriverSpecPodInfoOnMount :: !(Maybe Bool) -- ^ "podInfoOnMount" - podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume defined by a CSIVolumeSource, otherwise \"false\" \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver. This field was immutable in Kubernetes < 1.29 and now is mutable.- , v1CSIDriverSpecRequiresRepublish :: !(Maybe Bool) -- ^ "requiresRepublish" - requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false. Note: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.- , v1CSIDriverSpecSeLinuxMount :: !(Maybe Bool) -- ^ "seLinuxMount" - seLinuxMount specifies if the CSI driver supports \"-o context\" mount option. When \"true\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context. When \"false\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem. Default is \"false\".- , v1CSIDriverSpecStorageCapacity :: !(Maybe Bool) -- ^ "storageCapacity" - storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information, if set to true. The check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object. Alternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published. This field was immutable in Kubernetes <= 1.22 and now is mutable.- , v1CSIDriverSpecTokenRequests :: !(Maybe [StorageV1TokenRequest]) -- ^ "tokenRequests" - tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": { \"<audience>\": { \"token\": <token>, \"expirationTimestamp\": <expiration timestamp in RFC3339>, }, ... } Note: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.- , v1CSIDriverSpecVolumeLifecycleModes :: !(Maybe [Text]) -- ^ "volumeLifecycleModes" - volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta. This field is immutable.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSIDriverSpec-instance A.FromJSON V1CSIDriverSpec where- parseJSON = A.withObject "V1CSIDriverSpec" $ \o ->- V1CSIDriverSpec- <$> (o .:? "attachRequired")- <*> (o .:? "fsGroupPolicy")- <*> (o .:? "nodeAllocatableUpdatePeriodSeconds")- <*> (o .:? "podInfoOnMount")- <*> (o .:? "requiresRepublish")- <*> (o .:? "seLinuxMount")- <*> (o .:? "storageCapacity")- <*> (o .:? "tokenRequests")- <*> (o .:? "volumeLifecycleModes")---- | ToJSON V1CSIDriverSpec-instance A.ToJSON V1CSIDriverSpec where- toJSON V1CSIDriverSpec {..} =- _omitNulls- [ "attachRequired" .= v1CSIDriverSpecAttachRequired- , "fsGroupPolicy" .= v1CSIDriverSpecFsGroupPolicy- , "nodeAllocatableUpdatePeriodSeconds" .= v1CSIDriverSpecNodeAllocatableUpdatePeriodSeconds- , "podInfoOnMount" .= v1CSIDriverSpecPodInfoOnMount- , "requiresRepublish" .= v1CSIDriverSpecRequiresRepublish- , "seLinuxMount" .= v1CSIDriverSpecSeLinuxMount- , "storageCapacity" .= v1CSIDriverSpecStorageCapacity- , "tokenRequests" .= v1CSIDriverSpecTokenRequests- , "volumeLifecycleModes" .= v1CSIDriverSpecVolumeLifecycleModes- ]----- | Construct a value of type 'V1CSIDriverSpec' (by applying it's required fields, if any)-mkV1CSIDriverSpec- :: V1CSIDriverSpec-mkV1CSIDriverSpec =- V1CSIDriverSpec- { v1CSIDriverSpecAttachRequired = Nothing- , v1CSIDriverSpecFsGroupPolicy = Nothing- , v1CSIDriverSpecNodeAllocatableUpdatePeriodSeconds = Nothing- , v1CSIDriverSpecPodInfoOnMount = Nothing- , v1CSIDriverSpecRequiresRepublish = Nothing- , v1CSIDriverSpecSeLinuxMount = Nothing- , v1CSIDriverSpecStorageCapacity = Nothing- , v1CSIDriverSpecTokenRequests = Nothing- , v1CSIDriverSpecVolumeLifecycleModes = Nothing- }---- ** V1CSINode--- | V1CSINode--- CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.-data V1CSINode = V1CSINode- { v1CSINodeApiVersion :: !(Maybe Text) -- ^ "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- , v1CSINodeKind :: !(Maybe Text) -- ^ "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- , v1CSINodeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1CSINodeSpec :: !(V1CSINodeSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSINode-instance A.FromJSON V1CSINode where- parseJSON = A.withObject "V1CSINode" $ \o ->- V1CSINode- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1CSINode-instance A.ToJSON V1CSINode where- toJSON V1CSINode {..} =- _omitNulls- [ "apiVersion" .= v1CSINodeApiVersion- , "kind" .= v1CSINodeKind- , "metadata" .= v1CSINodeMetadata- , "spec" .= v1CSINodeSpec- ]----- | Construct a value of type 'V1CSINode' (by applying it's required fields, if any)-mkV1CSINode- :: V1CSINodeSpec -- ^ 'v1CSINodeSpec' - -> V1CSINode-mkV1CSINode v1CSINodeSpec =- V1CSINode- { v1CSINodeApiVersion = Nothing- , v1CSINodeKind = Nothing- , v1CSINodeMetadata = Nothing- , v1CSINodeSpec- }---- ** V1CSINodeDriver--- | V1CSINodeDriver--- CSINodeDriver holds information about the specification of one CSI driver installed on a node-data V1CSINodeDriver = V1CSINodeDriver- { v1CSINodeDriverAllocatable :: !(Maybe V1VolumeNodeResources) -- ^ "allocatable"- , v1CSINodeDriverName :: !(Text) -- ^ /Required/ "name" - name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.- , v1CSINodeDriverNodeId :: !(Text) -- ^ /Required/ "nodeID" - nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.- , v1CSINodeDriverTopologyKeys :: !(Maybe [Text]) -- ^ "topologyKeys" - topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSINodeDriver-instance A.FromJSON V1CSINodeDriver where- parseJSON = A.withObject "V1CSINodeDriver" $ \o ->- V1CSINodeDriver- <$> (o .:? "allocatable")- <*> (o .: "name")- <*> (o .: "nodeID")- <*> (o .:? "topologyKeys")---- | ToJSON V1CSINodeDriver-instance A.ToJSON V1CSINodeDriver where- toJSON V1CSINodeDriver {..} =- _omitNulls- [ "allocatable" .= v1CSINodeDriverAllocatable- , "name" .= v1CSINodeDriverName- , "nodeID" .= v1CSINodeDriverNodeId- , "topologyKeys" .= v1CSINodeDriverTopologyKeys- ]----- | Construct a value of type 'V1CSINodeDriver' (by applying it's required fields, if any)-mkV1CSINodeDriver- :: Text -- ^ 'v1CSINodeDriverName': name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.- -> Text -- ^ 'v1CSINodeDriverNodeId': nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.- -> V1CSINodeDriver-mkV1CSINodeDriver v1CSINodeDriverName v1CSINodeDriverNodeId =- V1CSINodeDriver- { v1CSINodeDriverAllocatable = Nothing- , v1CSINodeDriverName- , v1CSINodeDriverNodeId- , v1CSINodeDriverTopologyKeys = Nothing- }---- ** V1CSINodeList--- | V1CSINodeList--- CSINodeList is a collection of CSINode objects.-data V1CSINodeList = V1CSINodeList- { v1CSINodeListApiVersion :: !(Maybe Text) -- ^ "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- , v1CSINodeListItems :: !([V1CSINode]) -- ^ /Required/ "items" - items is the list of CSINode- , v1CSINodeListKind :: !(Maybe Text) -- ^ "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- , v1CSINodeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSINodeList-instance A.FromJSON V1CSINodeList where- parseJSON = A.withObject "V1CSINodeList" $ \o ->- V1CSINodeList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1CSINodeList-instance A.ToJSON V1CSINodeList where- toJSON V1CSINodeList {..} =- _omitNulls- [ "apiVersion" .= v1CSINodeListApiVersion- , "items" .= v1CSINodeListItems- , "kind" .= v1CSINodeListKind- , "metadata" .= v1CSINodeListMetadata- ]----- | Construct a value of type 'V1CSINodeList' (by applying it's required fields, if any)-mkV1CSINodeList- :: [V1CSINode] -- ^ 'v1CSINodeListItems': items is the list of CSINode- -> V1CSINodeList-mkV1CSINodeList v1CSINodeListItems =- V1CSINodeList- { v1CSINodeListApiVersion = Nothing- , v1CSINodeListItems- , v1CSINodeListKind = Nothing- , v1CSINodeListMetadata = Nothing- }---- ** V1CSINodeSpec--- | V1CSINodeSpec--- CSINodeSpec holds information about the specification of all CSI drivers installed on a node-data V1CSINodeSpec = V1CSINodeSpec- { v1CSINodeSpecDrivers :: !([V1CSINodeDriver]) -- ^ /Required/ "drivers" - drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSINodeSpec-instance A.FromJSON V1CSINodeSpec where- parseJSON = A.withObject "V1CSINodeSpec" $ \o ->- V1CSINodeSpec- <$> (o .: "drivers")---- | ToJSON V1CSINodeSpec-instance A.ToJSON V1CSINodeSpec where- toJSON V1CSINodeSpec {..} =- _omitNulls- [ "drivers" .= v1CSINodeSpecDrivers- ]----- | Construct a value of type 'V1CSINodeSpec' (by applying it's required fields, if any)-mkV1CSINodeSpec- :: [V1CSINodeDriver] -- ^ 'v1CSINodeSpecDrivers': drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.- -> V1CSINodeSpec-mkV1CSINodeSpec v1CSINodeSpecDrivers =- V1CSINodeSpec- { v1CSINodeSpecDrivers- }---- ** V1CSIPersistentVolumeSource--- | V1CSIPersistentVolumeSource--- Represents storage that is managed by an external CSI volume driver-data V1CSIPersistentVolumeSource = V1CSIPersistentVolumeSource- { v1CSIPersistentVolumeSourceControllerExpandSecretRef :: !(Maybe V1SecretReference) -- ^ "controllerExpandSecretRef"- , v1CSIPersistentVolumeSourceControllerPublishSecretRef :: !(Maybe V1SecretReference) -- ^ "controllerPublishSecretRef"- , v1CSIPersistentVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the driver to use for this volume. Required.- , v1CSIPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".- , v1CSIPersistentVolumeSourceNodeExpandSecretRef :: !(Maybe V1SecretReference) -- ^ "nodeExpandSecretRef"- , v1CSIPersistentVolumeSourceNodePublishSecretRef :: !(Maybe V1SecretReference) -- ^ "nodePublishSecretRef"- , v1CSIPersistentVolumeSourceNodeStageSecretRef :: !(Maybe V1SecretReference) -- ^ "nodeStageSecretRef"- , v1CSIPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).- , v1CSIPersistentVolumeSourceVolumeAttributes :: !(Maybe (Map.Map String Text)) -- ^ "volumeAttributes" - volumeAttributes of the volume to publish.- , v1CSIPersistentVolumeSourceVolumeHandle :: !(Text) -- ^ /Required/ "volumeHandle" - volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSIPersistentVolumeSource-instance A.FromJSON V1CSIPersistentVolumeSource where- parseJSON = A.withObject "V1CSIPersistentVolumeSource" $ \o ->- V1CSIPersistentVolumeSource- <$> (o .:? "controllerExpandSecretRef")- <*> (o .:? "controllerPublishSecretRef")- <*> (o .: "driver")- <*> (o .:? "fsType")- <*> (o .:? "nodeExpandSecretRef")- <*> (o .:? "nodePublishSecretRef")- <*> (o .:? "nodeStageSecretRef")- <*> (o .:? "readOnly")- <*> (o .:? "volumeAttributes")- <*> (o .: "volumeHandle")---- | ToJSON V1CSIPersistentVolumeSource-instance A.ToJSON V1CSIPersistentVolumeSource where- toJSON V1CSIPersistentVolumeSource {..} =- _omitNulls- [ "controllerExpandSecretRef" .= v1CSIPersistentVolumeSourceControllerExpandSecretRef- , "controllerPublishSecretRef" .= v1CSIPersistentVolumeSourceControllerPublishSecretRef- , "driver" .= v1CSIPersistentVolumeSourceDriver- , "fsType" .= v1CSIPersistentVolumeSourceFsType- , "nodeExpandSecretRef" .= v1CSIPersistentVolumeSourceNodeExpandSecretRef- , "nodePublishSecretRef" .= v1CSIPersistentVolumeSourceNodePublishSecretRef- , "nodeStageSecretRef" .= v1CSIPersistentVolumeSourceNodeStageSecretRef- , "readOnly" .= v1CSIPersistentVolumeSourceReadOnly- , "volumeAttributes" .= v1CSIPersistentVolumeSourceVolumeAttributes- , "volumeHandle" .= v1CSIPersistentVolumeSourceVolumeHandle- ]----- | Construct a value of type 'V1CSIPersistentVolumeSource' (by applying it's required fields, if any)-mkV1CSIPersistentVolumeSource- :: Text -- ^ 'v1CSIPersistentVolumeSourceDriver': driver is the name of the driver to use for this volume. Required.- -> Text -- ^ 'v1CSIPersistentVolumeSourceVolumeHandle': volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.- -> V1CSIPersistentVolumeSource-mkV1CSIPersistentVolumeSource v1CSIPersistentVolumeSourceDriver v1CSIPersistentVolumeSourceVolumeHandle =- V1CSIPersistentVolumeSource- { v1CSIPersistentVolumeSourceControllerExpandSecretRef = Nothing- , v1CSIPersistentVolumeSourceControllerPublishSecretRef = Nothing- , v1CSIPersistentVolumeSourceDriver- , v1CSIPersistentVolumeSourceFsType = Nothing- , v1CSIPersistentVolumeSourceNodeExpandSecretRef = Nothing- , v1CSIPersistentVolumeSourceNodePublishSecretRef = Nothing- , v1CSIPersistentVolumeSourceNodeStageSecretRef = Nothing- , v1CSIPersistentVolumeSourceReadOnly = Nothing- , v1CSIPersistentVolumeSourceVolumeAttributes = Nothing- , v1CSIPersistentVolumeSourceVolumeHandle- }---- ** V1CSIStorageCapacity--- | V1CSIStorageCapacity--- CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes. For example this can express things like: - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\" - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\" The following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero The producer of these objects can decide which approach is more suitable. They are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.-data V1CSIStorageCapacity = V1CSIStorageCapacity- { v1CSIStorageCapacityApiVersion :: !(Maybe Text) -- ^ "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- , v1CSIStorageCapacityCapacity :: !(Maybe Quantity) -- ^ "capacity"- , v1CSIStorageCapacityKind :: !(Maybe Text) -- ^ "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- , v1CSIStorageCapacityMaximumVolumeSize :: !(Maybe Quantity) -- ^ "maximumVolumeSize"- , v1CSIStorageCapacityMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1CSIStorageCapacityNodeTopology :: !(Maybe V1LabelSelector) -- ^ "nodeTopology"- , v1CSIStorageCapacityStorageClassName :: !(Text) -- ^ /Required/ "storageClassName" - storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSIStorageCapacity-instance A.FromJSON V1CSIStorageCapacity where- parseJSON = A.withObject "V1CSIStorageCapacity" $ \o ->- V1CSIStorageCapacity- <$> (o .:? "apiVersion")- <*> (o .:? "capacity")- <*> (o .:? "kind")- <*> (o .:? "maximumVolumeSize")- <*> (o .:? "metadata")- <*> (o .:? "nodeTopology")- <*> (o .: "storageClassName")---- | ToJSON V1CSIStorageCapacity-instance A.ToJSON V1CSIStorageCapacity where- toJSON V1CSIStorageCapacity {..} =- _omitNulls- [ "apiVersion" .= v1CSIStorageCapacityApiVersion- , "capacity" .= v1CSIStorageCapacityCapacity- , "kind" .= v1CSIStorageCapacityKind- , "maximumVolumeSize" .= v1CSIStorageCapacityMaximumVolumeSize- , "metadata" .= v1CSIStorageCapacityMetadata- , "nodeTopology" .= v1CSIStorageCapacityNodeTopology- , "storageClassName" .= v1CSIStorageCapacityStorageClassName- ]----- | Construct a value of type 'V1CSIStorageCapacity' (by applying it's required fields, if any)-mkV1CSIStorageCapacity- :: Text -- ^ 'v1CSIStorageCapacityStorageClassName': storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.- -> V1CSIStorageCapacity-mkV1CSIStorageCapacity v1CSIStorageCapacityStorageClassName =- V1CSIStorageCapacity- { v1CSIStorageCapacityApiVersion = Nothing- , v1CSIStorageCapacityCapacity = Nothing- , v1CSIStorageCapacityKind = Nothing- , v1CSIStorageCapacityMaximumVolumeSize = Nothing- , v1CSIStorageCapacityMetadata = Nothing- , v1CSIStorageCapacityNodeTopology = Nothing- , v1CSIStorageCapacityStorageClassName- }---- ** V1CSIStorageCapacityList--- | V1CSIStorageCapacityList--- CSIStorageCapacityList is a collection of CSIStorageCapacity objects.-data V1CSIStorageCapacityList = V1CSIStorageCapacityList- { v1CSIStorageCapacityListApiVersion :: !(Maybe Text) -- ^ "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- , v1CSIStorageCapacityListItems :: !([V1CSIStorageCapacity]) -- ^ /Required/ "items" - items is the list of CSIStorageCapacity objects.- , v1CSIStorageCapacityListKind :: !(Maybe Text) -- ^ "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- , v1CSIStorageCapacityListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSIStorageCapacityList-instance A.FromJSON V1CSIStorageCapacityList where- parseJSON = A.withObject "V1CSIStorageCapacityList" $ \o ->- V1CSIStorageCapacityList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1CSIStorageCapacityList-instance A.ToJSON V1CSIStorageCapacityList where- toJSON V1CSIStorageCapacityList {..} =- _omitNulls- [ "apiVersion" .= v1CSIStorageCapacityListApiVersion- , "items" .= v1CSIStorageCapacityListItems- , "kind" .= v1CSIStorageCapacityListKind- , "metadata" .= v1CSIStorageCapacityListMetadata- ]----- | Construct a value of type 'V1CSIStorageCapacityList' (by applying it's required fields, if any)-mkV1CSIStorageCapacityList- :: [V1CSIStorageCapacity] -- ^ 'v1CSIStorageCapacityListItems': items is the list of CSIStorageCapacity objects.- -> V1CSIStorageCapacityList-mkV1CSIStorageCapacityList v1CSIStorageCapacityListItems =- V1CSIStorageCapacityList- { v1CSIStorageCapacityListApiVersion = Nothing- , v1CSIStorageCapacityListItems- , v1CSIStorageCapacityListKind = Nothing- , v1CSIStorageCapacityListMetadata = Nothing- }---- ** V1CSIVolumeSource--- | V1CSIVolumeSource--- Represents a source location of a volume to mount, managed by an external CSI driver-data V1CSIVolumeSource = V1CSIVolumeSource- { v1CSIVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.- , v1CSIVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.- , v1CSIVolumeSourceNodePublishSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "nodePublishSecretRef"- , v1CSIVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).- , v1CSIVolumeSourceVolumeAttributes :: !(Maybe (Map.Map String Text)) -- ^ "volumeAttributes" - volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CSIVolumeSource-instance A.FromJSON V1CSIVolumeSource where- parseJSON = A.withObject "V1CSIVolumeSource" $ \o ->- V1CSIVolumeSource- <$> (o .: "driver")- <*> (o .:? "fsType")- <*> (o .:? "nodePublishSecretRef")- <*> (o .:? "readOnly")- <*> (o .:? "volumeAttributes")---- | ToJSON V1CSIVolumeSource-instance A.ToJSON V1CSIVolumeSource where- toJSON V1CSIVolumeSource {..} =- _omitNulls- [ "driver" .= v1CSIVolumeSourceDriver- , "fsType" .= v1CSIVolumeSourceFsType- , "nodePublishSecretRef" .= v1CSIVolumeSourceNodePublishSecretRef- , "readOnly" .= v1CSIVolumeSourceReadOnly- , "volumeAttributes" .= v1CSIVolumeSourceVolumeAttributes- ]----- | Construct a value of type 'V1CSIVolumeSource' (by applying it's required fields, if any)-mkV1CSIVolumeSource- :: Text -- ^ 'v1CSIVolumeSourceDriver': driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.- -> V1CSIVolumeSource-mkV1CSIVolumeSource v1CSIVolumeSourceDriver =- V1CSIVolumeSource- { v1CSIVolumeSourceDriver- , v1CSIVolumeSourceFsType = Nothing- , v1CSIVolumeSourceNodePublishSecretRef = Nothing- , v1CSIVolumeSourceReadOnly = Nothing- , v1CSIVolumeSourceVolumeAttributes = Nothing- }---- ** V1Capabilities--- | V1Capabilities--- Adds and removes POSIX capabilities from running containers.-data V1Capabilities = V1Capabilities- { v1CapabilitiesAdd :: !(Maybe [Text]) -- ^ "add" - Added capabilities- , v1CapabilitiesDrop :: !(Maybe [Text]) -- ^ "drop" - Removed capabilities- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Capabilities-instance A.FromJSON V1Capabilities where- parseJSON = A.withObject "V1Capabilities" $ \o ->- V1Capabilities- <$> (o .:? "add")- <*> (o .:? "drop")---- | ToJSON V1Capabilities-instance A.ToJSON V1Capabilities where- toJSON V1Capabilities {..} =- _omitNulls- [ "add" .= v1CapabilitiesAdd- , "drop" .= v1CapabilitiesDrop- ]----- | Construct a value of type 'V1Capabilities' (by applying it's required fields, if any)-mkV1Capabilities- :: V1Capabilities-mkV1Capabilities =- V1Capabilities- { v1CapabilitiesAdd = Nothing- , v1CapabilitiesDrop = Nothing- }---- ** V1CapacityRequestPolicy--- | V1CapacityRequestPolicy--- CapacityRequestPolicy defines how requests consume device capacity. Must not set more than one ValidRequestValues.-data V1CapacityRequestPolicy = V1CapacityRequestPolicy- { v1CapacityRequestPolicyDefault :: !(Maybe Quantity) -- ^ "default"- , v1CapacityRequestPolicyValidRange :: !(Maybe V1CapacityRequestPolicyRange) -- ^ "validRange"- , v1CapacityRequestPolicyValidValues :: !(Maybe [Quantity]) -- ^ "validValues" - ValidValues defines a set of acceptable quantity values in consuming requests. Must not contain more than 10 entries. Must be sorted in ascending order. If this field is set, Default must be defined and it must be included in ValidValues list. If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≤ max(validValues). If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CapacityRequestPolicy-instance A.FromJSON V1CapacityRequestPolicy where- parseJSON = A.withObject "V1CapacityRequestPolicy" $ \o ->- V1CapacityRequestPolicy- <$> (o .:? "default")- <*> (o .:? "validRange")- <*> (o .:? "validValues")---- | ToJSON V1CapacityRequestPolicy-instance A.ToJSON V1CapacityRequestPolicy where- toJSON V1CapacityRequestPolicy {..} =- _omitNulls- [ "default" .= v1CapacityRequestPolicyDefault- , "validRange" .= v1CapacityRequestPolicyValidRange- , "validValues" .= v1CapacityRequestPolicyValidValues- ]----- | Construct a value of type 'V1CapacityRequestPolicy' (by applying it's required fields, if any)-mkV1CapacityRequestPolicy- :: V1CapacityRequestPolicy-mkV1CapacityRequestPolicy =- V1CapacityRequestPolicy- { v1CapacityRequestPolicyDefault = Nothing- , v1CapacityRequestPolicyValidRange = Nothing- , v1CapacityRequestPolicyValidValues = Nothing- }---- ** V1CapacityRequestPolicyRange--- | V1CapacityRequestPolicyRange--- CapacityRequestPolicyRange defines a valid range for consumable capacity values. - If the requested amount is less than Min, it is rounded up to the Min value. - If Step is set and the requested amount is between Min and Max but not aligned with Step, it will be rounded up to the next value equal to Min + (n * Step). - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, and the device cannot be allocated.-data V1CapacityRequestPolicyRange = V1CapacityRequestPolicyRange- { v1CapacityRequestPolicyRangeMax :: !(Maybe Quantity) -- ^ "max"- , v1CapacityRequestPolicyRangeMin :: !(Quantity) -- ^ /Required/ "min"- , v1CapacityRequestPolicyRangeStep :: !(Maybe Quantity) -- ^ "step"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CapacityRequestPolicyRange-instance A.FromJSON V1CapacityRequestPolicyRange where- parseJSON = A.withObject "V1CapacityRequestPolicyRange" $ \o ->- V1CapacityRequestPolicyRange- <$> (o .:? "max")- <*> (o .: "min")- <*> (o .:? "step")---- | ToJSON V1CapacityRequestPolicyRange-instance A.ToJSON V1CapacityRequestPolicyRange where- toJSON V1CapacityRequestPolicyRange {..} =- _omitNulls- [ "max" .= v1CapacityRequestPolicyRangeMax- , "min" .= v1CapacityRequestPolicyRangeMin- , "step" .= v1CapacityRequestPolicyRangeStep- ]----- | Construct a value of type 'V1CapacityRequestPolicyRange' (by applying it's required fields, if any)-mkV1CapacityRequestPolicyRange- :: Quantity -- ^ 'v1CapacityRequestPolicyRangeMin' - -> V1CapacityRequestPolicyRange-mkV1CapacityRequestPolicyRange v1CapacityRequestPolicyRangeMin =- V1CapacityRequestPolicyRange- { v1CapacityRequestPolicyRangeMax = Nothing- , v1CapacityRequestPolicyRangeMin- , v1CapacityRequestPolicyRangeStep = Nothing- }---- ** V1CapacityRequirements--- | V1CapacityRequirements--- CapacityRequirements defines the capacity requirements for a specific device request.-data V1CapacityRequirements = V1CapacityRequirements- { v1CapacityRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[<domain>].<name>.compareTo(quantity(<request quantity>)) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid value—because it exceeds what the requestPolicy allows— the device is considered ineligible for allocation. For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity (i.e., the whole device is claimed). - If a requestPolicy is set, the default consumed capacity is determined according to that policy. If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CapacityRequirements-instance A.FromJSON V1CapacityRequirements where- parseJSON = A.withObject "V1CapacityRequirements" $ \o ->- V1CapacityRequirements- <$> (o .:? "requests")---- | ToJSON V1CapacityRequirements-instance A.ToJSON V1CapacityRequirements where- toJSON V1CapacityRequirements {..} =- _omitNulls- [ "requests" .= v1CapacityRequirementsRequests- ]----- | Construct a value of type 'V1CapacityRequirements' (by applying it's required fields, if any)-mkV1CapacityRequirements- :: V1CapacityRequirements-mkV1CapacityRequirements =- V1CapacityRequirements- { v1CapacityRequirementsRequests = Nothing- }---- ** V1CephFSPersistentVolumeSource--- | V1CephFSPersistentVolumeSource--- Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.-data V1CephFSPersistentVolumeSource = V1CephFSPersistentVolumeSource- { v1CephFSPersistentVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- , v1CephFSPersistentVolumeSourcePath :: !(Maybe Text) -- ^ "path" - path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /- , v1CephFSPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- , v1CephFSPersistentVolumeSourceSecretFile :: !(Maybe Text) -- ^ "secretFile" - secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- , v1CephFSPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"- , v1CephFSPersistentVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CephFSPersistentVolumeSource-instance A.FromJSON V1CephFSPersistentVolumeSource where- parseJSON = A.withObject "V1CephFSPersistentVolumeSource" $ \o ->- V1CephFSPersistentVolumeSource- <$> (o .: "monitors")- <*> (o .:? "path")- <*> (o .:? "readOnly")- <*> (o .:? "secretFile")- <*> (o .:? "secretRef")- <*> (o .:? "user")---- | ToJSON V1CephFSPersistentVolumeSource-instance A.ToJSON V1CephFSPersistentVolumeSource where- toJSON V1CephFSPersistentVolumeSource {..} =- _omitNulls- [ "monitors" .= v1CephFSPersistentVolumeSourceMonitors- , "path" .= v1CephFSPersistentVolumeSourcePath- , "readOnly" .= v1CephFSPersistentVolumeSourceReadOnly- , "secretFile" .= v1CephFSPersistentVolumeSourceSecretFile- , "secretRef" .= v1CephFSPersistentVolumeSourceSecretRef- , "user" .= v1CephFSPersistentVolumeSourceUser- ]----- | Construct a value of type 'V1CephFSPersistentVolumeSource' (by applying it's required fields, if any)-mkV1CephFSPersistentVolumeSource- :: [Text] -- ^ 'v1CephFSPersistentVolumeSourceMonitors': monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- -> V1CephFSPersistentVolumeSource-mkV1CephFSPersistentVolumeSource v1CephFSPersistentVolumeSourceMonitors =- V1CephFSPersistentVolumeSource- { v1CephFSPersistentVolumeSourceMonitors- , v1CephFSPersistentVolumeSourcePath = Nothing- , v1CephFSPersistentVolumeSourceReadOnly = Nothing- , v1CephFSPersistentVolumeSourceSecretFile = Nothing- , v1CephFSPersistentVolumeSourceSecretRef = Nothing- , v1CephFSPersistentVolumeSourceUser = Nothing- }---- ** V1CephFSVolumeSource--- | V1CephFSVolumeSource--- Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.-data V1CephFSVolumeSource = V1CephFSVolumeSource- { v1CephFSVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- , v1CephFSVolumeSourcePath :: !(Maybe Text) -- ^ "path" - path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /- , v1CephFSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- , v1CephFSVolumeSourceSecretFile :: !(Maybe Text) -- ^ "secretFile" - secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- , v1CephFSVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"- , v1CephFSVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CephFSVolumeSource-instance A.FromJSON V1CephFSVolumeSource where- parseJSON = A.withObject "V1CephFSVolumeSource" $ \o ->- V1CephFSVolumeSource- <$> (o .: "monitors")- <*> (o .:? "path")- <*> (o .:? "readOnly")- <*> (o .:? "secretFile")- <*> (o .:? "secretRef")- <*> (o .:? "user")---- | ToJSON V1CephFSVolumeSource-instance A.ToJSON V1CephFSVolumeSource where- toJSON V1CephFSVolumeSource {..} =- _omitNulls- [ "monitors" .= v1CephFSVolumeSourceMonitors- , "path" .= v1CephFSVolumeSourcePath- , "readOnly" .= v1CephFSVolumeSourceReadOnly- , "secretFile" .= v1CephFSVolumeSourceSecretFile- , "secretRef" .= v1CephFSVolumeSourceSecretRef- , "user" .= v1CephFSVolumeSourceUser- ]----- | Construct a value of type 'V1CephFSVolumeSource' (by applying it's required fields, if any)-mkV1CephFSVolumeSource- :: [Text] -- ^ 'v1CephFSVolumeSourceMonitors': monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it- -> V1CephFSVolumeSource-mkV1CephFSVolumeSource v1CephFSVolumeSourceMonitors =- V1CephFSVolumeSource- { v1CephFSVolumeSourceMonitors- , v1CephFSVolumeSourcePath = Nothing- , v1CephFSVolumeSourceReadOnly = Nothing- , v1CephFSVolumeSourceSecretFile = Nothing- , v1CephFSVolumeSourceSecretRef = Nothing- , v1CephFSVolumeSourceUser = Nothing- }---- ** V1CertificateSigningRequest--- | V1CertificateSigningRequest--- CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued. Kubelets use this API to obtain: 1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName). 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName). This API can be used to request client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client\" signerName), or to obtain certificates from custom non-Kubernetes signers.-data V1CertificateSigningRequest = V1CertificateSigningRequest- { v1CertificateSigningRequestApiVersion :: !(Maybe Text) -- ^ "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- , v1CertificateSigningRequestKind :: !(Maybe Text) -- ^ "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- , v1CertificateSigningRequestMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1CertificateSigningRequestSpec :: !(V1CertificateSigningRequestSpec) -- ^ /Required/ "spec"- , v1CertificateSigningRequestStatus :: !(Maybe V1CertificateSigningRequestStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CertificateSigningRequest-instance A.FromJSON V1CertificateSigningRequest where- parseJSON = A.withObject "V1CertificateSigningRequest" $ \o ->- V1CertificateSigningRequest- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1CertificateSigningRequest-instance A.ToJSON V1CertificateSigningRequest where- toJSON V1CertificateSigningRequest {..} =- _omitNulls- [ "apiVersion" .= v1CertificateSigningRequestApiVersion- , "kind" .= v1CertificateSigningRequestKind- , "metadata" .= v1CertificateSigningRequestMetadata- , "spec" .= v1CertificateSigningRequestSpec- , "status" .= v1CertificateSigningRequestStatus- ]----- | Construct a value of type 'V1CertificateSigningRequest' (by applying it's required fields, if any)-mkV1CertificateSigningRequest- :: V1CertificateSigningRequestSpec -- ^ 'v1CertificateSigningRequestSpec' - -> V1CertificateSigningRequest-mkV1CertificateSigningRequest v1CertificateSigningRequestSpec =- V1CertificateSigningRequest- { v1CertificateSigningRequestApiVersion = Nothing- , v1CertificateSigningRequestKind = Nothing- , v1CertificateSigningRequestMetadata = Nothing- , v1CertificateSigningRequestSpec- , v1CertificateSigningRequestStatus = Nothing- }---- ** V1CertificateSigningRequestCondition--- | V1CertificateSigningRequestCondition--- CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object-data V1CertificateSigningRequestCondition = V1CertificateSigningRequestCondition- { v1CertificateSigningRequestConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.- , v1CertificateSigningRequestConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - lastUpdateTime is the time of the last update to this condition- , v1CertificateSigningRequestConditionMessage :: !(Maybe Text) -- ^ "message" - message contains a human readable message with details about the request state- , v1CertificateSigningRequestConditionReason :: !(Maybe Text) -- ^ "reason" - reason indicates a brief reason for the request state- , v1CertificateSigningRequestConditionStatus :: !(Text) -- ^ /Required/ "status" - status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".- , v1CertificateSigningRequestConditionType :: !(Text) -- ^ /Required/ "type" - type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\". An \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer. A \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer. A \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate. Approved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added. Only one condition of a given type is allowed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CertificateSigningRequestCondition-instance A.FromJSON V1CertificateSigningRequestCondition where- parseJSON = A.withObject "V1CertificateSigningRequestCondition" $ \o ->- V1CertificateSigningRequestCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "lastUpdateTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1CertificateSigningRequestCondition-instance A.ToJSON V1CertificateSigningRequestCondition where- toJSON V1CertificateSigningRequestCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1CertificateSigningRequestConditionLastTransitionTime- , "lastUpdateTime" .= v1CertificateSigningRequestConditionLastUpdateTime- , "message" .= v1CertificateSigningRequestConditionMessage- , "reason" .= v1CertificateSigningRequestConditionReason- , "status" .= v1CertificateSigningRequestConditionStatus- , "type" .= v1CertificateSigningRequestConditionType- ]----- | Construct a value of type 'V1CertificateSigningRequestCondition' (by applying it's required fields, if any)-mkV1CertificateSigningRequestCondition- :: Text -- ^ 'v1CertificateSigningRequestConditionStatus': status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".- -> Text -- ^ 'v1CertificateSigningRequestConditionType': type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\". An \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer. A \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer. A \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate. Approved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added. Only one condition of a given type is allowed.- -> V1CertificateSigningRequestCondition-mkV1CertificateSigningRequestCondition v1CertificateSigningRequestConditionStatus v1CertificateSigningRequestConditionType =- V1CertificateSigningRequestCondition- { v1CertificateSigningRequestConditionLastTransitionTime = Nothing- , v1CertificateSigningRequestConditionLastUpdateTime = Nothing- , v1CertificateSigningRequestConditionMessage = Nothing- , v1CertificateSigningRequestConditionReason = Nothing- , v1CertificateSigningRequestConditionStatus- , v1CertificateSigningRequestConditionType- }---- ** V1CertificateSigningRequestList--- | V1CertificateSigningRequestList--- CertificateSigningRequestList is a collection of CertificateSigningRequest objects-data V1CertificateSigningRequestList = V1CertificateSigningRequestList- { v1CertificateSigningRequestListApiVersion :: !(Maybe Text) -- ^ "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- , v1CertificateSigningRequestListItems :: !([V1CertificateSigningRequest]) -- ^ /Required/ "items" - items is a collection of CertificateSigningRequest objects- , v1CertificateSigningRequestListKind :: !(Maybe Text) -- ^ "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- , v1CertificateSigningRequestListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CertificateSigningRequestList-instance A.FromJSON V1CertificateSigningRequestList where- parseJSON = A.withObject "V1CertificateSigningRequestList" $ \o ->- V1CertificateSigningRequestList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1CertificateSigningRequestList-instance A.ToJSON V1CertificateSigningRequestList where- toJSON V1CertificateSigningRequestList {..} =- _omitNulls- [ "apiVersion" .= v1CertificateSigningRequestListApiVersion- , "items" .= v1CertificateSigningRequestListItems- , "kind" .= v1CertificateSigningRequestListKind- , "metadata" .= v1CertificateSigningRequestListMetadata- ]----- | Construct a value of type 'V1CertificateSigningRequestList' (by applying it's required fields, if any)-mkV1CertificateSigningRequestList- :: [V1CertificateSigningRequest] -- ^ 'v1CertificateSigningRequestListItems': items is a collection of CertificateSigningRequest objects- -> V1CertificateSigningRequestList-mkV1CertificateSigningRequestList v1CertificateSigningRequestListItems =- V1CertificateSigningRequestList- { v1CertificateSigningRequestListApiVersion = Nothing- , v1CertificateSigningRequestListItems- , v1CertificateSigningRequestListKind = Nothing- , v1CertificateSigningRequestListMetadata = Nothing- }---- ** V1CertificateSigningRequestSpec--- | V1CertificateSigningRequestSpec--- CertificateSigningRequestSpec contains the certificate request.-data V1CertificateSigningRequestSpec = V1CertificateSigningRequestSpec- { v1CertificateSigningRequestSpecExpirationSeconds :: !(Maybe Int) -- ^ "expirationSeconds" - expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration. The v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager. Certificate signers may not honor this field for various reasons: 1. Old signer that is unaware of the field (such as the in-tree implementations prior to v1.22) 2. Signer whose configured maximum is shorter than the requested duration 3. Signer whose configured minimum is longer than the requested duration The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.- , v1CertificateSigningRequestSpecExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.- , v1CertificateSigningRequestSpecGroups :: !(Maybe [Text]) -- ^ "groups" - groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.- , v1CertificateSigningRequestSpecRequest :: !(ByteArray) -- ^ /Required/ "request" - request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.- , v1CertificateSigningRequestSpecSignerName :: !(Text) -- ^ /Required/ "signerName" - signerName indicates the requested signer, and is a qualified name. List/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector. Well-known Kubernetes signers are: 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver. Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager. 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver. Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager. 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely. Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager. More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers Custom signerNames can also be specified. The signer defines: 1. Trust distribution: how trust (CA bundles) are distributed. 2. Permitted subjects: and behavior when a disallowed subject is requested. 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested. 4. Required, permitted, or forbidden key usages / extended key usages. 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin. 6. Whether or not requests for CA certificates are allowed.- , v1CertificateSigningRequestSpecUid :: !(Maybe Text) -- ^ "uid" - uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.- , v1CertificateSigningRequestSpecUsages :: !(Maybe [Text]) -- ^ "usages" - usages specifies a set of key usages requested in the issued certificate. Requests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\". Requests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\". Valid values are: \"signing\", \"digital signature\", \"content commitment\", \"key encipherment\", \"key agreement\", \"data encipherment\", \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\", \"server auth\", \"client auth\", \"code signing\", \"email protection\", \"s/mime\", \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\", \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"- , v1CertificateSigningRequestSpecUsername :: !(Maybe Text) -- ^ "username" - username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CertificateSigningRequestSpec-instance A.FromJSON V1CertificateSigningRequestSpec where- parseJSON = A.withObject "V1CertificateSigningRequestSpec" $ \o ->- V1CertificateSigningRequestSpec- <$> (o .:? "expirationSeconds")- <*> (o .:? "extra")- <*> (o .:? "groups")- <*> (o .: "request")- <*> (o .: "signerName")- <*> (o .:? "uid")- <*> (o .:? "usages")- <*> (o .:? "username")---- | ToJSON V1CertificateSigningRequestSpec-instance A.ToJSON V1CertificateSigningRequestSpec where- toJSON V1CertificateSigningRequestSpec {..} =- _omitNulls- [ "expirationSeconds" .= v1CertificateSigningRequestSpecExpirationSeconds- , "extra" .= v1CertificateSigningRequestSpecExtra- , "groups" .= v1CertificateSigningRequestSpecGroups- , "request" .= v1CertificateSigningRequestSpecRequest- , "signerName" .= v1CertificateSigningRequestSpecSignerName- , "uid" .= v1CertificateSigningRequestSpecUid- , "usages" .= v1CertificateSigningRequestSpecUsages- , "username" .= v1CertificateSigningRequestSpecUsername- ]----- | Construct a value of type 'V1CertificateSigningRequestSpec' (by applying it's required fields, if any)-mkV1CertificateSigningRequestSpec- :: ByteArray -- ^ 'v1CertificateSigningRequestSpecRequest': request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.- -> Text -- ^ 'v1CertificateSigningRequestSpecSignerName': signerName indicates the requested signer, and is a qualified name. List/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector. Well-known Kubernetes signers are: 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver. Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager. 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver. Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager. 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely. Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager. More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers Custom signerNames can also be specified. The signer defines: 1. Trust distribution: how trust (CA bundles) are distributed. 2. Permitted subjects: and behavior when a disallowed subject is requested. 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested. 4. Required, permitted, or forbidden key usages / extended key usages. 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin. 6. Whether or not requests for CA certificates are allowed.- -> V1CertificateSigningRequestSpec-mkV1CertificateSigningRequestSpec v1CertificateSigningRequestSpecRequest v1CertificateSigningRequestSpecSignerName =- V1CertificateSigningRequestSpec- { v1CertificateSigningRequestSpecExpirationSeconds = Nothing- , v1CertificateSigningRequestSpecExtra = Nothing- , v1CertificateSigningRequestSpecGroups = Nothing- , v1CertificateSigningRequestSpecRequest- , v1CertificateSigningRequestSpecSignerName- , v1CertificateSigningRequestSpecUid = Nothing- , v1CertificateSigningRequestSpecUsages = Nothing- , v1CertificateSigningRequestSpecUsername = Nothing- }---- ** V1CertificateSigningRequestStatus--- | V1CertificateSigningRequestStatus--- CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.-data V1CertificateSigningRequestStatus = V1CertificateSigningRequestStatus- { v1CertificateSigningRequestStatusCertificate :: !(Maybe ByteArray) -- ^ "certificate" - certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable. If the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty. Validation requirements: 1. certificate must contain one or more PEM blocks. 2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280. 3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated, to allow for explanatory text as described in section 5.2 of RFC7468. If more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. The certificate is encoded in PEM format. When serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of: base64( -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- )- , v1CertificateSigningRequestStatusConditions :: !(Maybe [V1CertificateSigningRequestCondition]) -- ^ "conditions" - conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CertificateSigningRequestStatus-instance A.FromJSON V1CertificateSigningRequestStatus where- parseJSON = A.withObject "V1CertificateSigningRequestStatus" $ \o ->- V1CertificateSigningRequestStatus- <$> (o .:? "certificate")- <*> (o .:? "conditions")---- | ToJSON V1CertificateSigningRequestStatus-instance A.ToJSON V1CertificateSigningRequestStatus where- toJSON V1CertificateSigningRequestStatus {..} =- _omitNulls- [ "certificate" .= v1CertificateSigningRequestStatusCertificate- , "conditions" .= v1CertificateSigningRequestStatusConditions- ]----- | Construct a value of type 'V1CertificateSigningRequestStatus' (by applying it's required fields, if any)-mkV1CertificateSigningRequestStatus- :: V1CertificateSigningRequestStatus-mkV1CertificateSigningRequestStatus =- V1CertificateSigningRequestStatus- { v1CertificateSigningRequestStatusCertificate = Nothing- , v1CertificateSigningRequestStatusConditions = Nothing- }---- ** V1CinderPersistentVolumeSource--- | V1CinderPersistentVolumeSource--- Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.-data V1CinderPersistentVolumeSource = V1CinderPersistentVolumeSource- { v1CinderPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md- , v1CinderPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md- , v1CinderPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"- , v1CinderPersistentVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CinderPersistentVolumeSource-instance A.FromJSON V1CinderPersistentVolumeSource where- parseJSON = A.withObject "V1CinderPersistentVolumeSource" $ \o ->- V1CinderPersistentVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")- <*> (o .: "volumeID")---- | ToJSON V1CinderPersistentVolumeSource-instance A.ToJSON V1CinderPersistentVolumeSource where- toJSON V1CinderPersistentVolumeSource {..} =- _omitNulls- [ "fsType" .= v1CinderPersistentVolumeSourceFsType- , "readOnly" .= v1CinderPersistentVolumeSourceReadOnly- , "secretRef" .= v1CinderPersistentVolumeSourceSecretRef- , "volumeID" .= v1CinderPersistentVolumeSourceVolumeId- ]----- | Construct a value of type 'V1CinderPersistentVolumeSource' (by applying it's required fields, if any)-mkV1CinderPersistentVolumeSource- :: Text -- ^ 'v1CinderPersistentVolumeSourceVolumeId': volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md- -> V1CinderPersistentVolumeSource-mkV1CinderPersistentVolumeSource v1CinderPersistentVolumeSourceVolumeId =- V1CinderPersistentVolumeSource- { v1CinderPersistentVolumeSourceFsType = Nothing- , v1CinderPersistentVolumeSourceReadOnly = Nothing- , v1CinderPersistentVolumeSourceSecretRef = Nothing- , v1CinderPersistentVolumeSourceVolumeId- }---- ** V1CinderVolumeSource--- | V1CinderVolumeSource--- Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.-data V1CinderVolumeSource = V1CinderVolumeSource- { v1CinderVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md- , v1CinderVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md- , v1CinderVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"- , v1CinderVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CinderVolumeSource-instance A.FromJSON V1CinderVolumeSource where- parseJSON = A.withObject "V1CinderVolumeSource" $ \o ->- V1CinderVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")- <*> (o .: "volumeID")---- | ToJSON V1CinderVolumeSource-instance A.ToJSON V1CinderVolumeSource where- toJSON V1CinderVolumeSource {..} =- _omitNulls- [ "fsType" .= v1CinderVolumeSourceFsType- , "readOnly" .= v1CinderVolumeSourceReadOnly- , "secretRef" .= v1CinderVolumeSourceSecretRef- , "volumeID" .= v1CinderVolumeSourceVolumeId- ]----- | Construct a value of type 'V1CinderVolumeSource' (by applying it's required fields, if any)-mkV1CinderVolumeSource- :: Text -- ^ 'v1CinderVolumeSourceVolumeId': volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md- -> V1CinderVolumeSource-mkV1CinderVolumeSource v1CinderVolumeSourceVolumeId =- V1CinderVolumeSource- { v1CinderVolumeSourceFsType = Nothing- , v1CinderVolumeSourceReadOnly = Nothing- , v1CinderVolumeSourceSecretRef = Nothing- , v1CinderVolumeSourceVolumeId- }---- ** V1ClientIPConfig--- | V1ClientIPConfig--- ClientIPConfig represents the configurations of Client IP based session affinity.-data V1ClientIPConfig = V1ClientIPConfig- { v1ClientIPConfigTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ClientIPConfig-instance A.FromJSON V1ClientIPConfig where- parseJSON = A.withObject "V1ClientIPConfig" $ \o ->- V1ClientIPConfig- <$> (o .:? "timeoutSeconds")---- | ToJSON V1ClientIPConfig-instance A.ToJSON V1ClientIPConfig where- toJSON V1ClientIPConfig {..} =- _omitNulls- [ "timeoutSeconds" .= v1ClientIPConfigTimeoutSeconds- ]----- | Construct a value of type 'V1ClientIPConfig' (by applying it's required fields, if any)-mkV1ClientIPConfig- :: V1ClientIPConfig-mkV1ClientIPConfig =- V1ClientIPConfig- { v1ClientIPConfigTimeoutSeconds = Nothing- }---- ** V1ClusterRole--- | V1ClusterRole--- ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.-data V1ClusterRole = V1ClusterRole- { v1ClusterRoleAggregationRule :: !(Maybe V1AggregationRule) -- ^ "aggregationRule"- , v1ClusterRoleApiVersion :: !(Maybe Text) -- ^ "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- , v1ClusterRoleKind :: !(Maybe Text) -- ^ "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- , v1ClusterRoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ClusterRoleRules :: !(Maybe [V1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this ClusterRole- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ClusterRole-instance A.FromJSON V1ClusterRole where- parseJSON = A.withObject "V1ClusterRole" $ \o ->- V1ClusterRole- <$> (o .:? "aggregationRule")- <*> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "rules")---- | ToJSON V1ClusterRole-instance A.ToJSON V1ClusterRole where- toJSON V1ClusterRole {..} =- _omitNulls- [ "aggregationRule" .= v1ClusterRoleAggregationRule- , "apiVersion" .= v1ClusterRoleApiVersion- , "kind" .= v1ClusterRoleKind- , "metadata" .= v1ClusterRoleMetadata- , "rules" .= v1ClusterRoleRules- ]----- | Construct a value of type 'V1ClusterRole' (by applying it's required fields, if any)-mkV1ClusterRole- :: V1ClusterRole-mkV1ClusterRole =- V1ClusterRole- { v1ClusterRoleAggregationRule = Nothing- , v1ClusterRoleApiVersion = Nothing- , v1ClusterRoleKind = Nothing- , v1ClusterRoleMetadata = Nothing- , v1ClusterRoleRules = Nothing- }---- ** V1ClusterRoleBinding--- | V1ClusterRoleBinding--- ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.-data V1ClusterRoleBinding = V1ClusterRoleBinding- { v1ClusterRoleBindingApiVersion :: !(Maybe Text) -- ^ "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- , v1ClusterRoleBindingKind :: !(Maybe Text) -- ^ "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- , v1ClusterRoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ClusterRoleBindingRoleRef :: !(V1RoleRef) -- ^ /Required/ "roleRef"- , v1ClusterRoleBindingSubjects :: !(Maybe [RbacV1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ClusterRoleBinding-instance A.FromJSON V1ClusterRoleBinding where- parseJSON = A.withObject "V1ClusterRoleBinding" $ \o ->- V1ClusterRoleBinding- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "roleRef")- <*> (o .:? "subjects")---- | ToJSON V1ClusterRoleBinding-instance A.ToJSON V1ClusterRoleBinding where- toJSON V1ClusterRoleBinding {..} =- _omitNulls- [ "apiVersion" .= v1ClusterRoleBindingApiVersion- , "kind" .= v1ClusterRoleBindingKind- , "metadata" .= v1ClusterRoleBindingMetadata- , "roleRef" .= v1ClusterRoleBindingRoleRef- , "subjects" .= v1ClusterRoleBindingSubjects- ]----- | Construct a value of type 'V1ClusterRoleBinding' (by applying it's required fields, if any)-mkV1ClusterRoleBinding- :: V1RoleRef -- ^ 'v1ClusterRoleBindingRoleRef' - -> V1ClusterRoleBinding-mkV1ClusterRoleBinding v1ClusterRoleBindingRoleRef =- V1ClusterRoleBinding- { v1ClusterRoleBindingApiVersion = Nothing- , v1ClusterRoleBindingKind = Nothing- , v1ClusterRoleBindingMetadata = Nothing- , v1ClusterRoleBindingRoleRef- , v1ClusterRoleBindingSubjects = Nothing- }---- ** V1ClusterRoleBindingList--- | V1ClusterRoleBindingList--- ClusterRoleBindingList is a collection of ClusterRoleBindings-data V1ClusterRoleBindingList = V1ClusterRoleBindingList- { v1ClusterRoleBindingListApiVersion :: !(Maybe Text) -- ^ "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- , v1ClusterRoleBindingListItems :: !([V1ClusterRoleBinding]) -- ^ /Required/ "items" - Items is a list of ClusterRoleBindings- , v1ClusterRoleBindingListKind :: !(Maybe Text) -- ^ "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- , v1ClusterRoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ClusterRoleBindingList-instance A.FromJSON V1ClusterRoleBindingList where- parseJSON = A.withObject "V1ClusterRoleBindingList" $ \o ->- V1ClusterRoleBindingList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ClusterRoleBindingList-instance A.ToJSON V1ClusterRoleBindingList where- toJSON V1ClusterRoleBindingList {..} =- _omitNulls- [ "apiVersion" .= v1ClusterRoleBindingListApiVersion- , "items" .= v1ClusterRoleBindingListItems- , "kind" .= v1ClusterRoleBindingListKind- , "metadata" .= v1ClusterRoleBindingListMetadata- ]----- | Construct a value of type 'V1ClusterRoleBindingList' (by applying it's required fields, if any)-mkV1ClusterRoleBindingList- :: [V1ClusterRoleBinding] -- ^ 'v1ClusterRoleBindingListItems': Items is a list of ClusterRoleBindings- -> V1ClusterRoleBindingList-mkV1ClusterRoleBindingList v1ClusterRoleBindingListItems =- V1ClusterRoleBindingList- { v1ClusterRoleBindingListApiVersion = Nothing- , v1ClusterRoleBindingListItems- , v1ClusterRoleBindingListKind = Nothing- , v1ClusterRoleBindingListMetadata = Nothing- }---- ** V1ClusterRoleList--- | V1ClusterRoleList--- ClusterRoleList is a collection of ClusterRoles-data V1ClusterRoleList = V1ClusterRoleList- { v1ClusterRoleListApiVersion :: !(Maybe Text) -- ^ "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- , v1ClusterRoleListItems :: !([V1ClusterRole]) -- ^ /Required/ "items" - Items is a list of ClusterRoles- , v1ClusterRoleListKind :: !(Maybe Text) -- ^ "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- , v1ClusterRoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ClusterRoleList-instance A.FromJSON V1ClusterRoleList where- parseJSON = A.withObject "V1ClusterRoleList" $ \o ->- V1ClusterRoleList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ClusterRoleList-instance A.ToJSON V1ClusterRoleList where- toJSON V1ClusterRoleList {..} =- _omitNulls- [ "apiVersion" .= v1ClusterRoleListApiVersion- , "items" .= v1ClusterRoleListItems- , "kind" .= v1ClusterRoleListKind- , "metadata" .= v1ClusterRoleListMetadata- ]----- | Construct a value of type 'V1ClusterRoleList' (by applying it's required fields, if any)-mkV1ClusterRoleList- :: [V1ClusterRole] -- ^ 'v1ClusterRoleListItems': Items is a list of ClusterRoles- -> V1ClusterRoleList-mkV1ClusterRoleList v1ClusterRoleListItems =- V1ClusterRoleList- { v1ClusterRoleListApiVersion = Nothing- , v1ClusterRoleListItems- , v1ClusterRoleListKind = Nothing- , v1ClusterRoleListMetadata = Nothing- }---- ** V1ClusterTrustBundleProjection--- | V1ClusterTrustBundleProjection--- ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.-data V1ClusterTrustBundleProjection = V1ClusterTrustBundleProjection- { v1ClusterTrustBundleProjectionLabelSelector :: !(Maybe V1LabelSelector) -- ^ "labelSelector"- , v1ClusterTrustBundleProjectionName :: !(Maybe Text) -- ^ "name" - Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.- , v1ClusterTrustBundleProjectionOptional :: !(Maybe Bool) -- ^ "optional" - If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.- , v1ClusterTrustBundleProjectionPath :: !(Text) -- ^ /Required/ "path" - Relative path from the volume root to write the bundle.- , v1ClusterTrustBundleProjectionSignerName :: !(Maybe Text) -- ^ "signerName" - Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ClusterTrustBundleProjection-instance A.FromJSON V1ClusterTrustBundleProjection where- parseJSON = A.withObject "V1ClusterTrustBundleProjection" $ \o ->- V1ClusterTrustBundleProjection- <$> (o .:? "labelSelector")- <*> (o .:? "name")- <*> (o .:? "optional")- <*> (o .: "path")- <*> (o .:? "signerName")---- | ToJSON V1ClusterTrustBundleProjection-instance A.ToJSON V1ClusterTrustBundleProjection where- toJSON V1ClusterTrustBundleProjection {..} =- _omitNulls- [ "labelSelector" .= v1ClusterTrustBundleProjectionLabelSelector- , "name" .= v1ClusterTrustBundleProjectionName- , "optional" .= v1ClusterTrustBundleProjectionOptional- , "path" .= v1ClusterTrustBundleProjectionPath- , "signerName" .= v1ClusterTrustBundleProjectionSignerName- ]----- | Construct a value of type 'V1ClusterTrustBundleProjection' (by applying it's required fields, if any)-mkV1ClusterTrustBundleProjection- :: Text -- ^ 'v1ClusterTrustBundleProjectionPath': Relative path from the volume root to write the bundle.- -> V1ClusterTrustBundleProjection-mkV1ClusterTrustBundleProjection v1ClusterTrustBundleProjectionPath =- V1ClusterTrustBundleProjection- { v1ClusterTrustBundleProjectionLabelSelector = Nothing- , v1ClusterTrustBundleProjectionName = Nothing- , v1ClusterTrustBundleProjectionOptional = Nothing- , v1ClusterTrustBundleProjectionPath- , v1ClusterTrustBundleProjectionSignerName = Nothing- }---- ** V1ComponentCondition--- | V1ComponentCondition--- Information about the condition of a component.-data V1ComponentCondition = V1ComponentCondition- { v1ComponentConditionError :: !(Maybe Text) -- ^ "error" - Condition error code for a component. For example, a health check error code.- , v1ComponentConditionMessage :: !(Maybe Text) -- ^ "message" - Message about the condition for a component. For example, information about a health check.- , v1ComponentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".- , v1ComponentConditionType :: !(Text) -- ^ /Required/ "type" - Type of condition for a component. Valid value: \"Healthy\"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ComponentCondition-instance A.FromJSON V1ComponentCondition where- parseJSON = A.withObject "V1ComponentCondition" $ \o ->- V1ComponentCondition- <$> (o .:? "error")- <*> (o .:? "message")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1ComponentCondition-instance A.ToJSON V1ComponentCondition where- toJSON V1ComponentCondition {..} =- _omitNulls- [ "error" .= v1ComponentConditionError- , "message" .= v1ComponentConditionMessage- , "status" .= v1ComponentConditionStatus- , "type" .= v1ComponentConditionType- ]----- | Construct a value of type 'V1ComponentCondition' (by applying it's required fields, if any)-mkV1ComponentCondition- :: Text -- ^ 'v1ComponentConditionStatus': Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".- -> Text -- ^ 'v1ComponentConditionType': Type of condition for a component. Valid value: \"Healthy\"- -> V1ComponentCondition-mkV1ComponentCondition v1ComponentConditionStatus v1ComponentConditionType =- V1ComponentCondition- { v1ComponentConditionError = Nothing- , v1ComponentConditionMessage = Nothing- , v1ComponentConditionStatus- , v1ComponentConditionType- }---- ** V1ComponentStatus--- | V1ComponentStatus--- ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+-data V1ComponentStatus = V1ComponentStatus- { v1ComponentStatusApiVersion :: !(Maybe Text) -- ^ "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- , v1ComponentStatusConditions :: !(Maybe [V1ComponentCondition]) -- ^ "conditions" - List of component conditions observed- , v1ComponentStatusKind :: !(Maybe Text) -- ^ "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- , v1ComponentStatusMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ComponentStatus-instance A.FromJSON V1ComponentStatus where- parseJSON = A.withObject "V1ComponentStatus" $ \o ->- V1ComponentStatus- <$> (o .:? "apiVersion")- <*> (o .:? "conditions")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ComponentStatus-instance A.ToJSON V1ComponentStatus where- toJSON V1ComponentStatus {..} =- _omitNulls- [ "apiVersion" .= v1ComponentStatusApiVersion- , "conditions" .= v1ComponentStatusConditions- , "kind" .= v1ComponentStatusKind- , "metadata" .= v1ComponentStatusMetadata- ]----- | Construct a value of type 'V1ComponentStatus' (by applying it's required fields, if any)-mkV1ComponentStatus- :: V1ComponentStatus-mkV1ComponentStatus =- V1ComponentStatus- { v1ComponentStatusApiVersion = Nothing- , v1ComponentStatusConditions = Nothing- , v1ComponentStatusKind = Nothing- , v1ComponentStatusMetadata = Nothing- }---- ** V1ComponentStatusList--- | V1ComponentStatusList--- Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+-data V1ComponentStatusList = V1ComponentStatusList- { v1ComponentStatusListApiVersion :: !(Maybe Text) -- ^ "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- , v1ComponentStatusListItems :: !([V1ComponentStatus]) -- ^ /Required/ "items" - List of ComponentStatus objects.- , v1ComponentStatusListKind :: !(Maybe Text) -- ^ "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- , v1ComponentStatusListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ComponentStatusList-instance A.FromJSON V1ComponentStatusList where- parseJSON = A.withObject "V1ComponentStatusList" $ \o ->- V1ComponentStatusList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ComponentStatusList-instance A.ToJSON V1ComponentStatusList where- toJSON V1ComponentStatusList {..} =- _omitNulls- [ "apiVersion" .= v1ComponentStatusListApiVersion- , "items" .= v1ComponentStatusListItems- , "kind" .= v1ComponentStatusListKind- , "metadata" .= v1ComponentStatusListMetadata- ]----- | Construct a value of type 'V1ComponentStatusList' (by applying it's required fields, if any)-mkV1ComponentStatusList- :: [V1ComponentStatus] -- ^ 'v1ComponentStatusListItems': List of ComponentStatus objects.- -> V1ComponentStatusList-mkV1ComponentStatusList v1ComponentStatusListItems =- V1ComponentStatusList- { v1ComponentStatusListApiVersion = Nothing- , v1ComponentStatusListItems- , v1ComponentStatusListKind = Nothing- , v1ComponentStatusListMetadata = Nothing- }---- ** V1Condition--- | V1Condition--- Condition contains details for one aspect of the current state of this API Resource.-data V1Condition = V1Condition- { v1ConditionLastTransitionTime :: !(DateTime) -- ^ /Required/ "lastTransitionTime" - lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.- , v1ConditionMessage :: !(Text) -- ^ /Required/ "message" - message is a human readable message indicating details about the transition. This may be an empty string.- , v1ConditionObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.- , v1ConditionReason :: !(Text) -- ^ /Required/ "reason" - reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.- , v1ConditionStatus :: !(Text) -- ^ /Required/ "status" - status of the condition, one of True, False, Unknown.- , v1ConditionType :: !(Text) -- ^ /Required/ "type" - type of condition in CamelCase or in foo.example.com/CamelCase.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Condition-instance A.FromJSON V1Condition where- parseJSON = A.withObject "V1Condition" $ \o ->- V1Condition- <$> (o .: "lastTransitionTime")- <*> (o .: "message")- <*> (o .:? "observedGeneration")- <*> (o .: "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1Condition-instance A.ToJSON V1Condition where- toJSON V1Condition {..} =- _omitNulls- [ "lastTransitionTime" .= v1ConditionLastTransitionTime- , "message" .= v1ConditionMessage- , "observedGeneration" .= v1ConditionObservedGeneration- , "reason" .= v1ConditionReason- , "status" .= v1ConditionStatus- , "type" .= v1ConditionType- ]----- | Construct a value of type 'V1Condition' (by applying it's required fields, if any)-mkV1Condition- :: DateTime -- ^ 'v1ConditionLastTransitionTime': lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.- -> Text -- ^ 'v1ConditionMessage': message is a human readable message indicating details about the transition. This may be an empty string.- -> Text -- ^ 'v1ConditionReason': reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.- -> Text -- ^ 'v1ConditionStatus': status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1ConditionType': type of condition in CamelCase or in foo.example.com/CamelCase.- -> V1Condition-mkV1Condition v1ConditionLastTransitionTime v1ConditionMessage v1ConditionReason v1ConditionStatus v1ConditionType =- V1Condition- { v1ConditionLastTransitionTime- , v1ConditionMessage- , v1ConditionObservedGeneration = Nothing- , v1ConditionReason- , v1ConditionStatus- , v1ConditionType- }---- ** V1ConfigMap--- | V1ConfigMap--- ConfigMap holds configuration data for pods to consume.-data V1ConfigMap = V1ConfigMap- { v1ConfigMapApiVersion :: !(Maybe Text) -- ^ "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- , v1ConfigMapBinaryData :: !(Maybe (Map.Map String ByteArray)) -- ^ "binaryData" - BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.- , v1ConfigMapData :: !(Maybe (Map.Map String Text)) -- ^ "data" - Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.- , v1ConfigMapImmutable :: !(Maybe Bool) -- ^ "immutable" - Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.- , v1ConfigMapKind :: !(Maybe Text) -- ^ "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- , v1ConfigMapMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ConfigMap-instance A.FromJSON V1ConfigMap where- parseJSON = A.withObject "V1ConfigMap" $ \o ->- V1ConfigMap- <$> (o .:? "apiVersion")- <*> (o .:? "binaryData")- <*> (o .:? "data")- <*> (o .:? "immutable")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ConfigMap-instance A.ToJSON V1ConfigMap where- toJSON V1ConfigMap {..} =- _omitNulls- [ "apiVersion" .= v1ConfigMapApiVersion- , "binaryData" .= v1ConfigMapBinaryData- , "data" .= v1ConfigMapData- , "immutable" .= v1ConfigMapImmutable- , "kind" .= v1ConfigMapKind- , "metadata" .= v1ConfigMapMetadata- ]----- | Construct a value of type 'V1ConfigMap' (by applying it's required fields, if any)-mkV1ConfigMap- :: V1ConfigMap-mkV1ConfigMap =- V1ConfigMap- { v1ConfigMapApiVersion = Nothing- , v1ConfigMapBinaryData = Nothing- , v1ConfigMapData = Nothing- , v1ConfigMapImmutable = Nothing- , v1ConfigMapKind = Nothing- , v1ConfigMapMetadata = Nothing- }---- ** V1ConfigMapEnvSource--- | V1ConfigMapEnvSource--- ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.-data V1ConfigMapEnvSource = V1ConfigMapEnvSource- { v1ConfigMapEnvSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- , v1ConfigMapEnvSourceOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the ConfigMap must be defined- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ConfigMapEnvSource-instance A.FromJSON V1ConfigMapEnvSource where- parseJSON = A.withObject "V1ConfigMapEnvSource" $ \o ->- V1ConfigMapEnvSource- <$> (o .:? "name")- <*> (o .:? "optional")---- | ToJSON V1ConfigMapEnvSource-instance A.ToJSON V1ConfigMapEnvSource where- toJSON V1ConfigMapEnvSource {..} =- _omitNulls- [ "name" .= v1ConfigMapEnvSourceName- , "optional" .= v1ConfigMapEnvSourceOptional- ]----- | Construct a value of type 'V1ConfigMapEnvSource' (by applying it's required fields, if any)-mkV1ConfigMapEnvSource- :: V1ConfigMapEnvSource-mkV1ConfigMapEnvSource =- V1ConfigMapEnvSource- { v1ConfigMapEnvSourceName = Nothing- , v1ConfigMapEnvSourceOptional = Nothing- }---- ** V1ConfigMapKeySelector--- | V1ConfigMapKeySelector--- Selects a key from a ConfigMap.-data V1ConfigMapKeySelector = V1ConfigMapKeySelector- { v1ConfigMapKeySelectorKey :: !(Text) -- ^ /Required/ "key" - The key to select.- , v1ConfigMapKeySelectorName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- , v1ConfigMapKeySelectorOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the ConfigMap or its key must be defined- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ConfigMapKeySelector-instance A.FromJSON V1ConfigMapKeySelector where- parseJSON = A.withObject "V1ConfigMapKeySelector" $ \o ->- V1ConfigMapKeySelector- <$> (o .: "key")- <*> (o .:? "name")- <*> (o .:? "optional")---- | ToJSON V1ConfigMapKeySelector-instance A.ToJSON V1ConfigMapKeySelector where- toJSON V1ConfigMapKeySelector {..} =- _omitNulls- [ "key" .= v1ConfigMapKeySelectorKey- , "name" .= v1ConfigMapKeySelectorName- , "optional" .= v1ConfigMapKeySelectorOptional- ]----- | Construct a value of type 'V1ConfigMapKeySelector' (by applying it's required fields, if any)-mkV1ConfigMapKeySelector- :: Text -- ^ 'v1ConfigMapKeySelectorKey': The key to select.- -> V1ConfigMapKeySelector-mkV1ConfigMapKeySelector v1ConfigMapKeySelectorKey =- V1ConfigMapKeySelector- { v1ConfigMapKeySelectorKey- , v1ConfigMapKeySelectorName = Nothing- , v1ConfigMapKeySelectorOptional = Nothing- }---- ** V1ConfigMapList--- | V1ConfigMapList--- ConfigMapList is a resource containing a list of ConfigMap objects.-data V1ConfigMapList = V1ConfigMapList- { v1ConfigMapListApiVersion :: !(Maybe Text) -- ^ "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- , v1ConfigMapListItems :: !([V1ConfigMap]) -- ^ /Required/ "items" - Items is the list of ConfigMaps.- , v1ConfigMapListKind :: !(Maybe Text) -- ^ "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- , v1ConfigMapListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ConfigMapList-instance A.FromJSON V1ConfigMapList where- parseJSON = A.withObject "V1ConfigMapList" $ \o ->- V1ConfigMapList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ConfigMapList-instance A.ToJSON V1ConfigMapList where- toJSON V1ConfigMapList {..} =- _omitNulls- [ "apiVersion" .= v1ConfigMapListApiVersion- , "items" .= v1ConfigMapListItems- , "kind" .= v1ConfigMapListKind- , "metadata" .= v1ConfigMapListMetadata- ]----- | Construct a value of type 'V1ConfigMapList' (by applying it's required fields, if any)-mkV1ConfigMapList- :: [V1ConfigMap] -- ^ 'v1ConfigMapListItems': Items is the list of ConfigMaps.- -> V1ConfigMapList-mkV1ConfigMapList v1ConfigMapListItems =- V1ConfigMapList- { v1ConfigMapListApiVersion = Nothing- , v1ConfigMapListItems- , v1ConfigMapListKind = Nothing- , v1ConfigMapListMetadata = Nothing- }---- ** V1ConfigMapNodeConfigSource--- | V1ConfigMapNodeConfigSource--- ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration-data V1ConfigMapNodeConfigSource = V1ConfigMapNodeConfigSource- { v1ConfigMapNodeConfigSourceKubeletConfigKey :: !(Text) -- ^ /Required/ "kubeletConfigKey" - KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.- , v1ConfigMapNodeConfigSourceName :: !(Text) -- ^ /Required/ "name" - Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.- , v1ConfigMapNodeConfigSourceNamespace :: !(Text) -- ^ /Required/ "namespace" - Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.- , v1ConfigMapNodeConfigSourceResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.- , v1ConfigMapNodeConfigSourceUid :: !(Maybe Text) -- ^ "uid" - UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ConfigMapNodeConfigSource-instance A.FromJSON V1ConfigMapNodeConfigSource where- parseJSON = A.withObject "V1ConfigMapNodeConfigSource" $ \o ->- V1ConfigMapNodeConfigSource- <$> (o .: "kubeletConfigKey")- <*> (o .: "name")- <*> (o .: "namespace")- <*> (o .:? "resourceVersion")- <*> (o .:? "uid")---- | ToJSON V1ConfigMapNodeConfigSource-instance A.ToJSON V1ConfigMapNodeConfigSource where- toJSON V1ConfigMapNodeConfigSource {..} =- _omitNulls- [ "kubeletConfigKey" .= v1ConfigMapNodeConfigSourceKubeletConfigKey- , "name" .= v1ConfigMapNodeConfigSourceName- , "namespace" .= v1ConfigMapNodeConfigSourceNamespace- , "resourceVersion" .= v1ConfigMapNodeConfigSourceResourceVersion- , "uid" .= v1ConfigMapNodeConfigSourceUid- ]----- | Construct a value of type 'V1ConfigMapNodeConfigSource' (by applying it's required fields, if any)-mkV1ConfigMapNodeConfigSource- :: Text -- ^ 'v1ConfigMapNodeConfigSourceKubeletConfigKey': KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.- -> Text -- ^ 'v1ConfigMapNodeConfigSourceName': Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.- -> Text -- ^ 'v1ConfigMapNodeConfigSourceNamespace': Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.- -> V1ConfigMapNodeConfigSource-mkV1ConfigMapNodeConfigSource v1ConfigMapNodeConfigSourceKubeletConfigKey v1ConfigMapNodeConfigSourceName v1ConfigMapNodeConfigSourceNamespace =- V1ConfigMapNodeConfigSource- { v1ConfigMapNodeConfigSourceKubeletConfigKey- , v1ConfigMapNodeConfigSourceName- , v1ConfigMapNodeConfigSourceNamespace- , v1ConfigMapNodeConfigSourceResourceVersion = Nothing- , v1ConfigMapNodeConfigSourceUid = Nothing- }---- ** V1ConfigMapProjection--- | V1ConfigMapProjection--- Adapts a ConfigMap into a projected volume. The contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.-data V1ConfigMapProjection = V1ConfigMapProjection- { v1ConfigMapProjectionItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.- , v1ConfigMapProjectionName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- , v1ConfigMapProjectionOptional :: !(Maybe Bool) -- ^ "optional" - optional specify whether the ConfigMap or its keys must be defined- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ConfigMapProjection-instance A.FromJSON V1ConfigMapProjection where- parseJSON = A.withObject "V1ConfigMapProjection" $ \o ->- V1ConfigMapProjection- <$> (o .:? "items")- <*> (o .:? "name")- <*> (o .:? "optional")---- | ToJSON V1ConfigMapProjection-instance A.ToJSON V1ConfigMapProjection where- toJSON V1ConfigMapProjection {..} =- _omitNulls- [ "items" .= v1ConfigMapProjectionItems- , "name" .= v1ConfigMapProjectionName- , "optional" .= v1ConfigMapProjectionOptional- ]----- | Construct a value of type 'V1ConfigMapProjection' (by applying it's required fields, if any)-mkV1ConfigMapProjection- :: V1ConfigMapProjection-mkV1ConfigMapProjection =- V1ConfigMapProjection- { v1ConfigMapProjectionItems = Nothing- , v1ConfigMapProjectionName = Nothing- , v1ConfigMapProjectionOptional = Nothing- }---- ** V1ConfigMapVolumeSource--- | V1ConfigMapVolumeSource--- Adapts a ConfigMap into a volume. The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.-data V1ConfigMapVolumeSource = V1ConfigMapVolumeSource- { v1ConfigMapVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.- , v1ConfigMapVolumeSourceItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.- , v1ConfigMapVolumeSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- , v1ConfigMapVolumeSourceOptional :: !(Maybe Bool) -- ^ "optional" - optional specify whether the ConfigMap or its keys must be defined- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ConfigMapVolumeSource-instance A.FromJSON V1ConfigMapVolumeSource where- parseJSON = A.withObject "V1ConfigMapVolumeSource" $ \o ->- V1ConfigMapVolumeSource- <$> (o .:? "defaultMode")- <*> (o .:? "items")- <*> (o .:? "name")- <*> (o .:? "optional")---- | ToJSON V1ConfigMapVolumeSource-instance A.ToJSON V1ConfigMapVolumeSource where- toJSON V1ConfigMapVolumeSource {..} =- _omitNulls- [ "defaultMode" .= v1ConfigMapVolumeSourceDefaultMode- , "items" .= v1ConfigMapVolumeSourceItems- , "name" .= v1ConfigMapVolumeSourceName- , "optional" .= v1ConfigMapVolumeSourceOptional- ]----- | Construct a value of type 'V1ConfigMapVolumeSource' (by applying it's required fields, if any)-mkV1ConfigMapVolumeSource- :: V1ConfigMapVolumeSource-mkV1ConfigMapVolumeSource =- V1ConfigMapVolumeSource- { v1ConfigMapVolumeSourceDefaultMode = Nothing- , v1ConfigMapVolumeSourceItems = Nothing- , v1ConfigMapVolumeSourceName = Nothing- , v1ConfigMapVolumeSourceOptional = Nothing- }---- ** V1Container--- | V1Container--- A single application container that you want to run within a pod.-data V1Container = V1Container- { v1ContainerArgs :: !(Maybe [Text]) -- ^ "args" - Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell- , v1ContainerCommand :: !(Maybe [Text]) -- ^ "command" - Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell- , v1ContainerEnv :: !(Maybe [V1EnvVar]) -- ^ "env" - List of environment variables to set in the container. Cannot be updated.- , v1ContainerEnvFrom :: !(Maybe [V1EnvFromSource]) -- ^ "envFrom" - List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.- , v1ContainerImage :: !(Maybe Text) -- ^ "image" - Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.- , v1ContainerImagePullPolicy :: !(Maybe Text) -- ^ "imagePullPolicy" - Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images- , v1ContainerLifecycle :: !(Maybe V1Lifecycle) -- ^ "lifecycle"- , v1ContainerLivenessProbe :: !(Maybe V1Probe) -- ^ "livenessProbe"- , v1ContainerName :: !(Text) -- ^ /Required/ "name" - Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.- , v1ContainerPorts :: !(Maybe [V1ContainerPort]) -- ^ "ports" - List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.- , v1ContainerReadinessProbe :: !(Maybe V1Probe) -- ^ "readinessProbe"- , v1ContainerResizePolicy :: !(Maybe [V1ContainerResizePolicy]) -- ^ "resizePolicy" - Resources resize policy for the container.- , v1ContainerResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"- , v1ContainerRestartPolicy :: !(Maybe Text) -- ^ "restartPolicy" - RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.- , v1ContainerRestartPolicyRules :: !(Maybe [V1ContainerRestartRule]) -- ^ "restartPolicyRules" - Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.- , v1ContainerSecurityContext :: !(Maybe V1SecurityContext) -- ^ "securityContext"- , v1ContainerStartupProbe :: !(Maybe V1Probe) -- ^ "startupProbe"- , v1ContainerStdin :: !(Maybe Bool) -- ^ "stdin" - Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.- , v1ContainerStdinOnce :: !(Maybe Bool) -- ^ "stdinOnce" - Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false- , v1ContainerTerminationMessagePath :: !(Maybe Text) -- ^ "terminationMessagePath" - Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.- , v1ContainerTerminationMessagePolicy :: !(Maybe Text) -- ^ "terminationMessagePolicy" - Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.- , v1ContainerTty :: !(Maybe Bool) -- ^ "tty" - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.- , v1ContainerVolumeDevices :: !(Maybe [V1VolumeDevice]) -- ^ "volumeDevices" - volumeDevices is the list of block devices to be used by the container.- , v1ContainerVolumeMounts :: !(Maybe [V1VolumeMount]) -- ^ "volumeMounts" - Pod volumes to mount into the container's filesystem. Cannot be updated.- , v1ContainerWorkingDir :: !(Maybe Text) -- ^ "workingDir" - Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Container-instance A.FromJSON V1Container where- parseJSON = A.withObject "V1Container" $ \o ->- V1Container- <$> (o .:? "args")- <*> (o .:? "command")- <*> (o .:? "env")- <*> (o .:? "envFrom")- <*> (o .:? "image")- <*> (o .:? "imagePullPolicy")- <*> (o .:? "lifecycle")- <*> (o .:? "livenessProbe")- <*> (o .: "name")- <*> (o .:? "ports")- <*> (o .:? "readinessProbe")- <*> (o .:? "resizePolicy")- <*> (o .:? "resources")- <*> (o .:? "restartPolicy")- <*> (o .:? "restartPolicyRules")- <*> (o .:? "securityContext")- <*> (o .:? "startupProbe")- <*> (o .:? "stdin")- <*> (o .:? "stdinOnce")- <*> (o .:? "terminationMessagePath")- <*> (o .:? "terminationMessagePolicy")- <*> (o .:? "tty")- <*> (o .:? "volumeDevices")- <*> (o .:? "volumeMounts")- <*> (o .:? "workingDir")---- | ToJSON V1Container-instance A.ToJSON V1Container where- toJSON V1Container {..} =- _omitNulls- [ "args" .= v1ContainerArgs- , "command" .= v1ContainerCommand- , "env" .= v1ContainerEnv- , "envFrom" .= v1ContainerEnvFrom- , "image" .= v1ContainerImage- , "imagePullPolicy" .= v1ContainerImagePullPolicy- , "lifecycle" .= v1ContainerLifecycle- , "livenessProbe" .= v1ContainerLivenessProbe- , "name" .= v1ContainerName- , "ports" .= v1ContainerPorts- , "readinessProbe" .= v1ContainerReadinessProbe- , "resizePolicy" .= v1ContainerResizePolicy- , "resources" .= v1ContainerResources- , "restartPolicy" .= v1ContainerRestartPolicy- , "restartPolicyRules" .= v1ContainerRestartPolicyRules- , "securityContext" .= v1ContainerSecurityContext- , "startupProbe" .= v1ContainerStartupProbe- , "stdin" .= v1ContainerStdin- , "stdinOnce" .= v1ContainerStdinOnce- , "terminationMessagePath" .= v1ContainerTerminationMessagePath- , "terminationMessagePolicy" .= v1ContainerTerminationMessagePolicy- , "tty" .= v1ContainerTty- , "volumeDevices" .= v1ContainerVolumeDevices- , "volumeMounts" .= v1ContainerVolumeMounts- , "workingDir" .= v1ContainerWorkingDir- ]----- | Construct a value of type 'V1Container' (by applying it's required fields, if any)-mkV1Container- :: Text -- ^ 'v1ContainerName': Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.- -> V1Container-mkV1Container v1ContainerName =- V1Container- { v1ContainerArgs = Nothing- , v1ContainerCommand = Nothing- , v1ContainerEnv = Nothing- , v1ContainerEnvFrom = Nothing- , v1ContainerImage = Nothing- , v1ContainerImagePullPolicy = Nothing- , v1ContainerLifecycle = Nothing- , v1ContainerLivenessProbe = Nothing- , v1ContainerName- , v1ContainerPorts = Nothing- , v1ContainerReadinessProbe = Nothing- , v1ContainerResizePolicy = Nothing- , v1ContainerResources = Nothing- , v1ContainerRestartPolicy = Nothing- , v1ContainerRestartPolicyRules = Nothing- , v1ContainerSecurityContext = Nothing- , v1ContainerStartupProbe = Nothing- , v1ContainerStdin = Nothing- , v1ContainerStdinOnce = Nothing- , v1ContainerTerminationMessagePath = Nothing- , v1ContainerTerminationMessagePolicy = Nothing- , v1ContainerTty = Nothing- , v1ContainerVolumeDevices = Nothing- , v1ContainerVolumeMounts = Nothing- , v1ContainerWorkingDir = Nothing- }---- ** V1ContainerExtendedResourceRequest--- | V1ContainerExtendedResourceRequest--- ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name.-data V1ContainerExtendedResourceRequest = V1ContainerExtendedResourceRequest- { v1ContainerExtendedResourceRequestContainerName :: !(Text) -- ^ /Required/ "containerName" - The name of the container requesting resources.- , v1ContainerExtendedResourceRequestRequestName :: !(Text) -- ^ /Required/ "requestName" - The name of the request in the special ResourceClaim which corresponds to the extended resource.- , v1ContainerExtendedResourceRequestResourceName :: !(Text) -- ^ /Required/ "resourceName" - The name of the extended resource in that container which gets backed by DRA.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerExtendedResourceRequest-instance A.FromJSON V1ContainerExtendedResourceRequest where- parseJSON = A.withObject "V1ContainerExtendedResourceRequest" $ \o ->- V1ContainerExtendedResourceRequest- <$> (o .: "containerName")- <*> (o .: "requestName")- <*> (o .: "resourceName")---- | ToJSON V1ContainerExtendedResourceRequest-instance A.ToJSON V1ContainerExtendedResourceRequest where- toJSON V1ContainerExtendedResourceRequest {..} =- _omitNulls- [ "containerName" .= v1ContainerExtendedResourceRequestContainerName- , "requestName" .= v1ContainerExtendedResourceRequestRequestName- , "resourceName" .= v1ContainerExtendedResourceRequestResourceName- ]----- | Construct a value of type 'V1ContainerExtendedResourceRequest' (by applying it's required fields, if any)-mkV1ContainerExtendedResourceRequest- :: Text -- ^ 'v1ContainerExtendedResourceRequestContainerName': The name of the container requesting resources.- -> Text -- ^ 'v1ContainerExtendedResourceRequestRequestName': The name of the request in the special ResourceClaim which corresponds to the extended resource.- -> Text -- ^ 'v1ContainerExtendedResourceRequestResourceName': The name of the extended resource in that container which gets backed by DRA.- -> V1ContainerExtendedResourceRequest-mkV1ContainerExtendedResourceRequest v1ContainerExtendedResourceRequestContainerName v1ContainerExtendedResourceRequestRequestName v1ContainerExtendedResourceRequestResourceName =- V1ContainerExtendedResourceRequest- { v1ContainerExtendedResourceRequestContainerName- , v1ContainerExtendedResourceRequestRequestName- , v1ContainerExtendedResourceRequestResourceName- }---- ** V1ContainerImage--- | V1ContainerImage--- Describe a container image-data V1ContainerImage = V1ContainerImage- { v1ContainerImageNames :: !(Maybe [Text]) -- ^ "names" - Names by which this image is known. e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]- , v1ContainerImageSizeBytes :: !(Maybe Integer) -- ^ "sizeBytes" - The size of the image in bytes.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerImage-instance A.FromJSON V1ContainerImage where- parseJSON = A.withObject "V1ContainerImage" $ \o ->- V1ContainerImage- <$> (o .:? "names")- <*> (o .:? "sizeBytes")---- | ToJSON V1ContainerImage-instance A.ToJSON V1ContainerImage where- toJSON V1ContainerImage {..} =- _omitNulls- [ "names" .= v1ContainerImageNames- , "sizeBytes" .= v1ContainerImageSizeBytes- ]----- | Construct a value of type 'V1ContainerImage' (by applying it's required fields, if any)-mkV1ContainerImage- :: V1ContainerImage-mkV1ContainerImage =- V1ContainerImage- { v1ContainerImageNames = Nothing- , v1ContainerImageSizeBytes = Nothing- }---- ** V1ContainerPort--- | V1ContainerPort--- ContainerPort represents a network port in a single container.-data V1ContainerPort = V1ContainerPort- { v1ContainerPortContainerPort :: !(Int) -- ^ /Required/ "containerPort" - Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.- , v1ContainerPortHostIp :: !(Maybe Text) -- ^ "hostIP" - What host IP to bind the external port to.- , v1ContainerPortHostPort :: !(Maybe Int) -- ^ "hostPort" - Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.- , v1ContainerPortName :: !(Maybe Text) -- ^ "name" - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.- , v1ContainerPortProtocol :: !(Maybe Text) -- ^ "protocol" - Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerPort-instance A.FromJSON V1ContainerPort where- parseJSON = A.withObject "V1ContainerPort" $ \o ->- V1ContainerPort- <$> (o .: "containerPort")- <*> (o .:? "hostIP")- <*> (o .:? "hostPort")- <*> (o .:? "name")- <*> (o .:? "protocol")---- | ToJSON V1ContainerPort-instance A.ToJSON V1ContainerPort where- toJSON V1ContainerPort {..} =- _omitNulls- [ "containerPort" .= v1ContainerPortContainerPort- , "hostIP" .= v1ContainerPortHostIp- , "hostPort" .= v1ContainerPortHostPort- , "name" .= v1ContainerPortName- , "protocol" .= v1ContainerPortProtocol- ]----- | Construct a value of type 'V1ContainerPort' (by applying it's required fields, if any)-mkV1ContainerPort- :: Int -- ^ 'v1ContainerPortContainerPort': Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.- -> V1ContainerPort-mkV1ContainerPort v1ContainerPortContainerPort =- V1ContainerPort- { v1ContainerPortContainerPort- , v1ContainerPortHostIp = Nothing- , v1ContainerPortHostPort = Nothing- , v1ContainerPortName = Nothing- , v1ContainerPortProtocol = Nothing- }---- ** V1ContainerResizePolicy--- | V1ContainerResizePolicy--- ContainerResizePolicy represents resource resize policy for the container.-data V1ContainerResizePolicy = V1ContainerResizePolicy- { v1ContainerResizePolicyResourceName :: !(Text) -- ^ /Required/ "resourceName" - Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.- , v1ContainerResizePolicyRestartPolicy :: !(Text) -- ^ /Required/ "restartPolicy" - Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerResizePolicy-instance A.FromJSON V1ContainerResizePolicy where- parseJSON = A.withObject "V1ContainerResizePolicy" $ \o ->- V1ContainerResizePolicy- <$> (o .: "resourceName")- <*> (o .: "restartPolicy")---- | ToJSON V1ContainerResizePolicy-instance A.ToJSON V1ContainerResizePolicy where- toJSON V1ContainerResizePolicy {..} =- _omitNulls- [ "resourceName" .= v1ContainerResizePolicyResourceName- , "restartPolicy" .= v1ContainerResizePolicyRestartPolicy- ]----- | Construct a value of type 'V1ContainerResizePolicy' (by applying it's required fields, if any)-mkV1ContainerResizePolicy- :: Text -- ^ 'v1ContainerResizePolicyResourceName': Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.- -> Text -- ^ 'v1ContainerResizePolicyRestartPolicy': Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.- -> V1ContainerResizePolicy-mkV1ContainerResizePolicy v1ContainerResizePolicyResourceName v1ContainerResizePolicyRestartPolicy =- V1ContainerResizePolicy- { v1ContainerResizePolicyResourceName- , v1ContainerResizePolicyRestartPolicy- }---- ** V1ContainerRestartRule--- | V1ContainerRestartRule--- ContainerRestartRule describes how a container exit is handled.-data V1ContainerRestartRule = V1ContainerRestartRule- { v1ContainerRestartRuleAction :: !(Text) -- ^ /Required/ "action" - Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is \"Restart\" to restart the container.- , v1ContainerRestartRuleExitCodes :: !(Maybe V1ContainerRestartRuleOnExitCodes) -- ^ "exitCodes"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerRestartRule-instance A.FromJSON V1ContainerRestartRule where- parseJSON = A.withObject "V1ContainerRestartRule" $ \o ->- V1ContainerRestartRule- <$> (o .: "action")- <*> (o .:? "exitCodes")---- | ToJSON V1ContainerRestartRule-instance A.ToJSON V1ContainerRestartRule where- toJSON V1ContainerRestartRule {..} =- _omitNulls- [ "action" .= v1ContainerRestartRuleAction- , "exitCodes" .= v1ContainerRestartRuleExitCodes- ]----- | Construct a value of type 'V1ContainerRestartRule' (by applying it's required fields, if any)-mkV1ContainerRestartRule- :: Text -- ^ 'v1ContainerRestartRuleAction': Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is \"Restart\" to restart the container.- -> V1ContainerRestartRule-mkV1ContainerRestartRule v1ContainerRestartRuleAction =- V1ContainerRestartRule- { v1ContainerRestartRuleAction- , v1ContainerRestartRuleExitCodes = Nothing- }---- ** V1ContainerRestartRuleOnExitCodes--- | V1ContainerRestartRuleOnExitCodes--- ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes.-data V1ContainerRestartRuleOnExitCodes = V1ContainerRestartRuleOnExitCodes- { v1ContainerRestartRuleOnExitCodesOperator :: !(Text) -- ^ /Required/ "operator" - Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the set of specified values. - NotIn: the requirement is satisfied if the container exit code is not in the set of specified values.- , v1ContainerRestartRuleOnExitCodesValues :: !(Maybe [Int]) -- ^ "values" - Specifies the set of values to check for container exit codes. At most 255 elements are allowed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerRestartRuleOnExitCodes-instance A.FromJSON V1ContainerRestartRuleOnExitCodes where- parseJSON = A.withObject "V1ContainerRestartRuleOnExitCodes" $ \o ->- V1ContainerRestartRuleOnExitCodes- <$> (o .: "operator")- <*> (o .:? "values")---- | ToJSON V1ContainerRestartRuleOnExitCodes-instance A.ToJSON V1ContainerRestartRuleOnExitCodes where- toJSON V1ContainerRestartRuleOnExitCodes {..} =- _omitNulls- [ "operator" .= v1ContainerRestartRuleOnExitCodesOperator- , "values" .= v1ContainerRestartRuleOnExitCodesValues- ]----- | Construct a value of type 'V1ContainerRestartRuleOnExitCodes' (by applying it's required fields, if any)-mkV1ContainerRestartRuleOnExitCodes- :: Text -- ^ 'v1ContainerRestartRuleOnExitCodesOperator': Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the set of specified values. - NotIn: the requirement is satisfied if the container exit code is not in the set of specified values.- -> V1ContainerRestartRuleOnExitCodes-mkV1ContainerRestartRuleOnExitCodes v1ContainerRestartRuleOnExitCodesOperator =- V1ContainerRestartRuleOnExitCodes- { v1ContainerRestartRuleOnExitCodesOperator- , v1ContainerRestartRuleOnExitCodesValues = Nothing- }---- ** V1ContainerState--- | V1ContainerState--- ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.-data V1ContainerState = V1ContainerState- { v1ContainerStateRunning :: !(Maybe V1ContainerStateRunning) -- ^ "running"- , v1ContainerStateTerminated :: !(Maybe V1ContainerStateTerminated) -- ^ "terminated"- , v1ContainerStateWaiting :: !(Maybe V1ContainerStateWaiting) -- ^ "waiting"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerState-instance A.FromJSON V1ContainerState where- parseJSON = A.withObject "V1ContainerState" $ \o ->- V1ContainerState- <$> (o .:? "running")- <*> (o .:? "terminated")- <*> (o .:? "waiting")---- | ToJSON V1ContainerState-instance A.ToJSON V1ContainerState where- toJSON V1ContainerState {..} =- _omitNulls- [ "running" .= v1ContainerStateRunning- , "terminated" .= v1ContainerStateTerminated- , "waiting" .= v1ContainerStateWaiting- ]----- | Construct a value of type 'V1ContainerState' (by applying it's required fields, if any)-mkV1ContainerState- :: V1ContainerState-mkV1ContainerState =- V1ContainerState- { v1ContainerStateRunning = Nothing- , v1ContainerStateTerminated = Nothing- , v1ContainerStateWaiting = Nothing- }---- ** V1ContainerStateRunning--- | V1ContainerStateRunning--- ContainerStateRunning is a running state of a container.-data V1ContainerStateRunning = V1ContainerStateRunning- { v1ContainerStateRunningStartedAt :: !(Maybe DateTime) -- ^ "startedAt" - Time at which the container was last (re-)started- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerStateRunning-instance A.FromJSON V1ContainerStateRunning where- parseJSON = A.withObject "V1ContainerStateRunning" $ \o ->- V1ContainerStateRunning- <$> (o .:? "startedAt")---- | ToJSON V1ContainerStateRunning-instance A.ToJSON V1ContainerStateRunning where- toJSON V1ContainerStateRunning {..} =- _omitNulls- [ "startedAt" .= v1ContainerStateRunningStartedAt- ]----- | Construct a value of type 'V1ContainerStateRunning' (by applying it's required fields, if any)-mkV1ContainerStateRunning- :: V1ContainerStateRunning-mkV1ContainerStateRunning =- V1ContainerStateRunning- { v1ContainerStateRunningStartedAt = Nothing- }---- ** V1ContainerStateTerminated--- | V1ContainerStateTerminated--- ContainerStateTerminated is a terminated state of a container.-data V1ContainerStateTerminated = V1ContainerStateTerminated- { v1ContainerStateTerminatedContainerId :: !(Maybe Text) -- ^ "containerID" - Container's ID in the format '<type>://<container_id>'- , v1ContainerStateTerminatedExitCode :: !(Int) -- ^ /Required/ "exitCode" - Exit status from the last termination of the container- , v1ContainerStateTerminatedFinishedAt :: !(Maybe DateTime) -- ^ "finishedAt" - Time at which the container last terminated- , v1ContainerStateTerminatedMessage :: !(Maybe Text) -- ^ "message" - Message regarding the last termination of the container- , v1ContainerStateTerminatedReason :: !(Maybe Text) -- ^ "reason" - (brief) reason from the last termination of the container- , v1ContainerStateTerminatedSignal :: !(Maybe Int) -- ^ "signal" - Signal from the last termination of the container- , v1ContainerStateTerminatedStartedAt :: !(Maybe DateTime) -- ^ "startedAt" - Time at which previous execution of the container started- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerStateTerminated-instance A.FromJSON V1ContainerStateTerminated where- parseJSON = A.withObject "V1ContainerStateTerminated" $ \o ->- V1ContainerStateTerminated- <$> (o .:? "containerID")- <*> (o .: "exitCode")- <*> (o .:? "finishedAt")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .:? "signal")- <*> (o .:? "startedAt")---- | ToJSON V1ContainerStateTerminated-instance A.ToJSON V1ContainerStateTerminated where- toJSON V1ContainerStateTerminated {..} =- _omitNulls- [ "containerID" .= v1ContainerStateTerminatedContainerId- , "exitCode" .= v1ContainerStateTerminatedExitCode- , "finishedAt" .= v1ContainerStateTerminatedFinishedAt- , "message" .= v1ContainerStateTerminatedMessage- , "reason" .= v1ContainerStateTerminatedReason- , "signal" .= v1ContainerStateTerminatedSignal- , "startedAt" .= v1ContainerStateTerminatedStartedAt- ]----- | Construct a value of type 'V1ContainerStateTerminated' (by applying it's required fields, if any)-mkV1ContainerStateTerminated- :: Int -- ^ 'v1ContainerStateTerminatedExitCode': Exit status from the last termination of the container- -> V1ContainerStateTerminated-mkV1ContainerStateTerminated v1ContainerStateTerminatedExitCode =- V1ContainerStateTerminated- { v1ContainerStateTerminatedContainerId = Nothing- , v1ContainerStateTerminatedExitCode- , v1ContainerStateTerminatedFinishedAt = Nothing- , v1ContainerStateTerminatedMessage = Nothing- , v1ContainerStateTerminatedReason = Nothing- , v1ContainerStateTerminatedSignal = Nothing- , v1ContainerStateTerminatedStartedAt = Nothing- }---- ** V1ContainerStateWaiting--- | V1ContainerStateWaiting--- ContainerStateWaiting is a waiting state of a container.-data V1ContainerStateWaiting = V1ContainerStateWaiting- { v1ContainerStateWaitingMessage :: !(Maybe Text) -- ^ "message" - Message regarding why the container is not yet running.- , v1ContainerStateWaitingReason :: !(Maybe Text) -- ^ "reason" - (brief) reason the container is not yet running.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerStateWaiting-instance A.FromJSON V1ContainerStateWaiting where- parseJSON = A.withObject "V1ContainerStateWaiting" $ \o ->- V1ContainerStateWaiting- <$> (o .:? "message")- <*> (o .:? "reason")---- | ToJSON V1ContainerStateWaiting-instance A.ToJSON V1ContainerStateWaiting where- toJSON V1ContainerStateWaiting {..} =- _omitNulls- [ "message" .= v1ContainerStateWaitingMessage- , "reason" .= v1ContainerStateWaitingReason- ]----- | Construct a value of type 'V1ContainerStateWaiting' (by applying it's required fields, if any)-mkV1ContainerStateWaiting- :: V1ContainerStateWaiting-mkV1ContainerStateWaiting =- V1ContainerStateWaiting- { v1ContainerStateWaitingMessage = Nothing- , v1ContainerStateWaitingReason = Nothing- }---- ** V1ContainerStatus--- | V1ContainerStatus--- ContainerStatus contains details for the current status of this container.-data V1ContainerStatus = V1ContainerStatus- { v1ContainerStatusAllocatedResources :: !(Maybe (Map.Map String Quantity)) -- ^ "allocatedResources" - AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.- , v1ContainerStatusAllocatedResourcesStatus :: !(Maybe [V1ResourceStatus]) -- ^ "allocatedResourcesStatus" - AllocatedResourcesStatus represents the status of various resources allocated for this Pod.- , v1ContainerStatusContainerId :: !(Maybe Text) -- ^ "containerID" - ContainerID is the ID of the container in the format '<type>://<container_id>'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \"containerd\").- , v1ContainerStatusImage :: !(Text) -- ^ /Required/ "image" - Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.- , v1ContainerStatusImageId :: !(Text) -- ^ /Required/ "imageID" - ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.- , v1ContainerStatusLastState :: !(Maybe V1ContainerState) -- ^ "lastState"- , v1ContainerStatusName :: !(Text) -- ^ /Required/ "name" - Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.- , v1ContainerStatusReady :: !(Bool) -- ^ /Required/ "ready" - Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field). The value is typically used to determine whether a container is ready to accept traffic.- , v1ContainerStatusResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"- , v1ContainerStatusRestartCount :: !(Int) -- ^ /Required/ "restartCount" - RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.- , v1ContainerStatusStarted :: !(Maybe Bool) -- ^ "started" - Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false.- , v1ContainerStatusState :: !(Maybe V1ContainerState) -- ^ "state"- , v1ContainerStatusStopSignal :: !(Maybe Text) -- ^ "stopSignal" - StopSignal reports the effective stop signal for this container- , v1ContainerStatusUser :: !(Maybe V1ContainerUser) -- ^ "user"- , v1ContainerStatusVolumeMounts :: !(Maybe [V1VolumeMountStatus]) -- ^ "volumeMounts" - Status of volume mounts.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerStatus-instance A.FromJSON V1ContainerStatus where- parseJSON = A.withObject "V1ContainerStatus" $ \o ->- V1ContainerStatus- <$> (o .:? "allocatedResources")- <*> (o .:? "allocatedResourcesStatus")- <*> (o .:? "containerID")- <*> (o .: "image")- <*> (o .: "imageID")- <*> (o .:? "lastState")- <*> (o .: "name")- <*> (o .: "ready")- <*> (o .:? "resources")- <*> (o .: "restartCount")- <*> (o .:? "started")- <*> (o .:? "state")- <*> (o .:? "stopSignal")- <*> (o .:? "user")- <*> (o .:? "volumeMounts")---- | ToJSON V1ContainerStatus-instance A.ToJSON V1ContainerStatus where- toJSON V1ContainerStatus {..} =- _omitNulls- [ "allocatedResources" .= v1ContainerStatusAllocatedResources- , "allocatedResourcesStatus" .= v1ContainerStatusAllocatedResourcesStatus- , "containerID" .= v1ContainerStatusContainerId- , "image" .= v1ContainerStatusImage- , "imageID" .= v1ContainerStatusImageId- , "lastState" .= v1ContainerStatusLastState- , "name" .= v1ContainerStatusName- , "ready" .= v1ContainerStatusReady- , "resources" .= v1ContainerStatusResources- , "restartCount" .= v1ContainerStatusRestartCount- , "started" .= v1ContainerStatusStarted- , "state" .= v1ContainerStatusState- , "stopSignal" .= v1ContainerStatusStopSignal- , "user" .= v1ContainerStatusUser- , "volumeMounts" .= v1ContainerStatusVolumeMounts- ]----- | Construct a value of type 'V1ContainerStatus' (by applying it's required fields, if any)-mkV1ContainerStatus- :: Text -- ^ 'v1ContainerStatusImage': Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.- -> Text -- ^ 'v1ContainerStatusImageId': ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.- -> Text -- ^ 'v1ContainerStatusName': Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.- -> Bool -- ^ 'v1ContainerStatusReady': Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field). The value is typically used to determine whether a container is ready to accept traffic.- -> Int -- ^ 'v1ContainerStatusRestartCount': RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.- -> V1ContainerStatus-mkV1ContainerStatus v1ContainerStatusImage v1ContainerStatusImageId v1ContainerStatusName v1ContainerStatusReady v1ContainerStatusRestartCount =- V1ContainerStatus- { v1ContainerStatusAllocatedResources = Nothing- , v1ContainerStatusAllocatedResourcesStatus = Nothing- , v1ContainerStatusContainerId = Nothing- , v1ContainerStatusImage- , v1ContainerStatusImageId- , v1ContainerStatusLastState = Nothing- , v1ContainerStatusName- , v1ContainerStatusReady- , v1ContainerStatusResources = Nothing- , v1ContainerStatusRestartCount- , v1ContainerStatusStarted = Nothing- , v1ContainerStatusState = Nothing- , v1ContainerStatusStopSignal = Nothing- , v1ContainerStatusUser = Nothing- , v1ContainerStatusVolumeMounts = Nothing- }---- ** V1ContainerUser--- | V1ContainerUser--- ContainerUser represents user identity information-data V1ContainerUser = V1ContainerUser- { v1ContainerUserLinux :: !(Maybe V1LinuxContainerUser) -- ^ "linux"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ContainerUser-instance A.FromJSON V1ContainerUser where- parseJSON = A.withObject "V1ContainerUser" $ \o ->- V1ContainerUser- <$> (o .:? "linux")---- | ToJSON V1ContainerUser-instance A.ToJSON V1ContainerUser where- toJSON V1ContainerUser {..} =- _omitNulls- [ "linux" .= v1ContainerUserLinux- ]----- | Construct a value of type 'V1ContainerUser' (by applying it's required fields, if any)-mkV1ContainerUser- :: V1ContainerUser-mkV1ContainerUser =- V1ContainerUser- { v1ContainerUserLinux = Nothing- }---- ** V1ControllerRevision--- | V1ControllerRevision--- ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.-data V1ControllerRevision = V1ControllerRevision- { v1ControllerRevisionApiVersion :: !(Maybe Text) -- ^ "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- , v1ControllerRevisionData :: !(Maybe A.Value) -- ^ "data" - Data is the serialized representation of the state.- , v1ControllerRevisionKind :: !(Maybe Text) -- ^ "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- , v1ControllerRevisionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ControllerRevisionRevision :: !(Integer) -- ^ /Required/ "revision" - Revision indicates the revision of the state represented by Data.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ControllerRevision-instance A.FromJSON V1ControllerRevision where- parseJSON = A.withObject "V1ControllerRevision" $ \o ->- V1ControllerRevision- <$> (o .:? "apiVersion")- <*> (o .:? "data")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "revision")---- | ToJSON V1ControllerRevision-instance A.ToJSON V1ControllerRevision where- toJSON V1ControllerRevision {..} =- _omitNulls- [ "apiVersion" .= v1ControllerRevisionApiVersion- , "data" .= v1ControllerRevisionData- , "kind" .= v1ControllerRevisionKind- , "metadata" .= v1ControllerRevisionMetadata- , "revision" .= v1ControllerRevisionRevision- ]----- | Construct a value of type 'V1ControllerRevision' (by applying it's required fields, if any)-mkV1ControllerRevision- :: Integer -- ^ 'v1ControllerRevisionRevision': Revision indicates the revision of the state represented by Data.- -> V1ControllerRevision-mkV1ControllerRevision v1ControllerRevisionRevision =- V1ControllerRevision- { v1ControllerRevisionApiVersion = Nothing- , v1ControllerRevisionData = Nothing- , v1ControllerRevisionKind = Nothing- , v1ControllerRevisionMetadata = Nothing- , v1ControllerRevisionRevision- }---- ** V1ControllerRevisionList--- | V1ControllerRevisionList--- ControllerRevisionList is a resource containing a list of ControllerRevision objects.-data V1ControllerRevisionList = V1ControllerRevisionList- { v1ControllerRevisionListApiVersion :: !(Maybe Text) -- ^ "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- , v1ControllerRevisionListItems :: !([V1ControllerRevision]) -- ^ /Required/ "items" - Items is the list of ControllerRevisions- , v1ControllerRevisionListKind :: !(Maybe Text) -- ^ "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- , v1ControllerRevisionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ControllerRevisionList-instance A.FromJSON V1ControllerRevisionList where- parseJSON = A.withObject "V1ControllerRevisionList" $ \o ->- V1ControllerRevisionList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ControllerRevisionList-instance A.ToJSON V1ControllerRevisionList where- toJSON V1ControllerRevisionList {..} =- _omitNulls- [ "apiVersion" .= v1ControllerRevisionListApiVersion- , "items" .= v1ControllerRevisionListItems- , "kind" .= v1ControllerRevisionListKind- , "metadata" .= v1ControllerRevisionListMetadata- ]----- | Construct a value of type 'V1ControllerRevisionList' (by applying it's required fields, if any)-mkV1ControllerRevisionList- :: [V1ControllerRevision] -- ^ 'v1ControllerRevisionListItems': Items is the list of ControllerRevisions- -> V1ControllerRevisionList-mkV1ControllerRevisionList v1ControllerRevisionListItems =- V1ControllerRevisionList- { v1ControllerRevisionListApiVersion = Nothing- , v1ControllerRevisionListItems- , v1ControllerRevisionListKind = Nothing- , v1ControllerRevisionListMetadata = Nothing- }---- ** V1Counter--- | V1Counter--- Counter describes a quantity associated with a device.-data V1Counter = V1Counter- { v1CounterValue :: !(Quantity) -- ^ /Required/ "value"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Counter-instance A.FromJSON V1Counter where- parseJSON = A.withObject "V1Counter" $ \o ->- V1Counter- <$> (o .: "value")---- | ToJSON V1Counter-instance A.ToJSON V1Counter where- toJSON V1Counter {..} =- _omitNulls- [ "value" .= v1CounterValue- ]----- | Construct a value of type 'V1Counter' (by applying it's required fields, if any)-mkV1Counter- :: Quantity -- ^ 'v1CounterValue' - -> V1Counter-mkV1Counter v1CounterValue =- V1Counter- { v1CounterValue- }---- ** V1CounterSet--- | V1CounterSet--- CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.-data V1CounterSet = V1CounterSet- { v1CounterSetCounters :: !((Map.Map String V1Counter)) -- ^ /Required/ "counters" - Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters in all sets is 32.- , v1CounterSetName :: !(Text) -- ^ /Required/ "name" - Name defines the name of the counter set. It must be a DNS label.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CounterSet-instance A.FromJSON V1CounterSet where- parseJSON = A.withObject "V1CounterSet" $ \o ->- V1CounterSet- <$> (o .: "counters")- <*> (o .: "name")---- | ToJSON V1CounterSet-instance A.ToJSON V1CounterSet where- toJSON V1CounterSet {..} =- _omitNulls- [ "counters" .= v1CounterSetCounters- , "name" .= v1CounterSetName- ]----- | Construct a value of type 'V1CounterSet' (by applying it's required fields, if any)-mkV1CounterSet- :: (Map.Map String V1Counter) -- ^ 'v1CounterSetCounters': Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters in all sets is 32.- -> Text -- ^ 'v1CounterSetName': Name defines the name of the counter set. It must be a DNS label.- -> V1CounterSet-mkV1CounterSet v1CounterSetCounters v1CounterSetName =- V1CounterSet- { v1CounterSetCounters- , v1CounterSetName- }---- ** V1CronJob--- | V1CronJob--- CronJob represents the configuration of a single cron job.-data V1CronJob = V1CronJob- { v1CronJobApiVersion :: !(Maybe Text) -- ^ "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- , v1CronJobKind :: !(Maybe Text) -- ^ "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- , v1CronJobMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1CronJobSpec :: !(Maybe V1CronJobSpec) -- ^ "spec"- , v1CronJobStatus :: !(Maybe V1CronJobStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CronJob-instance A.FromJSON V1CronJob where- parseJSON = A.withObject "V1CronJob" $ \o ->- V1CronJob- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1CronJob-instance A.ToJSON V1CronJob where- toJSON V1CronJob {..} =- _omitNulls- [ "apiVersion" .= v1CronJobApiVersion- , "kind" .= v1CronJobKind- , "metadata" .= v1CronJobMetadata- , "spec" .= v1CronJobSpec- , "status" .= v1CronJobStatus- ]----- | Construct a value of type 'V1CronJob' (by applying it's required fields, if any)-mkV1CronJob- :: V1CronJob-mkV1CronJob =- V1CronJob- { v1CronJobApiVersion = Nothing- , v1CronJobKind = Nothing- , v1CronJobMetadata = Nothing- , v1CronJobSpec = Nothing- , v1CronJobStatus = Nothing- }---- ** V1CronJobList--- | V1CronJobList--- CronJobList is a collection of cron jobs.-data V1CronJobList = V1CronJobList- { v1CronJobListApiVersion :: !(Maybe Text) -- ^ "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- , v1CronJobListItems :: !([V1CronJob]) -- ^ /Required/ "items" - items is the list of CronJobs.- , v1CronJobListKind :: !(Maybe Text) -- ^ "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- , v1CronJobListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CronJobList-instance A.FromJSON V1CronJobList where- parseJSON = A.withObject "V1CronJobList" $ \o ->- V1CronJobList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1CronJobList-instance A.ToJSON V1CronJobList where- toJSON V1CronJobList {..} =- _omitNulls- [ "apiVersion" .= v1CronJobListApiVersion- , "items" .= v1CronJobListItems- , "kind" .= v1CronJobListKind- , "metadata" .= v1CronJobListMetadata- ]----- | Construct a value of type 'V1CronJobList' (by applying it's required fields, if any)-mkV1CronJobList- :: [V1CronJob] -- ^ 'v1CronJobListItems': items is the list of CronJobs.- -> V1CronJobList-mkV1CronJobList v1CronJobListItems =- V1CronJobList- { v1CronJobListApiVersion = Nothing- , v1CronJobListItems- , v1CronJobListKind = Nothing- , v1CronJobListMetadata = Nothing- }---- ** V1CronJobSpec--- | V1CronJobSpec--- CronJobSpec describes how the job execution will look like and when it will actually run.-data V1CronJobSpec = V1CronJobSpec- { v1CronJobSpecConcurrencyPolicy :: !(Maybe Text) -- ^ "concurrencyPolicy" - Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one- , v1CronJobSpecFailedJobsHistoryLimit :: !(Maybe Int) -- ^ "failedJobsHistoryLimit" - The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.- , v1CronJobSpecJobTemplate :: !(V1JobTemplateSpec) -- ^ /Required/ "jobTemplate"- , v1CronJobSpecSchedule :: !(Text) -- ^ /Required/ "schedule" - The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.- , v1CronJobSpecStartingDeadlineSeconds :: !(Maybe Integer) -- ^ "startingDeadlineSeconds" - Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.- , v1CronJobSpecSuccessfulJobsHistoryLimit :: !(Maybe Int) -- ^ "successfulJobsHistoryLimit" - The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.- , v1CronJobSpecSuspend :: !(Maybe Bool) -- ^ "suspend" - This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.- , v1CronJobSpecTimeZone :: !(Maybe Text) -- ^ "timeZone" - The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CronJobSpec-instance A.FromJSON V1CronJobSpec where- parseJSON = A.withObject "V1CronJobSpec" $ \o ->- V1CronJobSpec- <$> (o .:? "concurrencyPolicy")- <*> (o .:? "failedJobsHistoryLimit")- <*> (o .: "jobTemplate")- <*> (o .: "schedule")- <*> (o .:? "startingDeadlineSeconds")- <*> (o .:? "successfulJobsHistoryLimit")- <*> (o .:? "suspend")- <*> (o .:? "timeZone")---- | ToJSON V1CronJobSpec-instance A.ToJSON V1CronJobSpec where- toJSON V1CronJobSpec {..} =- _omitNulls- [ "concurrencyPolicy" .= v1CronJobSpecConcurrencyPolicy- , "failedJobsHistoryLimit" .= v1CronJobSpecFailedJobsHistoryLimit- , "jobTemplate" .= v1CronJobSpecJobTemplate- , "schedule" .= v1CronJobSpecSchedule- , "startingDeadlineSeconds" .= v1CronJobSpecStartingDeadlineSeconds- , "successfulJobsHistoryLimit" .= v1CronJobSpecSuccessfulJobsHistoryLimit- , "suspend" .= v1CronJobSpecSuspend- , "timeZone" .= v1CronJobSpecTimeZone- ]----- | Construct a value of type 'V1CronJobSpec' (by applying it's required fields, if any)-mkV1CronJobSpec- :: V1JobTemplateSpec -- ^ 'v1CronJobSpecJobTemplate' - -> Text -- ^ 'v1CronJobSpecSchedule': The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.- -> V1CronJobSpec-mkV1CronJobSpec v1CronJobSpecJobTemplate v1CronJobSpecSchedule =- V1CronJobSpec- { v1CronJobSpecConcurrencyPolicy = Nothing- , v1CronJobSpecFailedJobsHistoryLimit = Nothing- , v1CronJobSpecJobTemplate- , v1CronJobSpecSchedule- , v1CronJobSpecStartingDeadlineSeconds = Nothing- , v1CronJobSpecSuccessfulJobsHistoryLimit = Nothing- , v1CronJobSpecSuspend = Nothing- , v1CronJobSpecTimeZone = Nothing- }---- ** V1CronJobStatus--- | V1CronJobStatus--- CronJobStatus represents the current state of a cron job.-data V1CronJobStatus = V1CronJobStatus- { v1CronJobStatusActive :: !(Maybe [V1ObjectReference]) -- ^ "active" - A list of pointers to currently running jobs.- , v1CronJobStatusLastScheduleTime :: !(Maybe DateTime) -- ^ "lastScheduleTime" - Information when was the last time the job was successfully scheduled.- , v1CronJobStatusLastSuccessfulTime :: !(Maybe DateTime) -- ^ "lastSuccessfulTime" - Information when was the last time the job successfully completed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CronJobStatus-instance A.FromJSON V1CronJobStatus where- parseJSON = A.withObject "V1CronJobStatus" $ \o ->- V1CronJobStatus- <$> (o .:? "active")- <*> (o .:? "lastScheduleTime")- <*> (o .:? "lastSuccessfulTime")---- | ToJSON V1CronJobStatus-instance A.ToJSON V1CronJobStatus where- toJSON V1CronJobStatus {..} =- _omitNulls- [ "active" .= v1CronJobStatusActive- , "lastScheduleTime" .= v1CronJobStatusLastScheduleTime- , "lastSuccessfulTime" .= v1CronJobStatusLastSuccessfulTime- ]----- | Construct a value of type 'V1CronJobStatus' (by applying it's required fields, if any)-mkV1CronJobStatus- :: V1CronJobStatus-mkV1CronJobStatus =- V1CronJobStatus- { v1CronJobStatusActive = Nothing- , v1CronJobStatusLastScheduleTime = Nothing- , v1CronJobStatusLastSuccessfulTime = Nothing- }---- ** V1CrossVersionObjectReference--- | V1CrossVersionObjectReference--- CrossVersionObjectReference contains enough information to let you identify the referred resource.-data V1CrossVersionObjectReference = V1CrossVersionObjectReference- { v1CrossVersionObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - apiVersion is the API version of the referent- , v1CrossVersionObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds- , v1CrossVersionObjectReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CrossVersionObjectReference-instance A.FromJSON V1CrossVersionObjectReference where- parseJSON = A.withObject "V1CrossVersionObjectReference" $ \o ->- V1CrossVersionObjectReference- <$> (o .:? "apiVersion")- <*> (o .: "kind")- <*> (o .: "name")---- | ToJSON V1CrossVersionObjectReference-instance A.ToJSON V1CrossVersionObjectReference where- toJSON V1CrossVersionObjectReference {..} =- _omitNulls- [ "apiVersion" .= v1CrossVersionObjectReferenceApiVersion- , "kind" .= v1CrossVersionObjectReferenceKind- , "name" .= v1CrossVersionObjectReferenceName- ]----- | Construct a value of type 'V1CrossVersionObjectReference' (by applying it's required fields, if any)-mkV1CrossVersionObjectReference- :: Text -- ^ 'v1CrossVersionObjectReferenceKind': kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds- -> Text -- ^ 'v1CrossVersionObjectReferenceName': name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- -> V1CrossVersionObjectReference-mkV1CrossVersionObjectReference v1CrossVersionObjectReferenceKind v1CrossVersionObjectReferenceName =- V1CrossVersionObjectReference- { v1CrossVersionObjectReferenceApiVersion = Nothing- , v1CrossVersionObjectReferenceKind- , v1CrossVersionObjectReferenceName- }---- ** V1CustomResourceColumnDefinition--- | V1CustomResourceColumnDefinition--- CustomResourceColumnDefinition specifies a column for server side printing.-data V1CustomResourceColumnDefinition = V1CustomResourceColumnDefinition- { v1CustomResourceColumnDefinitionDescription :: !(Maybe Text) -- ^ "description" - description is a human readable description of this column.- , v1CustomResourceColumnDefinitionFormat :: !(Maybe Text) -- ^ "format" - format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.- , v1CustomResourceColumnDefinitionJsonPath :: !(Text) -- ^ /Required/ "jsonPath" - jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.- , v1CustomResourceColumnDefinitionName :: !(Text) -- ^ /Required/ "name" - name is a human readable name for the column.- , v1CustomResourceColumnDefinitionPriority :: !(Maybe Int) -- ^ "priority" - priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.- , v1CustomResourceColumnDefinitionType :: !(Text) -- ^ /Required/ "type" - type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceColumnDefinition-instance A.FromJSON V1CustomResourceColumnDefinition where- parseJSON = A.withObject "V1CustomResourceColumnDefinition" $ \o ->- V1CustomResourceColumnDefinition- <$> (o .:? "description")- <*> (o .:? "format")- <*> (o .: "jsonPath")- <*> (o .: "name")- <*> (o .:? "priority")- <*> (o .: "type")---- | ToJSON V1CustomResourceColumnDefinition-instance A.ToJSON V1CustomResourceColumnDefinition where- toJSON V1CustomResourceColumnDefinition {..} =- _omitNulls- [ "description" .= v1CustomResourceColumnDefinitionDescription- , "format" .= v1CustomResourceColumnDefinitionFormat- , "jsonPath" .= v1CustomResourceColumnDefinitionJsonPath- , "name" .= v1CustomResourceColumnDefinitionName- , "priority" .= v1CustomResourceColumnDefinitionPriority- , "type" .= v1CustomResourceColumnDefinitionType- ]----- | Construct a value of type 'V1CustomResourceColumnDefinition' (by applying it's required fields, if any)-mkV1CustomResourceColumnDefinition- :: Text -- ^ 'v1CustomResourceColumnDefinitionJsonPath': jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.- -> Text -- ^ 'v1CustomResourceColumnDefinitionName': name is a human readable name for the column.- -> Text -- ^ 'v1CustomResourceColumnDefinitionType': type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.- -> V1CustomResourceColumnDefinition-mkV1CustomResourceColumnDefinition v1CustomResourceColumnDefinitionJsonPath v1CustomResourceColumnDefinitionName v1CustomResourceColumnDefinitionType =- V1CustomResourceColumnDefinition- { v1CustomResourceColumnDefinitionDescription = Nothing- , v1CustomResourceColumnDefinitionFormat = Nothing- , v1CustomResourceColumnDefinitionJsonPath- , v1CustomResourceColumnDefinitionName- , v1CustomResourceColumnDefinitionPriority = Nothing- , v1CustomResourceColumnDefinitionType- }---- ** V1CustomResourceConversion--- | V1CustomResourceConversion--- CustomResourceConversion describes how to convert different versions of a CR.-data V1CustomResourceConversion = V1CustomResourceConversion- { v1CustomResourceConversionStrategy :: !(Text) -- ^ /Required/ "strategy" - strategy specifies how custom resources are converted between versions. Allowed values are: - `\"None\"`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `\"Webhook\"`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.- , v1CustomResourceConversionWebhook :: !(Maybe V1WebhookConversion) -- ^ "webhook"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceConversion-instance A.FromJSON V1CustomResourceConversion where- parseJSON = A.withObject "V1CustomResourceConversion" $ \o ->- V1CustomResourceConversion- <$> (o .: "strategy")- <*> (o .:? "webhook")---- | ToJSON V1CustomResourceConversion-instance A.ToJSON V1CustomResourceConversion where- toJSON V1CustomResourceConversion {..} =- _omitNulls- [ "strategy" .= v1CustomResourceConversionStrategy- , "webhook" .= v1CustomResourceConversionWebhook- ]----- | Construct a value of type 'V1CustomResourceConversion' (by applying it's required fields, if any)-mkV1CustomResourceConversion- :: Text -- ^ 'v1CustomResourceConversionStrategy': strategy specifies how custom resources are converted between versions. Allowed values are: - `\"None\"`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `\"Webhook\"`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.- -> V1CustomResourceConversion-mkV1CustomResourceConversion v1CustomResourceConversionStrategy =- V1CustomResourceConversion- { v1CustomResourceConversionStrategy- , v1CustomResourceConversionWebhook = Nothing- }---- ** V1CustomResourceDefinition--- | V1CustomResourceDefinition--- CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>.-data V1CustomResourceDefinition = V1CustomResourceDefinition- { v1CustomResourceDefinitionApiVersion :: !(Maybe Text) -- ^ "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- , v1CustomResourceDefinitionKind :: !(Maybe Text) -- ^ "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- , v1CustomResourceDefinitionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1CustomResourceDefinitionSpec :: !(V1CustomResourceDefinitionSpec) -- ^ /Required/ "spec"- , v1CustomResourceDefinitionStatus :: !(Maybe V1CustomResourceDefinitionStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceDefinition-instance A.FromJSON V1CustomResourceDefinition where- parseJSON = A.withObject "V1CustomResourceDefinition" $ \o ->- V1CustomResourceDefinition- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1CustomResourceDefinition-instance A.ToJSON V1CustomResourceDefinition where- toJSON V1CustomResourceDefinition {..} =- _omitNulls- [ "apiVersion" .= v1CustomResourceDefinitionApiVersion- , "kind" .= v1CustomResourceDefinitionKind- , "metadata" .= v1CustomResourceDefinitionMetadata- , "spec" .= v1CustomResourceDefinitionSpec- , "status" .= v1CustomResourceDefinitionStatus- ]----- | Construct a value of type 'V1CustomResourceDefinition' (by applying it's required fields, if any)-mkV1CustomResourceDefinition- :: V1CustomResourceDefinitionSpec -- ^ 'v1CustomResourceDefinitionSpec' - -> V1CustomResourceDefinition-mkV1CustomResourceDefinition v1CustomResourceDefinitionSpec =- V1CustomResourceDefinition- { v1CustomResourceDefinitionApiVersion = Nothing- , v1CustomResourceDefinitionKind = Nothing- , v1CustomResourceDefinitionMetadata = Nothing- , v1CustomResourceDefinitionSpec- , v1CustomResourceDefinitionStatus = Nothing- }---- ** V1CustomResourceDefinitionCondition--- | V1CustomResourceDefinitionCondition--- CustomResourceDefinitionCondition contains details for the current condition of this pod.-data V1CustomResourceDefinitionCondition = V1CustomResourceDefinitionCondition- { v1CustomResourceDefinitionConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime last time the condition transitioned from one status to another.- , v1CustomResourceDefinitionConditionMessage :: !(Maybe Text) -- ^ "message" - message is a human-readable message indicating details about last transition.- , v1CustomResourceDefinitionConditionReason :: !(Maybe Text) -- ^ "reason" - reason is a unique, one-word, CamelCase reason for the condition's last transition.- , v1CustomResourceDefinitionConditionStatus :: !(Text) -- ^ /Required/ "status" - status is the status of the condition. Can be True, False, Unknown.- , v1CustomResourceDefinitionConditionType :: !(Text) -- ^ /Required/ "type" - type is the type of the condition. Types include Established, NamesAccepted and Terminating.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceDefinitionCondition-instance A.FromJSON V1CustomResourceDefinitionCondition where- parseJSON = A.withObject "V1CustomResourceDefinitionCondition" $ \o ->- V1CustomResourceDefinitionCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1CustomResourceDefinitionCondition-instance A.ToJSON V1CustomResourceDefinitionCondition where- toJSON V1CustomResourceDefinitionCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1CustomResourceDefinitionConditionLastTransitionTime- , "message" .= v1CustomResourceDefinitionConditionMessage- , "reason" .= v1CustomResourceDefinitionConditionReason- , "status" .= v1CustomResourceDefinitionConditionStatus- , "type" .= v1CustomResourceDefinitionConditionType- ]----- | Construct a value of type 'V1CustomResourceDefinitionCondition' (by applying it's required fields, if any)-mkV1CustomResourceDefinitionCondition- :: Text -- ^ 'v1CustomResourceDefinitionConditionStatus': status is the status of the condition. Can be True, False, Unknown.- -> Text -- ^ 'v1CustomResourceDefinitionConditionType': type is the type of the condition. Types include Established, NamesAccepted and Terminating.- -> V1CustomResourceDefinitionCondition-mkV1CustomResourceDefinitionCondition v1CustomResourceDefinitionConditionStatus v1CustomResourceDefinitionConditionType =- V1CustomResourceDefinitionCondition- { v1CustomResourceDefinitionConditionLastTransitionTime = Nothing- , v1CustomResourceDefinitionConditionMessage = Nothing- , v1CustomResourceDefinitionConditionReason = Nothing- , v1CustomResourceDefinitionConditionStatus- , v1CustomResourceDefinitionConditionType- }---- ** V1CustomResourceDefinitionList--- | V1CustomResourceDefinitionList--- CustomResourceDefinitionList is a list of CustomResourceDefinition objects.-data V1CustomResourceDefinitionList = V1CustomResourceDefinitionList- { v1CustomResourceDefinitionListApiVersion :: !(Maybe Text) -- ^ "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- , v1CustomResourceDefinitionListItems :: !([V1CustomResourceDefinition]) -- ^ /Required/ "items" - items list individual CustomResourceDefinition objects- , v1CustomResourceDefinitionListKind :: !(Maybe Text) -- ^ "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- , v1CustomResourceDefinitionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceDefinitionList-instance A.FromJSON V1CustomResourceDefinitionList where- parseJSON = A.withObject "V1CustomResourceDefinitionList" $ \o ->- V1CustomResourceDefinitionList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1CustomResourceDefinitionList-instance A.ToJSON V1CustomResourceDefinitionList where- toJSON V1CustomResourceDefinitionList {..} =- _omitNulls- [ "apiVersion" .= v1CustomResourceDefinitionListApiVersion- , "items" .= v1CustomResourceDefinitionListItems- , "kind" .= v1CustomResourceDefinitionListKind- , "metadata" .= v1CustomResourceDefinitionListMetadata- ]----- | Construct a value of type 'V1CustomResourceDefinitionList' (by applying it's required fields, if any)-mkV1CustomResourceDefinitionList- :: [V1CustomResourceDefinition] -- ^ 'v1CustomResourceDefinitionListItems': items list individual CustomResourceDefinition objects- -> V1CustomResourceDefinitionList-mkV1CustomResourceDefinitionList v1CustomResourceDefinitionListItems =- V1CustomResourceDefinitionList- { v1CustomResourceDefinitionListApiVersion = Nothing- , v1CustomResourceDefinitionListItems- , v1CustomResourceDefinitionListKind = Nothing- , v1CustomResourceDefinitionListMetadata = Nothing- }---- ** V1CustomResourceDefinitionNames--- | V1CustomResourceDefinitionNames--- CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition-data V1CustomResourceDefinitionNames = V1CustomResourceDefinitionNames- { v1CustomResourceDefinitionNamesCategories :: !(Maybe [Text]) -- ^ "categories" - categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.- , v1CustomResourceDefinitionNamesKind :: !(Text) -- ^ /Required/ "kind" - kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.- , v1CustomResourceDefinitionNamesListKind :: !(Maybe Text) -- ^ "listKind" - listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".- , v1CustomResourceDefinitionNamesPlural :: !(Text) -- ^ /Required/ "plural" - plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.- , v1CustomResourceDefinitionNamesShortNames :: !(Maybe [Text]) -- ^ "shortNames" - shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get <shortname>`. It must be all lowercase.- , v1CustomResourceDefinitionNamesSingular :: !(Maybe Text) -- ^ "singular" - singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceDefinitionNames-instance A.FromJSON V1CustomResourceDefinitionNames where- parseJSON = A.withObject "V1CustomResourceDefinitionNames" $ \o ->- V1CustomResourceDefinitionNames- <$> (o .:? "categories")- <*> (o .: "kind")- <*> (o .:? "listKind")- <*> (o .: "plural")- <*> (o .:? "shortNames")- <*> (o .:? "singular")---- | ToJSON V1CustomResourceDefinitionNames-instance A.ToJSON V1CustomResourceDefinitionNames where- toJSON V1CustomResourceDefinitionNames {..} =- _omitNulls- [ "categories" .= v1CustomResourceDefinitionNamesCategories- , "kind" .= v1CustomResourceDefinitionNamesKind- , "listKind" .= v1CustomResourceDefinitionNamesListKind- , "plural" .= v1CustomResourceDefinitionNamesPlural- , "shortNames" .= v1CustomResourceDefinitionNamesShortNames- , "singular" .= v1CustomResourceDefinitionNamesSingular- ]----- | Construct a value of type 'V1CustomResourceDefinitionNames' (by applying it's required fields, if any)-mkV1CustomResourceDefinitionNames- :: Text -- ^ 'v1CustomResourceDefinitionNamesKind': kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.- -> Text -- ^ 'v1CustomResourceDefinitionNamesPlural': plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.- -> V1CustomResourceDefinitionNames-mkV1CustomResourceDefinitionNames v1CustomResourceDefinitionNamesKind v1CustomResourceDefinitionNamesPlural =- V1CustomResourceDefinitionNames- { v1CustomResourceDefinitionNamesCategories = Nothing- , v1CustomResourceDefinitionNamesKind- , v1CustomResourceDefinitionNamesListKind = Nothing- , v1CustomResourceDefinitionNamesPlural- , v1CustomResourceDefinitionNamesShortNames = Nothing- , v1CustomResourceDefinitionNamesSingular = Nothing- }---- ** V1CustomResourceDefinitionSpec--- | V1CustomResourceDefinitionSpec--- CustomResourceDefinitionSpec describes how a user wants their resource to appear-data V1CustomResourceDefinitionSpec = V1CustomResourceDefinitionSpec- { v1CustomResourceDefinitionSpecConversion :: !(Maybe V1CustomResourceConversion) -- ^ "conversion"- , v1CustomResourceDefinitionSpecGroup :: !(Text) -- ^ /Required/ "group" - group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).- , v1CustomResourceDefinitionSpecNames :: !(V1CustomResourceDefinitionNames) -- ^ /Required/ "names"- , v1CustomResourceDefinitionSpecPreserveUnknownFields :: !(Maybe Bool) -- ^ "preserveUnknownFields" - preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning for details.- , v1CustomResourceDefinitionSpecScope :: !(Text) -- ^ /Required/ "scope" - scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.- , v1CustomResourceDefinitionSpecVersions :: !([V1CustomResourceDefinitionVersion]) -- ^ /Required/ "versions" - versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceDefinitionSpec-instance A.FromJSON V1CustomResourceDefinitionSpec where- parseJSON = A.withObject "V1CustomResourceDefinitionSpec" $ \o ->- V1CustomResourceDefinitionSpec- <$> (o .:? "conversion")- <*> (o .: "group")- <*> (o .: "names")- <*> (o .:? "preserveUnknownFields")- <*> (o .: "scope")- <*> (o .: "versions")---- | ToJSON V1CustomResourceDefinitionSpec-instance A.ToJSON V1CustomResourceDefinitionSpec where- toJSON V1CustomResourceDefinitionSpec {..} =- _omitNulls- [ "conversion" .= v1CustomResourceDefinitionSpecConversion- , "group" .= v1CustomResourceDefinitionSpecGroup- , "names" .= v1CustomResourceDefinitionSpecNames- , "preserveUnknownFields" .= v1CustomResourceDefinitionSpecPreserveUnknownFields- , "scope" .= v1CustomResourceDefinitionSpecScope- , "versions" .= v1CustomResourceDefinitionSpecVersions- ]----- | Construct a value of type 'V1CustomResourceDefinitionSpec' (by applying it's required fields, if any)-mkV1CustomResourceDefinitionSpec- :: Text -- ^ 'v1CustomResourceDefinitionSpecGroup': group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).- -> V1CustomResourceDefinitionNames -- ^ 'v1CustomResourceDefinitionSpecNames' - -> Text -- ^ 'v1CustomResourceDefinitionSpecScope': scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.- -> [V1CustomResourceDefinitionVersion] -- ^ 'v1CustomResourceDefinitionSpecVersions': versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.- -> V1CustomResourceDefinitionSpec-mkV1CustomResourceDefinitionSpec v1CustomResourceDefinitionSpecGroup v1CustomResourceDefinitionSpecNames v1CustomResourceDefinitionSpecScope v1CustomResourceDefinitionSpecVersions =- V1CustomResourceDefinitionSpec- { v1CustomResourceDefinitionSpecConversion = Nothing- , v1CustomResourceDefinitionSpecGroup- , v1CustomResourceDefinitionSpecNames- , v1CustomResourceDefinitionSpecPreserveUnknownFields = Nothing- , v1CustomResourceDefinitionSpecScope- , v1CustomResourceDefinitionSpecVersions- }---- ** V1CustomResourceDefinitionStatus--- | V1CustomResourceDefinitionStatus--- CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition-data V1CustomResourceDefinitionStatus = V1CustomResourceDefinitionStatus- { v1CustomResourceDefinitionStatusAcceptedNames :: !(Maybe V1CustomResourceDefinitionNames) -- ^ "acceptedNames"- , v1CustomResourceDefinitionStatusConditions :: !(Maybe [V1CustomResourceDefinitionCondition]) -- ^ "conditions" - conditions indicate state for particular aspects of a CustomResourceDefinition- , v1CustomResourceDefinitionStatusStoredVersions :: !(Maybe [Text]) -- ^ "storedVersions" - storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceDefinitionStatus-instance A.FromJSON V1CustomResourceDefinitionStatus where- parseJSON = A.withObject "V1CustomResourceDefinitionStatus" $ \o ->- V1CustomResourceDefinitionStatus- <$> (o .:? "acceptedNames")- <*> (o .:? "conditions")- <*> (o .:? "storedVersions")---- | ToJSON V1CustomResourceDefinitionStatus-instance A.ToJSON V1CustomResourceDefinitionStatus where- toJSON V1CustomResourceDefinitionStatus {..} =- _omitNulls- [ "acceptedNames" .= v1CustomResourceDefinitionStatusAcceptedNames- , "conditions" .= v1CustomResourceDefinitionStatusConditions- , "storedVersions" .= v1CustomResourceDefinitionStatusStoredVersions- ]----- | Construct a value of type 'V1CustomResourceDefinitionStatus' (by applying it's required fields, if any)-mkV1CustomResourceDefinitionStatus- :: V1CustomResourceDefinitionStatus-mkV1CustomResourceDefinitionStatus =- V1CustomResourceDefinitionStatus- { v1CustomResourceDefinitionStatusAcceptedNames = Nothing- , v1CustomResourceDefinitionStatusConditions = Nothing- , v1CustomResourceDefinitionStatusStoredVersions = Nothing- }---- ** V1CustomResourceDefinitionVersion--- | V1CustomResourceDefinitionVersion--- CustomResourceDefinitionVersion describes a version for CRD.-data V1CustomResourceDefinitionVersion = V1CustomResourceDefinitionVersion- { v1CustomResourceDefinitionVersionAdditionalPrinterColumns :: !(Maybe [V1CustomResourceColumnDefinition]) -- ^ "additionalPrinterColumns" - additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.- , v1CustomResourceDefinitionVersionDeprecated :: !(Maybe Bool) -- ^ "deprecated" - deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.- , v1CustomResourceDefinitionVersionDeprecationWarning :: !(Maybe Text) -- ^ "deprecationWarning" - deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.- , v1CustomResourceDefinitionVersionName :: !(Text) -- ^ /Required/ "name" - name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true.- , v1CustomResourceDefinitionVersionSchema :: !(Maybe V1CustomResourceValidation) -- ^ "schema"- , v1CustomResourceDefinitionVersionSelectableFields :: !(Maybe [V1SelectableField]) -- ^ "selectableFields" - selectableFields specifies paths to fields that may be used as field selectors. A maximum of 8 selectable fields are allowed. See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors- , v1CustomResourceDefinitionVersionServed :: !(Bool) -- ^ /Required/ "served" - served is a flag enabling/disabling this version from being served via REST APIs- , v1CustomResourceDefinitionVersionStorage :: !(Bool) -- ^ /Required/ "storage" - storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.- , v1CustomResourceDefinitionVersionSubresources :: !(Maybe V1CustomResourceSubresources) -- ^ "subresources"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceDefinitionVersion-instance A.FromJSON V1CustomResourceDefinitionVersion where- parseJSON = A.withObject "V1CustomResourceDefinitionVersion" $ \o ->- V1CustomResourceDefinitionVersion- <$> (o .:? "additionalPrinterColumns")- <*> (o .:? "deprecated")- <*> (o .:? "deprecationWarning")- <*> (o .: "name")- <*> (o .:? "schema")- <*> (o .:? "selectableFields")- <*> (o .: "served")- <*> (o .: "storage")- <*> (o .:? "subresources")---- | ToJSON V1CustomResourceDefinitionVersion-instance A.ToJSON V1CustomResourceDefinitionVersion where- toJSON V1CustomResourceDefinitionVersion {..} =- _omitNulls- [ "additionalPrinterColumns" .= v1CustomResourceDefinitionVersionAdditionalPrinterColumns- , "deprecated" .= v1CustomResourceDefinitionVersionDeprecated- , "deprecationWarning" .= v1CustomResourceDefinitionVersionDeprecationWarning- , "name" .= v1CustomResourceDefinitionVersionName- , "schema" .= v1CustomResourceDefinitionVersionSchema- , "selectableFields" .= v1CustomResourceDefinitionVersionSelectableFields- , "served" .= v1CustomResourceDefinitionVersionServed- , "storage" .= v1CustomResourceDefinitionVersionStorage- , "subresources" .= v1CustomResourceDefinitionVersionSubresources- ]----- | Construct a value of type 'V1CustomResourceDefinitionVersion' (by applying it's required fields, if any)-mkV1CustomResourceDefinitionVersion- :: Text -- ^ 'v1CustomResourceDefinitionVersionName': name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true.- -> Bool -- ^ 'v1CustomResourceDefinitionVersionServed': served is a flag enabling/disabling this version from being served via REST APIs- -> Bool -- ^ 'v1CustomResourceDefinitionVersionStorage': storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.- -> V1CustomResourceDefinitionVersion-mkV1CustomResourceDefinitionVersion v1CustomResourceDefinitionVersionName v1CustomResourceDefinitionVersionServed v1CustomResourceDefinitionVersionStorage =- V1CustomResourceDefinitionVersion- { v1CustomResourceDefinitionVersionAdditionalPrinterColumns = Nothing- , v1CustomResourceDefinitionVersionDeprecated = Nothing- , v1CustomResourceDefinitionVersionDeprecationWarning = Nothing- , v1CustomResourceDefinitionVersionName- , v1CustomResourceDefinitionVersionSchema = Nothing- , v1CustomResourceDefinitionVersionSelectableFields = Nothing- , v1CustomResourceDefinitionVersionServed- , v1CustomResourceDefinitionVersionStorage- , v1CustomResourceDefinitionVersionSubresources = Nothing- }---- ** V1CustomResourceSubresourceScale--- | V1CustomResourceSubresourceScale--- CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.-data V1CustomResourceSubresourceScale = V1CustomResourceSubresourceScale- { v1CustomResourceSubresourceScaleLabelSelectorPath :: !(Maybe Text) -- ^ "labelSelectorPath" - labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.- , v1CustomResourceSubresourceScaleSpecReplicasPath :: !(Text) -- ^ /Required/ "specReplicasPath" - specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.- , v1CustomResourceSubresourceScaleStatusReplicasPath :: !(Text) -- ^ /Required/ "statusReplicasPath" - statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceSubresourceScale-instance A.FromJSON V1CustomResourceSubresourceScale where- parseJSON = A.withObject "V1CustomResourceSubresourceScale" $ \o ->- V1CustomResourceSubresourceScale- <$> (o .:? "labelSelectorPath")- <*> (o .: "specReplicasPath")- <*> (o .: "statusReplicasPath")---- | ToJSON V1CustomResourceSubresourceScale-instance A.ToJSON V1CustomResourceSubresourceScale where- toJSON V1CustomResourceSubresourceScale {..} =- _omitNulls- [ "labelSelectorPath" .= v1CustomResourceSubresourceScaleLabelSelectorPath- , "specReplicasPath" .= v1CustomResourceSubresourceScaleSpecReplicasPath- , "statusReplicasPath" .= v1CustomResourceSubresourceScaleStatusReplicasPath- ]----- | Construct a value of type 'V1CustomResourceSubresourceScale' (by applying it's required fields, if any)-mkV1CustomResourceSubresourceScale- :: Text -- ^ 'v1CustomResourceSubresourceScaleSpecReplicasPath': specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.- -> Text -- ^ 'v1CustomResourceSubresourceScaleStatusReplicasPath': statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.- -> V1CustomResourceSubresourceScale-mkV1CustomResourceSubresourceScale v1CustomResourceSubresourceScaleSpecReplicasPath v1CustomResourceSubresourceScaleStatusReplicasPath =- V1CustomResourceSubresourceScale- { v1CustomResourceSubresourceScaleLabelSelectorPath = Nothing- , v1CustomResourceSubresourceScaleSpecReplicasPath- , v1CustomResourceSubresourceScaleStatusReplicasPath- }---- ** V1CustomResourceSubresources--- | V1CustomResourceSubresources--- CustomResourceSubresources defines the status and scale subresources for CustomResources.-data V1CustomResourceSubresources = V1CustomResourceSubresources- { v1CustomResourceSubresourcesScale :: !(Maybe V1CustomResourceSubresourceScale) -- ^ "scale"- , v1CustomResourceSubresourcesStatus :: !(Maybe A.Value) -- ^ "status" - status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceSubresources-instance A.FromJSON V1CustomResourceSubresources where- parseJSON = A.withObject "V1CustomResourceSubresources" $ \o ->- V1CustomResourceSubresources- <$> (o .:? "scale")- <*> (o .:? "status")---- | ToJSON V1CustomResourceSubresources-instance A.ToJSON V1CustomResourceSubresources where- toJSON V1CustomResourceSubresources {..} =- _omitNulls- [ "scale" .= v1CustomResourceSubresourcesScale- , "status" .= v1CustomResourceSubresourcesStatus- ]----- | Construct a value of type 'V1CustomResourceSubresources' (by applying it's required fields, if any)-mkV1CustomResourceSubresources- :: V1CustomResourceSubresources-mkV1CustomResourceSubresources =- V1CustomResourceSubresources- { v1CustomResourceSubresourcesScale = Nothing- , v1CustomResourceSubresourcesStatus = Nothing- }---- ** V1CustomResourceValidation--- | V1CustomResourceValidation--- CustomResourceValidation is a list of validation methods for CustomResources.-data V1CustomResourceValidation = V1CustomResourceValidation- { v1CustomResourceValidationOpenApiv3Schema :: !(Maybe V1JSONSchemaProps) -- ^ "openAPIV3Schema"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1CustomResourceValidation-instance A.FromJSON V1CustomResourceValidation where- parseJSON = A.withObject "V1CustomResourceValidation" $ \o ->- V1CustomResourceValidation- <$> (o .:? "openAPIV3Schema")---- | ToJSON V1CustomResourceValidation-instance A.ToJSON V1CustomResourceValidation where- toJSON V1CustomResourceValidation {..} =- _omitNulls- [ "openAPIV3Schema" .= v1CustomResourceValidationOpenApiv3Schema- ]----- | Construct a value of type 'V1CustomResourceValidation' (by applying it's required fields, if any)-mkV1CustomResourceValidation- :: V1CustomResourceValidation-mkV1CustomResourceValidation =- V1CustomResourceValidation- { v1CustomResourceValidationOpenApiv3Schema = Nothing- }---- ** V1DaemonEndpoint--- | V1DaemonEndpoint--- DaemonEndpoint contains information about a single Daemon endpoint.-data V1DaemonEndpoint = V1DaemonEndpoint- { v1DaemonEndpointPort :: !(Int) -- ^ /Required/ "Port" - Port number of the given endpoint.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DaemonEndpoint-instance A.FromJSON V1DaemonEndpoint where- parseJSON = A.withObject "V1DaemonEndpoint" $ \o ->- V1DaemonEndpoint- <$> (o .: "Port")---- | ToJSON V1DaemonEndpoint-instance A.ToJSON V1DaemonEndpoint where- toJSON V1DaemonEndpoint {..} =- _omitNulls- [ "Port" .= v1DaemonEndpointPort- ]----- | Construct a value of type 'V1DaemonEndpoint' (by applying it's required fields, if any)-mkV1DaemonEndpoint- :: Int -- ^ 'v1DaemonEndpointPort': Port number of the given endpoint.- -> V1DaemonEndpoint-mkV1DaemonEndpoint v1DaemonEndpointPort =- V1DaemonEndpoint- { v1DaemonEndpointPort- }---- ** V1DaemonSet--- | V1DaemonSet--- DaemonSet represents the configuration of a daemon set.-data V1DaemonSet = V1DaemonSet- { v1DaemonSetApiVersion :: !(Maybe Text) -- ^ "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- , v1DaemonSetKind :: !(Maybe Text) -- ^ "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- , v1DaemonSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1DaemonSetSpec :: !(Maybe V1DaemonSetSpec) -- ^ "spec"- , v1DaemonSetStatus :: !(Maybe V1DaemonSetStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DaemonSet-instance A.FromJSON V1DaemonSet where- parseJSON = A.withObject "V1DaemonSet" $ \o ->- V1DaemonSet- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1DaemonSet-instance A.ToJSON V1DaemonSet where- toJSON V1DaemonSet {..} =- _omitNulls- [ "apiVersion" .= v1DaemonSetApiVersion- , "kind" .= v1DaemonSetKind- , "metadata" .= v1DaemonSetMetadata- , "spec" .= v1DaemonSetSpec- , "status" .= v1DaemonSetStatus- ]----- | Construct a value of type 'V1DaemonSet' (by applying it's required fields, if any)-mkV1DaemonSet- :: V1DaemonSet-mkV1DaemonSet =- V1DaemonSet- { v1DaemonSetApiVersion = Nothing- , v1DaemonSetKind = Nothing- , v1DaemonSetMetadata = Nothing- , v1DaemonSetSpec = Nothing- , v1DaemonSetStatus = Nothing- }---- ** V1DaemonSetCondition--- | V1DaemonSetCondition--- DaemonSetCondition describes the state of a DaemonSet at a certain point.-data V1DaemonSetCondition = V1DaemonSetCondition- { v1DaemonSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.- , v1DaemonSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.- , v1DaemonSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.- , v1DaemonSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1DaemonSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of DaemonSet condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DaemonSetCondition-instance A.FromJSON V1DaemonSetCondition where- parseJSON = A.withObject "V1DaemonSetCondition" $ \o ->- V1DaemonSetCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1DaemonSetCondition-instance A.ToJSON V1DaemonSetCondition where- toJSON V1DaemonSetCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1DaemonSetConditionLastTransitionTime- , "message" .= v1DaemonSetConditionMessage- , "reason" .= v1DaemonSetConditionReason- , "status" .= v1DaemonSetConditionStatus- , "type" .= v1DaemonSetConditionType- ]----- | Construct a value of type 'V1DaemonSetCondition' (by applying it's required fields, if any)-mkV1DaemonSetCondition- :: Text -- ^ 'v1DaemonSetConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1DaemonSetConditionType': Type of DaemonSet condition.- -> V1DaemonSetCondition-mkV1DaemonSetCondition v1DaemonSetConditionStatus v1DaemonSetConditionType =- V1DaemonSetCondition- { v1DaemonSetConditionLastTransitionTime = Nothing- , v1DaemonSetConditionMessage = Nothing- , v1DaemonSetConditionReason = Nothing- , v1DaemonSetConditionStatus- , v1DaemonSetConditionType- }---- ** V1DaemonSetList--- | V1DaemonSetList--- DaemonSetList is a collection of daemon sets.-data V1DaemonSetList = V1DaemonSetList- { v1DaemonSetListApiVersion :: !(Maybe Text) -- ^ "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- , v1DaemonSetListItems :: !([V1DaemonSet]) -- ^ /Required/ "items" - A list of daemon sets.- , v1DaemonSetListKind :: !(Maybe Text) -- ^ "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- , v1DaemonSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DaemonSetList-instance A.FromJSON V1DaemonSetList where- parseJSON = A.withObject "V1DaemonSetList" $ \o ->- V1DaemonSetList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1DaemonSetList-instance A.ToJSON V1DaemonSetList where- toJSON V1DaemonSetList {..} =- _omitNulls- [ "apiVersion" .= v1DaemonSetListApiVersion- , "items" .= v1DaemonSetListItems- , "kind" .= v1DaemonSetListKind- , "metadata" .= v1DaemonSetListMetadata- ]----- | Construct a value of type 'V1DaemonSetList' (by applying it's required fields, if any)-mkV1DaemonSetList- :: [V1DaemonSet] -- ^ 'v1DaemonSetListItems': A list of daemon sets.- -> V1DaemonSetList-mkV1DaemonSetList v1DaemonSetListItems =- V1DaemonSetList- { v1DaemonSetListApiVersion = Nothing- , v1DaemonSetListItems- , v1DaemonSetListKind = Nothing- , v1DaemonSetListMetadata = Nothing- }---- ** V1DaemonSetSpec--- | V1DaemonSetSpec--- DaemonSetSpec is the specification of a daemon set.-data V1DaemonSetSpec = V1DaemonSetSpec- { v1DaemonSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - The minimum number of seconds for which a newly created DaemonSet 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).- , v1DaemonSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.- , v1DaemonSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"- , v1DaemonSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"- , v1DaemonSetSpecUpdateStrategy :: !(Maybe V1DaemonSetUpdateStrategy) -- ^ "updateStrategy"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DaemonSetSpec-instance A.FromJSON V1DaemonSetSpec where- parseJSON = A.withObject "V1DaemonSetSpec" $ \o ->- V1DaemonSetSpec- <$> (o .:? "minReadySeconds")- <*> (o .:? "revisionHistoryLimit")- <*> (o .: "selector")- <*> (o .: "template")- <*> (o .:? "updateStrategy")---- | ToJSON V1DaemonSetSpec-instance A.ToJSON V1DaemonSetSpec where- toJSON V1DaemonSetSpec {..} =- _omitNulls- [ "minReadySeconds" .= v1DaemonSetSpecMinReadySeconds- , "revisionHistoryLimit" .= v1DaemonSetSpecRevisionHistoryLimit- , "selector" .= v1DaemonSetSpecSelector- , "template" .= v1DaemonSetSpecTemplate- , "updateStrategy" .= v1DaemonSetSpecUpdateStrategy- ]----- | Construct a value of type 'V1DaemonSetSpec' (by applying it's required fields, if any)-mkV1DaemonSetSpec- :: V1LabelSelector -- ^ 'v1DaemonSetSpecSelector' - -> V1PodTemplateSpec -- ^ 'v1DaemonSetSpecTemplate' - -> V1DaemonSetSpec-mkV1DaemonSetSpec v1DaemonSetSpecSelector v1DaemonSetSpecTemplate =- V1DaemonSetSpec- { v1DaemonSetSpecMinReadySeconds = Nothing- , v1DaemonSetSpecRevisionHistoryLimit = Nothing- , v1DaemonSetSpecSelector- , v1DaemonSetSpecTemplate- , v1DaemonSetSpecUpdateStrategy = Nothing- }---- ** V1DaemonSetStatus--- | V1DaemonSetStatus--- DaemonSetStatus represents the current status of a daemon set.-data V1DaemonSetStatus = V1DaemonSetStatus- { v1DaemonSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.- , v1DaemonSetStatusConditions :: !(Maybe [V1DaemonSetCondition]) -- ^ "conditions" - Represents the latest available observations of a DaemonSet's current state.- , v1DaemonSetStatusCurrentNumberScheduled :: !(Int) -- ^ /Required/ "currentNumberScheduled" - The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/- , v1DaemonSetStatusDesiredNumberScheduled :: !(Int) -- ^ /Required/ "desiredNumberScheduled" - The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/- , v1DaemonSetStatusNumberAvailable :: !(Maybe Int) -- ^ "numberAvailable" - The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)- , v1DaemonSetStatusNumberMisscheduled :: !(Int) -- ^ /Required/ "numberMisscheduled" - The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/- , v1DaemonSetStatusNumberReady :: !(Int) -- ^ /Required/ "numberReady" - numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.- , v1DaemonSetStatusNumberUnavailable :: !(Maybe Int) -- ^ "numberUnavailable" - The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)- , v1DaemonSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The most recent generation observed by the daemon set controller.- , v1DaemonSetStatusUpdatedNumberScheduled :: !(Maybe Int) -- ^ "updatedNumberScheduled" - The total number of nodes that are running updated daemon pod- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DaemonSetStatus-instance A.FromJSON V1DaemonSetStatus where- parseJSON = A.withObject "V1DaemonSetStatus" $ \o ->- V1DaemonSetStatus- <$> (o .:? "collisionCount")- <*> (o .:? "conditions")- <*> (o .: "currentNumberScheduled")- <*> (o .: "desiredNumberScheduled")- <*> (o .:? "numberAvailable")- <*> (o .: "numberMisscheduled")- <*> (o .: "numberReady")- <*> (o .:? "numberUnavailable")- <*> (o .:? "observedGeneration")- <*> (o .:? "updatedNumberScheduled")---- | ToJSON V1DaemonSetStatus-instance A.ToJSON V1DaemonSetStatus where- toJSON V1DaemonSetStatus {..} =- _omitNulls- [ "collisionCount" .= v1DaemonSetStatusCollisionCount- , "conditions" .= v1DaemonSetStatusConditions- , "currentNumberScheduled" .= v1DaemonSetStatusCurrentNumberScheduled- , "desiredNumberScheduled" .= v1DaemonSetStatusDesiredNumberScheduled- , "numberAvailable" .= v1DaemonSetStatusNumberAvailable- , "numberMisscheduled" .= v1DaemonSetStatusNumberMisscheduled- , "numberReady" .= v1DaemonSetStatusNumberReady- , "numberUnavailable" .= v1DaemonSetStatusNumberUnavailable- , "observedGeneration" .= v1DaemonSetStatusObservedGeneration- , "updatedNumberScheduled" .= v1DaemonSetStatusUpdatedNumberScheduled- ]----- | Construct a value of type 'V1DaemonSetStatus' (by applying it's required fields, if any)-mkV1DaemonSetStatus- :: Int -- ^ 'v1DaemonSetStatusCurrentNumberScheduled': The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/- -> Int -- ^ 'v1DaemonSetStatusDesiredNumberScheduled': The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/- -> Int -- ^ 'v1DaemonSetStatusNumberMisscheduled': The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/- -> Int -- ^ 'v1DaemonSetStatusNumberReady': numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.- -> V1DaemonSetStatus-mkV1DaemonSetStatus v1DaemonSetStatusCurrentNumberScheduled v1DaemonSetStatusDesiredNumberScheduled v1DaemonSetStatusNumberMisscheduled v1DaemonSetStatusNumberReady =- V1DaemonSetStatus- { v1DaemonSetStatusCollisionCount = Nothing- , v1DaemonSetStatusConditions = Nothing- , v1DaemonSetStatusCurrentNumberScheduled- , v1DaemonSetStatusDesiredNumberScheduled- , v1DaemonSetStatusNumberAvailable = Nothing- , v1DaemonSetStatusNumberMisscheduled- , v1DaemonSetStatusNumberReady- , v1DaemonSetStatusNumberUnavailable = Nothing- , v1DaemonSetStatusObservedGeneration = Nothing- , v1DaemonSetStatusUpdatedNumberScheduled = Nothing- }---- ** V1DaemonSetUpdateStrategy--- | V1DaemonSetUpdateStrategy--- DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.-data V1DaemonSetUpdateStrategy = V1DaemonSetUpdateStrategy- { v1DaemonSetUpdateStrategyRollingUpdate :: !(Maybe V1RollingUpdateDaemonSet) -- ^ "rollingUpdate"- , v1DaemonSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DaemonSetUpdateStrategy-instance A.FromJSON V1DaemonSetUpdateStrategy where- parseJSON = A.withObject "V1DaemonSetUpdateStrategy" $ \o ->- V1DaemonSetUpdateStrategy- <$> (o .:? "rollingUpdate")- <*> (o .:? "type")---- | ToJSON V1DaemonSetUpdateStrategy-instance A.ToJSON V1DaemonSetUpdateStrategy where- toJSON V1DaemonSetUpdateStrategy {..} =- _omitNulls- [ "rollingUpdate" .= v1DaemonSetUpdateStrategyRollingUpdate- , "type" .= v1DaemonSetUpdateStrategyType- ]----- | Construct a value of type 'V1DaemonSetUpdateStrategy' (by applying it's required fields, if any)-mkV1DaemonSetUpdateStrategy- :: V1DaemonSetUpdateStrategy-mkV1DaemonSetUpdateStrategy =- V1DaemonSetUpdateStrategy- { v1DaemonSetUpdateStrategyRollingUpdate = Nothing- , v1DaemonSetUpdateStrategyType = Nothing- }---- ** V1DeleteOptions--- | V1DeleteOptions--- DeleteOptions may be provided when deleting an API object.-data V1DeleteOptions = V1DeleteOptions- { v1DeleteOptionsApiVersion :: !(Maybe Text) -- ^ "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- , v1DeleteOptionsDryRun :: !(Maybe [Text]) -- ^ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed- , v1DeleteOptionsGracePeriodSeconds :: !(Maybe Integer) -- ^ "gracePeriodSeconds" - 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.- , v1DeleteOptionsIgnoreStoreReadErrorWithClusterBreakingPotential :: !(Maybe Bool) -- ^ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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- , v1DeleteOptionsKind :: !(Maybe Text) -- ^ "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- , v1DeleteOptionsOrphanDependents :: !(Maybe Bool) -- ^ "orphanDependents" - 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.- , v1DeleteOptionsPreconditions :: !(Maybe V1Preconditions) -- ^ "preconditions"- , v1DeleteOptionsPropagationPolicy :: !(Maybe Text) -- ^ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeleteOptions-instance A.FromJSON V1DeleteOptions where- parseJSON = A.withObject "V1DeleteOptions" $ \o ->- V1DeleteOptions- <$> (o .:? "apiVersion")- <*> (o .:? "dryRun")- <*> (o .:? "gracePeriodSeconds")- <*> (o .:? "ignoreStoreReadErrorWithClusterBreakingPotential")- <*> (o .:? "kind")- <*> (o .:? "orphanDependents")- <*> (o .:? "preconditions")- <*> (o .:? "propagationPolicy")---- | ToJSON V1DeleteOptions-instance A.ToJSON V1DeleteOptions where- toJSON V1DeleteOptions {..} =- _omitNulls- [ "apiVersion" .= v1DeleteOptionsApiVersion- , "dryRun" .= v1DeleteOptionsDryRun- , "gracePeriodSeconds" .= v1DeleteOptionsGracePeriodSeconds- , "ignoreStoreReadErrorWithClusterBreakingPotential" .= v1DeleteOptionsIgnoreStoreReadErrorWithClusterBreakingPotential- , "kind" .= v1DeleteOptionsKind- , "orphanDependents" .= v1DeleteOptionsOrphanDependents- , "preconditions" .= v1DeleteOptionsPreconditions- , "propagationPolicy" .= v1DeleteOptionsPropagationPolicy- ]----- | Construct a value of type 'V1DeleteOptions' (by applying it's required fields, if any)-mkV1DeleteOptions- :: V1DeleteOptions-mkV1DeleteOptions =- V1DeleteOptions- { v1DeleteOptionsApiVersion = Nothing- , v1DeleteOptionsDryRun = Nothing- , v1DeleteOptionsGracePeriodSeconds = Nothing- , v1DeleteOptionsIgnoreStoreReadErrorWithClusterBreakingPotential = Nothing- , v1DeleteOptionsKind = Nothing- , v1DeleteOptionsOrphanDependents = Nothing- , v1DeleteOptionsPreconditions = Nothing- , v1DeleteOptionsPropagationPolicy = Nothing- }---- ** V1Deployment--- | V1Deployment--- Deployment enables declarative updates for Pods and ReplicaSets.-data V1Deployment = V1Deployment- { v1DeploymentApiVersion :: !(Maybe Text) -- ^ "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- , v1DeploymentKind :: !(Maybe Text) -- ^ "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- , v1DeploymentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1DeploymentSpec :: !(Maybe V1DeploymentSpec) -- ^ "spec"- , v1DeploymentStatus :: !(Maybe V1DeploymentStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Deployment-instance A.FromJSON V1Deployment where- parseJSON = A.withObject "V1Deployment" $ \o ->- V1Deployment- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1Deployment-instance A.ToJSON V1Deployment where- toJSON V1Deployment {..} =- _omitNulls- [ "apiVersion" .= v1DeploymentApiVersion- , "kind" .= v1DeploymentKind- , "metadata" .= v1DeploymentMetadata- , "spec" .= v1DeploymentSpec- , "status" .= v1DeploymentStatus- ]----- | Construct a value of type 'V1Deployment' (by applying it's required fields, if any)-mkV1Deployment- :: V1Deployment-mkV1Deployment =- V1Deployment- { v1DeploymentApiVersion = Nothing- , v1DeploymentKind = Nothing- , v1DeploymentMetadata = Nothing- , v1DeploymentSpec = Nothing- , v1DeploymentStatus = Nothing- }---- ** V1DeploymentCondition--- | V1DeploymentCondition--- DeploymentCondition describes the state of a deployment at a certain point.-data V1DeploymentCondition = V1DeploymentCondition- { v1DeploymentConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.- , v1DeploymentConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - The last time this condition was updated.- , v1DeploymentConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.- , v1DeploymentConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.- , v1DeploymentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1DeploymentConditionType :: !(Text) -- ^ /Required/ "type" - Type of deployment condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeploymentCondition-instance A.FromJSON V1DeploymentCondition where- parseJSON = A.withObject "V1DeploymentCondition" $ \o ->- V1DeploymentCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "lastUpdateTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1DeploymentCondition-instance A.ToJSON V1DeploymentCondition where- toJSON V1DeploymentCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1DeploymentConditionLastTransitionTime- , "lastUpdateTime" .= v1DeploymentConditionLastUpdateTime- , "message" .= v1DeploymentConditionMessage- , "reason" .= v1DeploymentConditionReason- , "status" .= v1DeploymentConditionStatus- , "type" .= v1DeploymentConditionType- ]----- | Construct a value of type 'V1DeploymentCondition' (by applying it's required fields, if any)-mkV1DeploymentCondition- :: Text -- ^ 'v1DeploymentConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1DeploymentConditionType': Type of deployment condition.- -> V1DeploymentCondition-mkV1DeploymentCondition v1DeploymentConditionStatus v1DeploymentConditionType =- V1DeploymentCondition- { v1DeploymentConditionLastTransitionTime = Nothing- , v1DeploymentConditionLastUpdateTime = Nothing- , v1DeploymentConditionMessage = Nothing- , v1DeploymentConditionReason = Nothing- , v1DeploymentConditionStatus- , v1DeploymentConditionType- }---- ** V1DeploymentList--- | V1DeploymentList--- DeploymentList is a list of Deployments.-data V1DeploymentList = V1DeploymentList- { v1DeploymentListApiVersion :: !(Maybe Text) -- ^ "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- , v1DeploymentListItems :: !([V1Deployment]) -- ^ /Required/ "items" - Items is the list of Deployments.- , v1DeploymentListKind :: !(Maybe Text) -- ^ "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- , v1DeploymentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeploymentList-instance A.FromJSON V1DeploymentList where- parseJSON = A.withObject "V1DeploymentList" $ \o ->- V1DeploymentList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1DeploymentList-instance A.ToJSON V1DeploymentList where- toJSON V1DeploymentList {..} =- _omitNulls- [ "apiVersion" .= v1DeploymentListApiVersion- , "items" .= v1DeploymentListItems- , "kind" .= v1DeploymentListKind- , "metadata" .= v1DeploymentListMetadata- ]----- | Construct a value of type 'V1DeploymentList' (by applying it's required fields, if any)-mkV1DeploymentList- :: [V1Deployment] -- ^ 'v1DeploymentListItems': Items is the list of Deployments.- -> V1DeploymentList-mkV1DeploymentList v1DeploymentListItems =- V1DeploymentList- { v1DeploymentListApiVersion = Nothing- , v1DeploymentListItems- , v1DeploymentListKind = Nothing- , v1DeploymentListMetadata = Nothing- }---- ** V1DeploymentSpec--- | V1DeploymentSpec--- DeploymentSpec is the specification of the desired behavior of the Deployment.-data V1DeploymentSpec = V1DeploymentSpec- { v1DeploymentSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - 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)- , v1DeploymentSpecPaused :: !(Maybe Bool) -- ^ "paused" - Indicates that the deployment is paused.- , v1DeploymentSpecProgressDeadlineSeconds :: !(Maybe Int) -- ^ "progressDeadlineSeconds" - The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.- , v1DeploymentSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.- , v1DeploymentSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.- , v1DeploymentSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"- , v1DeploymentSpecStrategy :: !(Maybe V1DeploymentStrategy) -- ^ "strategy"- , v1DeploymentSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeploymentSpec-instance A.FromJSON V1DeploymentSpec where- parseJSON = A.withObject "V1DeploymentSpec" $ \o ->- V1DeploymentSpec- <$> (o .:? "minReadySeconds")- <*> (o .:? "paused")- <*> (o .:? "progressDeadlineSeconds")- <*> (o .:? "replicas")- <*> (o .:? "revisionHistoryLimit")- <*> (o .: "selector")- <*> (o .:? "strategy")- <*> (o .: "template")---- | ToJSON V1DeploymentSpec-instance A.ToJSON V1DeploymentSpec where- toJSON V1DeploymentSpec {..} =- _omitNulls- [ "minReadySeconds" .= v1DeploymentSpecMinReadySeconds- , "paused" .= v1DeploymentSpecPaused- , "progressDeadlineSeconds" .= v1DeploymentSpecProgressDeadlineSeconds- , "replicas" .= v1DeploymentSpecReplicas- , "revisionHistoryLimit" .= v1DeploymentSpecRevisionHistoryLimit- , "selector" .= v1DeploymentSpecSelector- , "strategy" .= v1DeploymentSpecStrategy- , "template" .= v1DeploymentSpecTemplate- ]----- | Construct a value of type 'V1DeploymentSpec' (by applying it's required fields, if any)-mkV1DeploymentSpec- :: V1LabelSelector -- ^ 'v1DeploymentSpecSelector' - -> V1PodTemplateSpec -- ^ 'v1DeploymentSpecTemplate' - -> V1DeploymentSpec-mkV1DeploymentSpec v1DeploymentSpecSelector v1DeploymentSpecTemplate =- V1DeploymentSpec- { v1DeploymentSpecMinReadySeconds = Nothing- , v1DeploymentSpecPaused = Nothing- , v1DeploymentSpecProgressDeadlineSeconds = Nothing- , v1DeploymentSpecReplicas = Nothing- , v1DeploymentSpecRevisionHistoryLimit = Nothing- , v1DeploymentSpecSelector- , v1DeploymentSpecStrategy = Nothing- , v1DeploymentSpecTemplate- }---- ** V1DeploymentStatus--- | V1DeploymentStatus--- DeploymentStatus is the most recently observed status of the Deployment.-data V1DeploymentStatus = V1DeploymentStatus- { v1DeploymentStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - Total number of available non-terminating pods (ready for at least minReadySeconds) targeted by this deployment.- , v1DeploymentStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.- , v1DeploymentStatusConditions :: !(Maybe [V1DeploymentCondition]) -- ^ "conditions" - Represents the latest available observations of a deployment's current state.- , v1DeploymentStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the deployment controller.- , v1DeploymentStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - Total number of non-terminating pods targeted by this Deployment with a Ready Condition.- , v1DeploymentStatusReplicas :: !(Maybe Int) -- ^ "replicas" - Total number of non-terminating pods targeted by this deployment (their labels match the selector).- , v1DeploymentStatusTerminatingReplicas :: !(Maybe Int) -- ^ "terminatingReplicas" - Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field.- , v1DeploymentStatusUnavailableReplicas :: !(Maybe Int) -- ^ "unavailableReplicas" - Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.- , v1DeploymentStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - Total number of non-terminating pods targeted by this deployment that have the desired template spec.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeploymentStatus-instance A.FromJSON V1DeploymentStatus where- parseJSON = A.withObject "V1DeploymentStatus" $ \o ->- V1DeploymentStatus- <$> (o .:? "availableReplicas")- <*> (o .:? "collisionCount")- <*> (o .:? "conditions")- <*> (o .:? "observedGeneration")- <*> (o .:? "readyReplicas")- <*> (o .:? "replicas")- <*> (o .:? "terminatingReplicas")- <*> (o .:? "unavailableReplicas")- <*> (o .:? "updatedReplicas")---- | ToJSON V1DeploymentStatus-instance A.ToJSON V1DeploymentStatus where- toJSON V1DeploymentStatus {..} =- _omitNulls- [ "availableReplicas" .= v1DeploymentStatusAvailableReplicas- , "collisionCount" .= v1DeploymentStatusCollisionCount- , "conditions" .= v1DeploymentStatusConditions- , "observedGeneration" .= v1DeploymentStatusObservedGeneration- , "readyReplicas" .= v1DeploymentStatusReadyReplicas- , "replicas" .= v1DeploymentStatusReplicas- , "terminatingReplicas" .= v1DeploymentStatusTerminatingReplicas- , "unavailableReplicas" .= v1DeploymentStatusUnavailableReplicas- , "updatedReplicas" .= v1DeploymentStatusUpdatedReplicas- ]----- | Construct a value of type 'V1DeploymentStatus' (by applying it's required fields, if any)-mkV1DeploymentStatus- :: V1DeploymentStatus-mkV1DeploymentStatus =- V1DeploymentStatus- { v1DeploymentStatusAvailableReplicas = Nothing- , v1DeploymentStatusCollisionCount = Nothing- , v1DeploymentStatusConditions = Nothing- , v1DeploymentStatusObservedGeneration = Nothing- , v1DeploymentStatusReadyReplicas = Nothing- , v1DeploymentStatusReplicas = Nothing- , v1DeploymentStatusTerminatingReplicas = Nothing- , v1DeploymentStatusUnavailableReplicas = Nothing- , v1DeploymentStatusUpdatedReplicas = Nothing- }---- ** V1DeploymentStrategy--- | V1DeploymentStrategy--- DeploymentStrategy describes how to replace existing pods with new ones.-data V1DeploymentStrategy = V1DeploymentStrategy- { v1DeploymentStrategyRollingUpdate :: !(Maybe V1RollingUpdateDeployment) -- ^ "rollingUpdate"- , v1DeploymentStrategyType :: !(Maybe Text) -- ^ "type" - Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeploymentStrategy-instance A.FromJSON V1DeploymentStrategy where- parseJSON = A.withObject "V1DeploymentStrategy" $ \o ->- V1DeploymentStrategy- <$> (o .:? "rollingUpdate")- <*> (o .:? "type")---- | ToJSON V1DeploymentStrategy-instance A.ToJSON V1DeploymentStrategy where- toJSON V1DeploymentStrategy {..} =- _omitNulls- [ "rollingUpdate" .= v1DeploymentStrategyRollingUpdate- , "type" .= v1DeploymentStrategyType- ]----- | Construct a value of type 'V1DeploymentStrategy' (by applying it's required fields, if any)-mkV1DeploymentStrategy- :: V1DeploymentStrategy-mkV1DeploymentStrategy =- V1DeploymentStrategy- { v1DeploymentStrategyRollingUpdate = Nothing- , v1DeploymentStrategyType = Nothing- }---- ** V1Device--- | V1Device--- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.-data V1Device = V1Device- { v1DeviceAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the device. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.- , v1DeviceAllowMultipleAllocations :: !(Maybe Bool) -- ^ "allowMultipleAllocations" - AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.- , v1DeviceAttributes :: !(Maybe (Map.Map String V1DeviceAttribute)) -- ^ "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.- , v1DeviceBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. The maximum number of binding conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1DeviceBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to \"True\", a binding failure occurred. The maximum number of binding failure conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1DeviceBindsToNode :: !(Maybe Bool) -- ^ "bindsToNode" - BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1DeviceCapacity :: !(Maybe (Map.Map String V1DeviceCapacity)) -- ^ "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.- , v1DeviceConsumesCounters :: !(Maybe [V1DeviceCounterConsumption]) -- ^ "consumesCounters" - ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. There can only be a single entry per counterSet. The total number of device counter consumption entries must be <= 32. In addition, the total number in the entire ResourceSlice must be <= 1024 (for example, 64 devices with 16 counters each).- , v1DeviceName :: !(Text) -- ^ /Required/ "name" - Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.- , v1DeviceNodeName :: !(Maybe Text) -- ^ "nodeName" - NodeName identifies the node where the device is available. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.- , v1DeviceNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- , v1DeviceTaints :: !(Maybe [V1DeviceTaint]) -- ^ "taints" - If specified, these are the driver-defined taints. The maximum number of taints is 4. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Device-instance A.FromJSON V1Device where- parseJSON = A.withObject "V1Device" $ \o ->- V1Device- <$> (o .:? "allNodes")- <*> (o .:? "allowMultipleAllocations")- <*> (o .:? "attributes")- <*> (o .:? "bindingConditions")- <*> (o .:? "bindingFailureConditions")- <*> (o .:? "bindsToNode")- <*> (o .:? "capacity")- <*> (o .:? "consumesCounters")- <*> (o .: "name")- <*> (o .:? "nodeName")- <*> (o .:? "nodeSelector")- <*> (o .:? "taints")---- | ToJSON V1Device-instance A.ToJSON V1Device where- toJSON V1Device {..} =- _omitNulls- [ "allNodes" .= v1DeviceAllNodes- , "allowMultipleAllocations" .= v1DeviceAllowMultipleAllocations- , "attributes" .= v1DeviceAttributes- , "bindingConditions" .= v1DeviceBindingConditions- , "bindingFailureConditions" .= v1DeviceBindingFailureConditions- , "bindsToNode" .= v1DeviceBindsToNode- , "capacity" .= v1DeviceCapacity- , "consumesCounters" .= v1DeviceConsumesCounters- , "name" .= v1DeviceName- , "nodeName" .= v1DeviceNodeName- , "nodeSelector" .= v1DeviceNodeSelector- , "taints" .= v1DeviceTaints- ]----- | Construct a value of type 'V1Device' (by applying it's required fields, if any)-mkV1Device- :: Text -- ^ 'v1DeviceName': Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.- -> V1Device-mkV1Device v1DeviceName =- V1Device- { v1DeviceAllNodes = Nothing- , v1DeviceAllowMultipleAllocations = Nothing- , v1DeviceAttributes = Nothing- , v1DeviceBindingConditions = Nothing- , v1DeviceBindingFailureConditions = Nothing- , v1DeviceBindsToNode = Nothing- , v1DeviceCapacity = Nothing- , v1DeviceConsumesCounters = Nothing- , v1DeviceName- , v1DeviceNodeName = Nothing- , v1DeviceNodeSelector = Nothing- , v1DeviceTaints = Nothing- }---- ** V1DeviceAllocationConfiguration--- | V1DeviceAllocationConfiguration--- DeviceAllocationConfiguration gets embedded in an AllocationResult.-data V1DeviceAllocationConfiguration = V1DeviceAllocationConfiguration- { v1DeviceAllocationConfigurationOpaque :: !(Maybe V1OpaqueDeviceConfiguration) -- ^ "opaque"- , v1DeviceAllocationConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.- , v1DeviceAllocationConfigurationSource :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceAllocationConfiguration-instance A.FromJSON V1DeviceAllocationConfiguration where- parseJSON = A.withObject "V1DeviceAllocationConfiguration" $ \o ->- V1DeviceAllocationConfiguration- <$> (o .:? "opaque")- <*> (o .:? "requests")- <*> (o .: "source")---- | ToJSON V1DeviceAllocationConfiguration-instance A.ToJSON V1DeviceAllocationConfiguration where- toJSON V1DeviceAllocationConfiguration {..} =- _omitNulls- [ "opaque" .= v1DeviceAllocationConfigurationOpaque- , "requests" .= v1DeviceAllocationConfigurationRequests- , "source" .= v1DeviceAllocationConfigurationSource- ]----- | Construct a value of type 'V1DeviceAllocationConfiguration' (by applying it's required fields, if any)-mkV1DeviceAllocationConfiguration- :: Text -- ^ 'v1DeviceAllocationConfigurationSource': 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.- -> V1DeviceAllocationConfiguration-mkV1DeviceAllocationConfiguration v1DeviceAllocationConfigurationSource =- V1DeviceAllocationConfiguration- { v1DeviceAllocationConfigurationOpaque = Nothing- , v1DeviceAllocationConfigurationRequests = Nothing- , v1DeviceAllocationConfigurationSource- }---- ** V1DeviceAllocationResult--- | V1DeviceAllocationResult--- DeviceAllocationResult is the result of allocating devices.-data V1DeviceAllocationResult = V1DeviceAllocationResult- { v1DeviceAllocationResultConfig :: !(Maybe [V1DeviceAllocationConfiguration]) -- ^ "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.- , v1DeviceAllocationResultResults :: !(Maybe [V1DeviceRequestAllocationResult]) -- ^ "results" - Results lists all allocated devices.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceAllocationResult-instance A.FromJSON V1DeviceAllocationResult where- parseJSON = A.withObject "V1DeviceAllocationResult" $ \o ->- V1DeviceAllocationResult- <$> (o .:? "config")- <*> (o .:? "results")---- | ToJSON V1DeviceAllocationResult-instance A.ToJSON V1DeviceAllocationResult where- toJSON V1DeviceAllocationResult {..} =- _omitNulls- [ "config" .= v1DeviceAllocationResultConfig- , "results" .= v1DeviceAllocationResultResults- ]----- | Construct a value of type 'V1DeviceAllocationResult' (by applying it's required fields, if any)-mkV1DeviceAllocationResult- :: V1DeviceAllocationResult-mkV1DeviceAllocationResult =- V1DeviceAllocationResult- { v1DeviceAllocationResultConfig = Nothing- , v1DeviceAllocationResultResults = Nothing- }---- ** V1DeviceAttribute--- | V1DeviceAttribute--- DeviceAttribute must have exactly one field set.-data V1DeviceAttribute = V1DeviceAttribute- { v1DeviceAttributeBool :: !(Maybe Bool) -- ^ "bool" - BoolValue is a true/false value.- , v1DeviceAttributeInt :: !(Maybe Integer) -- ^ "int" - IntValue is a number.- , v1DeviceAttributeString :: !(Maybe Text) -- ^ "string" - StringValue is a string. Must not be longer than 64 characters.- , v1DeviceAttributeVersion :: !(Maybe Text) -- ^ "version" - VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceAttribute-instance A.FromJSON V1DeviceAttribute where- parseJSON = A.withObject "V1DeviceAttribute" $ \o ->- V1DeviceAttribute- <$> (o .:? "bool")- <*> (o .:? "int")- <*> (o .:? "string")- <*> (o .:? "version")---- | ToJSON V1DeviceAttribute-instance A.ToJSON V1DeviceAttribute where- toJSON V1DeviceAttribute {..} =- _omitNulls- [ "bool" .= v1DeviceAttributeBool- , "int" .= v1DeviceAttributeInt- , "string" .= v1DeviceAttributeString- , "version" .= v1DeviceAttributeVersion- ]----- | Construct a value of type 'V1DeviceAttribute' (by applying it's required fields, if any)-mkV1DeviceAttribute- :: V1DeviceAttribute-mkV1DeviceAttribute =- V1DeviceAttribute- { v1DeviceAttributeBool = Nothing- , v1DeviceAttributeInt = Nothing- , v1DeviceAttributeString = Nothing- , v1DeviceAttributeVersion = Nothing- }---- ** V1DeviceCapacity--- | V1DeviceCapacity--- DeviceCapacity describes a quantity associated with a device.-data V1DeviceCapacity = V1DeviceCapacity- { v1DeviceCapacityRequestPolicy :: !(Maybe V1CapacityRequestPolicy) -- ^ "requestPolicy"- , v1DeviceCapacityValue :: !(Quantity) -- ^ /Required/ "value"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceCapacity-instance A.FromJSON V1DeviceCapacity where- parseJSON = A.withObject "V1DeviceCapacity" $ \o ->- V1DeviceCapacity- <$> (o .:? "requestPolicy")- <*> (o .: "value")---- | ToJSON V1DeviceCapacity-instance A.ToJSON V1DeviceCapacity where- toJSON V1DeviceCapacity {..} =- _omitNulls- [ "requestPolicy" .= v1DeviceCapacityRequestPolicy- , "value" .= v1DeviceCapacityValue- ]----- | Construct a value of type 'V1DeviceCapacity' (by applying it's required fields, if any)-mkV1DeviceCapacity- :: Quantity -- ^ 'v1DeviceCapacityValue' - -> V1DeviceCapacity-mkV1DeviceCapacity v1DeviceCapacityValue =- V1DeviceCapacity- { v1DeviceCapacityRequestPolicy = Nothing- , v1DeviceCapacityValue- }---- ** V1DeviceClaim--- | V1DeviceClaim--- DeviceClaim defines how to request devices with a ResourceClaim.-data V1DeviceClaim = V1DeviceClaim- { v1DeviceClaimConfig :: !(Maybe [V1DeviceClaimConfiguration]) -- ^ "config" - This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.- , v1DeviceClaimConstraints :: !(Maybe [V1DeviceConstraint]) -- ^ "constraints" - These constraints must be satisfied by the set of devices that get allocated for the claim.- , v1DeviceClaimRequests :: !(Maybe [V1DeviceRequest]) -- ^ "requests" - Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceClaim-instance A.FromJSON V1DeviceClaim where- parseJSON = A.withObject "V1DeviceClaim" $ \o ->- V1DeviceClaim- <$> (o .:? "config")- <*> (o .:? "constraints")- <*> (o .:? "requests")---- | ToJSON V1DeviceClaim-instance A.ToJSON V1DeviceClaim where- toJSON V1DeviceClaim {..} =- _omitNulls- [ "config" .= v1DeviceClaimConfig- , "constraints" .= v1DeviceClaimConstraints- , "requests" .= v1DeviceClaimRequests- ]----- | Construct a value of type 'V1DeviceClaim' (by applying it's required fields, if any)-mkV1DeviceClaim- :: V1DeviceClaim-mkV1DeviceClaim =- V1DeviceClaim- { v1DeviceClaimConfig = Nothing- , v1DeviceClaimConstraints = Nothing- , v1DeviceClaimRequests = Nothing- }---- ** V1DeviceClaimConfiguration--- | V1DeviceClaimConfiguration--- DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.-data V1DeviceClaimConfiguration = V1DeviceClaimConfiguration- { v1DeviceClaimConfigurationOpaque :: !(Maybe V1OpaqueDeviceConfiguration) -- ^ "opaque"- , v1DeviceClaimConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceClaimConfiguration-instance A.FromJSON V1DeviceClaimConfiguration where- parseJSON = A.withObject "V1DeviceClaimConfiguration" $ \o ->- V1DeviceClaimConfiguration- <$> (o .:? "opaque")- <*> (o .:? "requests")---- | ToJSON V1DeviceClaimConfiguration-instance A.ToJSON V1DeviceClaimConfiguration where- toJSON V1DeviceClaimConfiguration {..} =- _omitNulls- [ "opaque" .= v1DeviceClaimConfigurationOpaque- , "requests" .= v1DeviceClaimConfigurationRequests- ]----- | Construct a value of type 'V1DeviceClaimConfiguration' (by applying it's required fields, if any)-mkV1DeviceClaimConfiguration- :: V1DeviceClaimConfiguration-mkV1DeviceClaimConfiguration =- V1DeviceClaimConfiguration- { v1DeviceClaimConfigurationOpaque = Nothing- , v1DeviceClaimConfigurationRequests = Nothing- }---- ** V1DeviceClass--- | V1DeviceClass--- 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.-data V1DeviceClass = V1DeviceClass- { v1DeviceClassApiVersion :: !(Maybe Text) -- ^ "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- , v1DeviceClassKind :: !(Maybe Text) -- ^ "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- , v1DeviceClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1DeviceClassSpec :: !(V1DeviceClassSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceClass-instance A.FromJSON V1DeviceClass where- parseJSON = A.withObject "V1DeviceClass" $ \o ->- V1DeviceClass- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1DeviceClass-instance A.ToJSON V1DeviceClass where- toJSON V1DeviceClass {..} =- _omitNulls- [ "apiVersion" .= v1DeviceClassApiVersion- , "kind" .= v1DeviceClassKind- , "metadata" .= v1DeviceClassMetadata- , "spec" .= v1DeviceClassSpec- ]----- | Construct a value of type 'V1DeviceClass' (by applying it's required fields, if any)-mkV1DeviceClass- :: V1DeviceClassSpec -- ^ 'v1DeviceClassSpec' - -> V1DeviceClass-mkV1DeviceClass v1DeviceClassSpec =- V1DeviceClass- { v1DeviceClassApiVersion = Nothing- , v1DeviceClassKind = Nothing- , v1DeviceClassMetadata = Nothing- , v1DeviceClassSpec- }---- ** V1DeviceClassConfiguration--- | V1DeviceClassConfiguration--- DeviceClassConfiguration is used in DeviceClass.-data V1DeviceClassConfiguration = V1DeviceClassConfiguration- { v1DeviceClassConfigurationOpaque :: !(Maybe V1OpaqueDeviceConfiguration) -- ^ "opaque"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceClassConfiguration-instance A.FromJSON V1DeviceClassConfiguration where- parseJSON = A.withObject "V1DeviceClassConfiguration" $ \o ->- V1DeviceClassConfiguration- <$> (o .:? "opaque")---- | ToJSON V1DeviceClassConfiguration-instance A.ToJSON V1DeviceClassConfiguration where- toJSON V1DeviceClassConfiguration {..} =- _omitNulls- [ "opaque" .= v1DeviceClassConfigurationOpaque- ]----- | Construct a value of type 'V1DeviceClassConfiguration' (by applying it's required fields, if any)-mkV1DeviceClassConfiguration- :: V1DeviceClassConfiguration-mkV1DeviceClassConfiguration =- V1DeviceClassConfiguration- { v1DeviceClassConfigurationOpaque = Nothing- }---- ** V1DeviceClassList--- | V1DeviceClassList--- DeviceClassList is a collection of classes.-data V1DeviceClassList = V1DeviceClassList- { v1DeviceClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1DeviceClassListItems :: !([V1DeviceClass]) -- ^ /Required/ "items" - Items is the list of resource classes.- , v1DeviceClassListKind :: !(Maybe Text) -- ^ "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- , v1DeviceClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceClassList-instance A.FromJSON V1DeviceClassList where- parseJSON = A.withObject "V1DeviceClassList" $ \o ->- V1DeviceClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1DeviceClassList-instance A.ToJSON V1DeviceClassList where- toJSON V1DeviceClassList {..} =- _omitNulls- [ "apiVersion" .= v1DeviceClassListApiVersion- , "items" .= v1DeviceClassListItems- , "kind" .= v1DeviceClassListKind- , "metadata" .= v1DeviceClassListMetadata- ]----- | Construct a value of type 'V1DeviceClassList' (by applying it's required fields, if any)-mkV1DeviceClassList- :: [V1DeviceClass] -- ^ 'v1DeviceClassListItems': Items is the list of resource classes.- -> V1DeviceClassList-mkV1DeviceClassList v1DeviceClassListItems =- V1DeviceClassList- { v1DeviceClassListApiVersion = Nothing- , v1DeviceClassListItems- , v1DeviceClassListKind = Nothing- , v1DeviceClassListMetadata = Nothing- }---- ** V1DeviceClassSpec--- | V1DeviceClassSpec--- DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.-data V1DeviceClassSpec = V1DeviceClassSpec- { v1DeviceClassSpecConfig :: !(Maybe [V1DeviceClassConfiguration]) -- ^ "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.- , v1DeviceClassSpecExtendedResourceName :: !(Maybe Text) -- ^ "extendedResourceName" - ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. This is an alpha field.- , v1DeviceClassSpecSelectors :: !(Maybe [V1DeviceSelector]) -- ^ "selectors" - Each selector must be satisfied by a device which is claimed via this class.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceClassSpec-instance A.FromJSON V1DeviceClassSpec where- parseJSON = A.withObject "V1DeviceClassSpec" $ \o ->- V1DeviceClassSpec- <$> (o .:? "config")- <*> (o .:? "extendedResourceName")- <*> (o .:? "selectors")---- | ToJSON V1DeviceClassSpec-instance A.ToJSON V1DeviceClassSpec where- toJSON V1DeviceClassSpec {..} =- _omitNulls- [ "config" .= v1DeviceClassSpecConfig- , "extendedResourceName" .= v1DeviceClassSpecExtendedResourceName- , "selectors" .= v1DeviceClassSpecSelectors- ]----- | Construct a value of type 'V1DeviceClassSpec' (by applying it's required fields, if any)-mkV1DeviceClassSpec- :: V1DeviceClassSpec-mkV1DeviceClassSpec =- V1DeviceClassSpec- { v1DeviceClassSpecConfig = Nothing- , v1DeviceClassSpecExtendedResourceName = Nothing- , v1DeviceClassSpecSelectors = Nothing- }---- ** V1DeviceConstraint--- | V1DeviceConstraint--- DeviceConstraint must have exactly one field set besides Requests.-data V1DeviceConstraint = V1DeviceConstraint- { v1DeviceConstraintDistinctAttribute :: !(Maybe Text) -- ^ "distinctAttribute" - DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. This acts as the inverse of MatchAttribute. This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs.- , v1DeviceConstraintMatchAttribute :: !(Maybe Text) -- ^ "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.- , v1DeviceConstraintRequests :: !(Maybe [Text]) -- ^ "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. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceConstraint-instance A.FromJSON V1DeviceConstraint where- parseJSON = A.withObject "V1DeviceConstraint" $ \o ->- V1DeviceConstraint- <$> (o .:? "distinctAttribute")- <*> (o .:? "matchAttribute")- <*> (o .:? "requests")---- | ToJSON V1DeviceConstraint-instance A.ToJSON V1DeviceConstraint where- toJSON V1DeviceConstraint {..} =- _omitNulls- [ "distinctAttribute" .= v1DeviceConstraintDistinctAttribute- , "matchAttribute" .= v1DeviceConstraintMatchAttribute- , "requests" .= v1DeviceConstraintRequests- ]----- | Construct a value of type 'V1DeviceConstraint' (by applying it's required fields, if any)-mkV1DeviceConstraint- :: V1DeviceConstraint-mkV1DeviceConstraint =- V1DeviceConstraint- { v1DeviceConstraintDistinctAttribute = Nothing- , v1DeviceConstraintMatchAttribute = Nothing- , v1DeviceConstraintRequests = Nothing- }---- ** V1DeviceCounterConsumption--- | V1DeviceCounterConsumption--- DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.-data V1DeviceCounterConsumption = V1DeviceCounterConsumption- { v1DeviceCounterConsumptionCounterSet :: !(Text) -- ^ /Required/ "counterSet" - CounterSet is the name of the set from which the counters defined will be consumed.- , v1DeviceCounterConsumptionCounters :: !((Map.Map String V1Counter)) -- ^ /Required/ "counters" - Counters defines the counters that will be consumed by the device. The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceCounterConsumption-instance A.FromJSON V1DeviceCounterConsumption where- parseJSON = A.withObject "V1DeviceCounterConsumption" $ \o ->- V1DeviceCounterConsumption- <$> (o .: "counterSet")- <*> (o .: "counters")---- | ToJSON V1DeviceCounterConsumption-instance A.ToJSON V1DeviceCounterConsumption where- toJSON V1DeviceCounterConsumption {..} =- _omitNulls- [ "counterSet" .= v1DeviceCounterConsumptionCounterSet- , "counters" .= v1DeviceCounterConsumptionCounters- ]----- | Construct a value of type 'V1DeviceCounterConsumption' (by applying it's required fields, if any)-mkV1DeviceCounterConsumption- :: Text -- ^ 'v1DeviceCounterConsumptionCounterSet': CounterSet is the name of the set from which the counters defined will be consumed.- -> (Map.Map String V1Counter) -- ^ 'v1DeviceCounterConsumptionCounters': Counters defines the counters that will be consumed by the device. The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).- -> V1DeviceCounterConsumption-mkV1DeviceCounterConsumption v1DeviceCounterConsumptionCounterSet v1DeviceCounterConsumptionCounters =- V1DeviceCounterConsumption- { v1DeviceCounterConsumptionCounterSet- , v1DeviceCounterConsumptionCounters- }---- ** V1DeviceRequest--- | V1DeviceRequest--- 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. With FirstAvailable it is also possible to provide a prioritized list of requests.-data V1DeviceRequest = V1DeviceRequest- { v1DeviceRequestExactly :: !(Maybe V1ExactDeviceRequest) -- ^ "exactly"- , v1DeviceRequestFirstAvailable :: !(Maybe [V1DeviceSubRequest]) -- ^ "firstAvailable" - FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.- , v1DeviceRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. Must be a DNS label.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceRequest-instance A.FromJSON V1DeviceRequest where- parseJSON = A.withObject "V1DeviceRequest" $ \o ->- V1DeviceRequest- <$> (o .:? "exactly")- <*> (o .:? "firstAvailable")- <*> (o .: "name")---- | ToJSON V1DeviceRequest-instance A.ToJSON V1DeviceRequest where- toJSON V1DeviceRequest {..} =- _omitNulls- [ "exactly" .= v1DeviceRequestExactly- , "firstAvailable" .= v1DeviceRequestFirstAvailable- , "name" .= v1DeviceRequestName- ]----- | Construct a value of type 'V1DeviceRequest' (by applying it's required fields, if any)-mkV1DeviceRequest- :: Text -- ^ 'v1DeviceRequestName': Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. Must be a DNS label.- -> V1DeviceRequest-mkV1DeviceRequest v1DeviceRequestName =- V1DeviceRequest- { v1DeviceRequestExactly = Nothing- , v1DeviceRequestFirstAvailable = Nothing- , v1DeviceRequestName- }---- ** V1DeviceRequestAllocationResult--- | V1DeviceRequestAllocationResult--- DeviceRequestAllocationResult contains the allocation result for one request.-data V1DeviceRequestAllocationResult = V1DeviceRequestAllocationResult- { v1DeviceRequestAllocationResultAdminAccess :: !(Maybe Bool) -- ^ "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.- , v1DeviceRequestAllocationResultBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1DeviceRequestAllocationResultBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1DeviceRequestAllocationResultConsumedCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "consumedCapacity" - ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). The total consumed capacity for each device must not exceed the DeviceCapacity's Value. This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero.- , v1DeviceRequestAllocationResultDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- , v1DeviceRequestAllocationResultDriver :: !(Text) -- ^ /Required/ "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.- , v1DeviceRequestAllocationResultPool :: !(Text) -- ^ /Required/ "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.- , v1DeviceRequestAllocationResultRequest :: !(Text) -- ^ /Required/ "request" - Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.- , v1DeviceRequestAllocationResultShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device.- , v1DeviceRequestAllocationResultTolerations :: !(Maybe [V1DeviceToleration]) -- ^ "tolerations" - A copy of all tolerations specified in the request at the time when the device got allocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceRequestAllocationResult-instance A.FromJSON V1DeviceRequestAllocationResult where- parseJSON = A.withObject "V1DeviceRequestAllocationResult" $ \o ->- V1DeviceRequestAllocationResult- <$> (o .:? "adminAccess")- <*> (o .:? "bindingConditions")- <*> (o .:? "bindingFailureConditions")- <*> (o .:? "consumedCapacity")- <*> (o .: "device")- <*> (o .: "driver")- <*> (o .: "pool")- <*> (o .: "request")- <*> (o .:? "shareID")- <*> (o .:? "tolerations")---- | ToJSON V1DeviceRequestAllocationResult-instance A.ToJSON V1DeviceRequestAllocationResult where- toJSON V1DeviceRequestAllocationResult {..} =- _omitNulls- [ "adminAccess" .= v1DeviceRequestAllocationResultAdminAccess- , "bindingConditions" .= v1DeviceRequestAllocationResultBindingConditions- , "bindingFailureConditions" .= v1DeviceRequestAllocationResultBindingFailureConditions- , "consumedCapacity" .= v1DeviceRequestAllocationResultConsumedCapacity- , "device" .= v1DeviceRequestAllocationResultDevice- , "driver" .= v1DeviceRequestAllocationResultDriver- , "pool" .= v1DeviceRequestAllocationResultPool- , "request" .= v1DeviceRequestAllocationResultRequest- , "shareID" .= v1DeviceRequestAllocationResultShareId- , "tolerations" .= v1DeviceRequestAllocationResultTolerations- ]----- | Construct a value of type 'V1DeviceRequestAllocationResult' (by applying it's required fields, if any)-mkV1DeviceRequestAllocationResult- :: Text -- ^ 'v1DeviceRequestAllocationResultDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- -> Text -- ^ 'v1DeviceRequestAllocationResultDriver': 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.- -> Text -- ^ 'v1DeviceRequestAllocationResultPool': 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.- -> Text -- ^ 'v1DeviceRequestAllocationResultRequest': Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.- -> V1DeviceRequestAllocationResult-mkV1DeviceRequestAllocationResult v1DeviceRequestAllocationResultDevice v1DeviceRequestAllocationResultDriver v1DeviceRequestAllocationResultPool v1DeviceRequestAllocationResultRequest =- V1DeviceRequestAllocationResult- { v1DeviceRequestAllocationResultAdminAccess = Nothing- , v1DeviceRequestAllocationResultBindingConditions = Nothing- , v1DeviceRequestAllocationResultBindingFailureConditions = Nothing- , v1DeviceRequestAllocationResultConsumedCapacity = Nothing- , v1DeviceRequestAllocationResultDevice- , v1DeviceRequestAllocationResultDriver- , v1DeviceRequestAllocationResultPool- , v1DeviceRequestAllocationResultRequest- , v1DeviceRequestAllocationResultShareId = Nothing- , v1DeviceRequestAllocationResultTolerations = Nothing- }---- ** V1DeviceSelector--- | V1DeviceSelector--- DeviceSelector must have exactly one field set.-data V1DeviceSelector = V1DeviceSelector- { v1DeviceSelectorCel :: !(Maybe V1CELDeviceSelector) -- ^ "cel"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceSelector-instance A.FromJSON V1DeviceSelector where- parseJSON = A.withObject "V1DeviceSelector" $ \o ->- V1DeviceSelector- <$> (o .:? "cel")---- | ToJSON V1DeviceSelector-instance A.ToJSON V1DeviceSelector where- toJSON V1DeviceSelector {..} =- _omitNulls- [ "cel" .= v1DeviceSelectorCel- ]----- | Construct a value of type 'V1DeviceSelector' (by applying it's required fields, if any)-mkV1DeviceSelector- :: V1DeviceSelector-mkV1DeviceSelector =- V1DeviceSelector- { v1DeviceSelectorCel = Nothing- }---- ** V1DeviceSubRequest--- | V1DeviceSubRequest--- DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device.-data V1DeviceSubRequest = V1DeviceSubRequest- { v1DeviceSubRequestAllocationMode :: !(Maybe Text) -- ^ "allocationMode" - AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. 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 subrequest is for all of the matching devices in a pool. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.- , v1DeviceSubRequestCapacity :: !(Maybe V1CapacityRequirements) -- ^ "capacity"- , v1DeviceSubRequestCount :: !(Maybe Integer) -- ^ "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.- , v1DeviceSubRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.- , v1DeviceSubRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.- , v1DeviceSubRequestSelectors :: !(Maybe [V1DeviceSelector]) -- ^ "selectors" - Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.- , v1DeviceSubRequestTolerations :: !(Maybe [V1DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceSubRequest-instance A.FromJSON V1DeviceSubRequest where- parseJSON = A.withObject "V1DeviceSubRequest" $ \o ->- V1DeviceSubRequest- <$> (o .:? "allocationMode")- <*> (o .:? "capacity")- <*> (o .:? "count")- <*> (o .: "deviceClassName")- <*> (o .: "name")- <*> (o .:? "selectors")- <*> (o .:? "tolerations")---- | ToJSON V1DeviceSubRequest-instance A.ToJSON V1DeviceSubRequest where- toJSON V1DeviceSubRequest {..} =- _omitNulls- [ "allocationMode" .= v1DeviceSubRequestAllocationMode- , "capacity" .= v1DeviceSubRequestCapacity- , "count" .= v1DeviceSubRequestCount- , "deviceClassName" .= v1DeviceSubRequestDeviceClassName- , "name" .= v1DeviceSubRequestName- , "selectors" .= v1DeviceSubRequestSelectors- , "tolerations" .= v1DeviceSubRequestTolerations- ]----- | Construct a value of type 'V1DeviceSubRequest' (by applying it's required fields, if any)-mkV1DeviceSubRequest- :: Text -- ^ 'v1DeviceSubRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.- -> Text -- ^ 'v1DeviceSubRequestName': Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.- -> V1DeviceSubRequest-mkV1DeviceSubRequest v1DeviceSubRequestDeviceClassName v1DeviceSubRequestName =- V1DeviceSubRequest- { v1DeviceSubRequestAllocationMode = Nothing- , v1DeviceSubRequestCapacity = Nothing- , v1DeviceSubRequestCount = Nothing- , v1DeviceSubRequestDeviceClassName- , v1DeviceSubRequestName- , v1DeviceSubRequestSelectors = Nothing- , v1DeviceSubRequestTolerations = Nothing- }---- ** V1DeviceTaint--- | V1DeviceTaint--- The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.-data V1DeviceTaint = V1DeviceTaint- { v1DeviceTaintEffect :: !(Text) -- ^ /Required/ "effect" - The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.- , v1DeviceTaintKey :: !(Text) -- ^ /Required/ "key" - The taint key to be applied to a device. Must be a label name.- , v1DeviceTaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.- , v1DeviceTaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key. Must be a label value.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceTaint-instance A.FromJSON V1DeviceTaint where- parseJSON = A.withObject "V1DeviceTaint" $ \o ->- V1DeviceTaint- <$> (o .: "effect")- <*> (o .: "key")- <*> (o .:? "timeAdded")- <*> (o .:? "value")---- | ToJSON V1DeviceTaint-instance A.ToJSON V1DeviceTaint where- toJSON V1DeviceTaint {..} =- _omitNulls- [ "effect" .= v1DeviceTaintEffect- , "key" .= v1DeviceTaintKey- , "timeAdded" .= v1DeviceTaintTimeAdded- , "value" .= v1DeviceTaintValue- ]----- | Construct a value of type 'V1DeviceTaint' (by applying it's required fields, if any)-mkV1DeviceTaint- :: Text -- ^ 'v1DeviceTaintEffect': The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.- -> Text -- ^ 'v1DeviceTaintKey': The taint key to be applied to a device. Must be a label name.- -> V1DeviceTaint-mkV1DeviceTaint v1DeviceTaintEffect v1DeviceTaintKey =- V1DeviceTaint- { v1DeviceTaintEffect- , v1DeviceTaintKey- , v1DeviceTaintTimeAdded = Nothing- , v1DeviceTaintValue = Nothing- }---- ** V1DeviceToleration--- | V1DeviceToleration--- The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.-data V1DeviceToleration = V1DeviceToleration- { v1DeviceTolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.- , v1DeviceTolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.- , v1DeviceTolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.- , v1DeviceTolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.- , v1DeviceTolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DeviceToleration-instance A.FromJSON V1DeviceToleration where- parseJSON = A.withObject "V1DeviceToleration" $ \o ->- V1DeviceToleration- <$> (o .:? "effect")- <*> (o .:? "key")- <*> (o .:? "operator")- <*> (o .:? "tolerationSeconds")- <*> (o .:? "value")---- | ToJSON V1DeviceToleration-instance A.ToJSON V1DeviceToleration where- toJSON V1DeviceToleration {..} =- _omitNulls- [ "effect" .= v1DeviceTolerationEffect- , "key" .= v1DeviceTolerationKey- , "operator" .= v1DeviceTolerationOperator- , "tolerationSeconds" .= v1DeviceTolerationTolerationSeconds- , "value" .= v1DeviceTolerationValue- ]----- | Construct a value of type 'V1DeviceToleration' (by applying it's required fields, if any)-mkV1DeviceToleration- :: V1DeviceToleration-mkV1DeviceToleration =- V1DeviceToleration- { v1DeviceTolerationEffect = Nothing- , v1DeviceTolerationKey = Nothing- , v1DeviceTolerationOperator = Nothing- , v1DeviceTolerationTolerationSeconds = Nothing- , v1DeviceTolerationValue = Nothing- }---- ** V1DownwardAPIProjection--- | V1DownwardAPIProjection--- Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.-data V1DownwardAPIProjection = V1DownwardAPIProjection- { v1DownwardAPIProjectionItems :: !(Maybe [V1DownwardAPIVolumeFile]) -- ^ "items" - Items is a list of DownwardAPIVolume file- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DownwardAPIProjection-instance A.FromJSON V1DownwardAPIProjection where- parseJSON = A.withObject "V1DownwardAPIProjection" $ \o ->- V1DownwardAPIProjection- <$> (o .:? "items")---- | ToJSON V1DownwardAPIProjection-instance A.ToJSON V1DownwardAPIProjection where- toJSON V1DownwardAPIProjection {..} =- _omitNulls- [ "items" .= v1DownwardAPIProjectionItems- ]----- | Construct a value of type 'V1DownwardAPIProjection' (by applying it's required fields, if any)-mkV1DownwardAPIProjection- :: V1DownwardAPIProjection-mkV1DownwardAPIProjection =- V1DownwardAPIProjection- { v1DownwardAPIProjectionItems = Nothing- }---- ** V1DownwardAPIVolumeFile--- | V1DownwardAPIVolumeFile--- DownwardAPIVolumeFile represents information to create the file containing the pod field-data V1DownwardAPIVolumeFile = V1DownwardAPIVolumeFile- { v1DownwardAPIVolumeFileFieldRef :: !(Maybe V1ObjectFieldSelector) -- ^ "fieldRef"- , v1DownwardAPIVolumeFileMode :: !(Maybe Int) -- ^ "mode" - Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.- , v1DownwardAPIVolumeFilePath :: !(Text) -- ^ /Required/ "path" - Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'- , v1DownwardAPIVolumeFileResourceFieldRef :: !(Maybe V1ResourceFieldSelector) -- ^ "resourceFieldRef"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DownwardAPIVolumeFile-instance A.FromJSON V1DownwardAPIVolumeFile where- parseJSON = A.withObject "V1DownwardAPIVolumeFile" $ \o ->- V1DownwardAPIVolumeFile- <$> (o .:? "fieldRef")- <*> (o .:? "mode")- <*> (o .: "path")- <*> (o .:? "resourceFieldRef")---- | ToJSON V1DownwardAPIVolumeFile-instance A.ToJSON V1DownwardAPIVolumeFile where- toJSON V1DownwardAPIVolumeFile {..} =- _omitNulls- [ "fieldRef" .= v1DownwardAPIVolumeFileFieldRef- , "mode" .= v1DownwardAPIVolumeFileMode- , "path" .= v1DownwardAPIVolumeFilePath- , "resourceFieldRef" .= v1DownwardAPIVolumeFileResourceFieldRef- ]----- | Construct a value of type 'V1DownwardAPIVolumeFile' (by applying it's required fields, if any)-mkV1DownwardAPIVolumeFile- :: Text -- ^ 'v1DownwardAPIVolumeFilePath': Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'- -> V1DownwardAPIVolumeFile-mkV1DownwardAPIVolumeFile v1DownwardAPIVolumeFilePath =- V1DownwardAPIVolumeFile- { v1DownwardAPIVolumeFileFieldRef = Nothing- , v1DownwardAPIVolumeFileMode = Nothing- , v1DownwardAPIVolumeFilePath- , v1DownwardAPIVolumeFileResourceFieldRef = Nothing- }---- ** V1DownwardAPIVolumeSource--- | V1DownwardAPIVolumeSource--- DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.-data V1DownwardAPIVolumeSource = V1DownwardAPIVolumeSource- { v1DownwardAPIVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.- , v1DownwardAPIVolumeSourceItems :: !(Maybe [V1DownwardAPIVolumeFile]) -- ^ "items" - Items is a list of downward API volume file- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1DownwardAPIVolumeSource-instance A.FromJSON V1DownwardAPIVolumeSource where- parseJSON = A.withObject "V1DownwardAPIVolumeSource" $ \o ->- V1DownwardAPIVolumeSource- <$> (o .:? "defaultMode")- <*> (o .:? "items")---- | ToJSON V1DownwardAPIVolumeSource-instance A.ToJSON V1DownwardAPIVolumeSource where- toJSON V1DownwardAPIVolumeSource {..} =- _omitNulls- [ "defaultMode" .= v1DownwardAPIVolumeSourceDefaultMode- , "items" .= v1DownwardAPIVolumeSourceItems- ]----- | Construct a value of type 'V1DownwardAPIVolumeSource' (by applying it's required fields, if any)-mkV1DownwardAPIVolumeSource- :: V1DownwardAPIVolumeSource-mkV1DownwardAPIVolumeSource =- V1DownwardAPIVolumeSource- { v1DownwardAPIVolumeSourceDefaultMode = Nothing- , v1DownwardAPIVolumeSourceItems = Nothing- }---- ** V1EmptyDirVolumeSource--- | V1EmptyDirVolumeSource--- Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.-data V1EmptyDirVolumeSource = V1EmptyDirVolumeSource- { v1EmptyDirVolumeSourceMedium :: !(Maybe Text) -- ^ "medium" - medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir- , v1EmptyDirVolumeSourceSizeLimit :: !(Maybe Quantity) -- ^ "sizeLimit"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EmptyDirVolumeSource-instance A.FromJSON V1EmptyDirVolumeSource where- parseJSON = A.withObject "V1EmptyDirVolumeSource" $ \o ->- V1EmptyDirVolumeSource- <$> (o .:? "medium")- <*> (o .:? "sizeLimit")---- | ToJSON V1EmptyDirVolumeSource-instance A.ToJSON V1EmptyDirVolumeSource where- toJSON V1EmptyDirVolumeSource {..} =- _omitNulls- [ "medium" .= v1EmptyDirVolumeSourceMedium- , "sizeLimit" .= v1EmptyDirVolumeSourceSizeLimit- ]----- | Construct a value of type 'V1EmptyDirVolumeSource' (by applying it's required fields, if any)-mkV1EmptyDirVolumeSource- :: V1EmptyDirVolumeSource-mkV1EmptyDirVolumeSource =- V1EmptyDirVolumeSource- { v1EmptyDirVolumeSourceMedium = Nothing- , v1EmptyDirVolumeSourceSizeLimit = Nothing- }---- ** V1Endpoint--- | V1Endpoint--- Endpoint represents a single logical \"backend\" implementing a service.-data V1Endpoint = V1Endpoint- { v1EndpointAddresses :: !([Text]) -- ^ /Required/ "addresses" - addresses of this endpoint. For EndpointSlices of addressType \"IPv4\" or \"IPv6\", the values are IP addresses in canonical form. The syntax and semantics of other addressType values are not defined. This must contain at least one address but no more than 100. EndpointSlices generated by the EndpointSlice controller will always have exactly 1 address. No semantics are defined for additional addresses beyond the first, and kube-proxy does not look at them.- , v1EndpointConditions :: !(Maybe V1EndpointConditions) -- ^ "conditions"- , v1EndpointDeprecatedTopology :: !(Maybe (Map.Map String Text)) -- ^ "deprecatedTopology" - deprecatedTopology contains topology information part of the v1beta1 API. This field is deprecated, and will be removed when the v1beta1 API is removed (no sooner than kubernetes v1.24). While this field can hold values, it is not writable through the v1 API, and any attempts to write to it will be silently ignored. Topology information can be found in the zone and nodeName fields instead.- , v1EndpointHints :: !(Maybe V1EndpointHints) -- ^ "hints"- , v1EndpointHostname :: !(Maybe Text) -- ^ "hostname" - hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.- , v1EndpointNodeName :: !(Maybe Text) -- ^ "nodeName" - nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.- , v1EndpointTargetRef :: !(Maybe V1ObjectReference) -- ^ "targetRef"- , v1EndpointZone :: !(Maybe Text) -- ^ "zone" - zone is the name of the Zone this endpoint exists in.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Endpoint-instance A.FromJSON V1Endpoint where- parseJSON = A.withObject "V1Endpoint" $ \o ->- V1Endpoint- <$> (o .: "addresses")- <*> (o .:? "conditions")- <*> (o .:? "deprecatedTopology")- <*> (o .:? "hints")- <*> (o .:? "hostname")- <*> (o .:? "nodeName")- <*> (o .:? "targetRef")- <*> (o .:? "zone")---- | ToJSON V1Endpoint-instance A.ToJSON V1Endpoint where- toJSON V1Endpoint {..} =- _omitNulls- [ "addresses" .= v1EndpointAddresses- , "conditions" .= v1EndpointConditions- , "deprecatedTopology" .= v1EndpointDeprecatedTopology- , "hints" .= v1EndpointHints- , "hostname" .= v1EndpointHostname- , "nodeName" .= v1EndpointNodeName- , "targetRef" .= v1EndpointTargetRef- , "zone" .= v1EndpointZone- ]----- | Construct a value of type 'V1Endpoint' (by applying it's required fields, if any)-mkV1Endpoint- :: [Text] -- ^ 'v1EndpointAddresses': addresses of this endpoint. For EndpointSlices of addressType \"IPv4\" or \"IPv6\", the values are IP addresses in canonical form. The syntax and semantics of other addressType values are not defined. This must contain at least one address but no more than 100. EndpointSlices generated by the EndpointSlice controller will always have exactly 1 address. No semantics are defined for additional addresses beyond the first, and kube-proxy does not look at them.- -> V1Endpoint-mkV1Endpoint v1EndpointAddresses =- V1Endpoint- { v1EndpointAddresses- , v1EndpointConditions = Nothing- , v1EndpointDeprecatedTopology = Nothing- , v1EndpointHints = Nothing- , v1EndpointHostname = Nothing- , v1EndpointNodeName = Nothing- , v1EndpointTargetRef = Nothing- , v1EndpointZone = Nothing- }---- ** V1EndpointAddress--- | V1EndpointAddress--- EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.-data V1EndpointAddress = V1EndpointAddress- { v1EndpointAddressHostname :: !(Maybe Text) -- ^ "hostname" - The Hostname of this endpoint- , v1EndpointAddressIp :: !(Text) -- ^ /Required/ "ip" - The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).- , v1EndpointAddressNodeName :: !(Maybe Text) -- ^ "nodeName" - Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.- , v1EndpointAddressTargetRef :: !(Maybe V1ObjectReference) -- ^ "targetRef"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EndpointAddress-instance A.FromJSON V1EndpointAddress where- parseJSON = A.withObject "V1EndpointAddress" $ \o ->- V1EndpointAddress- <$> (o .:? "hostname")- <*> (o .: "ip")- <*> (o .:? "nodeName")- <*> (o .:? "targetRef")---- | ToJSON V1EndpointAddress-instance A.ToJSON V1EndpointAddress where- toJSON V1EndpointAddress {..} =- _omitNulls- [ "hostname" .= v1EndpointAddressHostname- , "ip" .= v1EndpointAddressIp- , "nodeName" .= v1EndpointAddressNodeName- , "targetRef" .= v1EndpointAddressTargetRef- ]----- | Construct a value of type 'V1EndpointAddress' (by applying it's required fields, if any)-mkV1EndpointAddress- :: Text -- ^ 'v1EndpointAddressIp': The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).- -> V1EndpointAddress-mkV1EndpointAddress v1EndpointAddressIp =- V1EndpointAddress- { v1EndpointAddressHostname = Nothing- , v1EndpointAddressIp- , v1EndpointAddressNodeName = Nothing- , v1EndpointAddressTargetRef = Nothing- }---- ** V1EndpointConditions--- | V1EndpointConditions--- EndpointConditions represents the current condition of an endpoint.-data V1EndpointConditions = V1EndpointConditions- { v1EndpointConditionsReady :: !(Maybe Bool) -- ^ "ready" - ready indicates that this endpoint is ready to receive traffic, according to whatever system is managing the endpoint. A nil value should be interpreted as \"true\". In general, an endpoint should be marked ready if it is serving and not terminating, though this can be overridden in some cases, such as when the associated Service has set the publishNotReadyAddresses flag.- , v1EndpointConditionsServing :: !(Maybe Bool) -- ^ "serving" - serving indicates that this endpoint is able to receive traffic, according to whatever system is managing the endpoint. For endpoints backed by pods, the EndpointSlice controller will mark the endpoint as serving if the pod's Ready condition is True. A nil value should be interpreted as \"true\".- , v1EndpointConditionsTerminating :: !(Maybe Bool) -- ^ "terminating" - terminating indicates that this endpoint is terminating. A nil value should be interpreted as \"false\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EndpointConditions-instance A.FromJSON V1EndpointConditions where- parseJSON = A.withObject "V1EndpointConditions" $ \o ->- V1EndpointConditions- <$> (o .:? "ready")- <*> (o .:? "serving")- <*> (o .:? "terminating")---- | ToJSON V1EndpointConditions-instance A.ToJSON V1EndpointConditions where- toJSON V1EndpointConditions {..} =- _omitNulls- [ "ready" .= v1EndpointConditionsReady- , "serving" .= v1EndpointConditionsServing- , "terminating" .= v1EndpointConditionsTerminating- ]----- | Construct a value of type 'V1EndpointConditions' (by applying it's required fields, if any)-mkV1EndpointConditions- :: V1EndpointConditions-mkV1EndpointConditions =- V1EndpointConditions- { v1EndpointConditionsReady = Nothing- , v1EndpointConditionsServing = Nothing- , v1EndpointConditionsTerminating = Nothing- }---- ** V1EndpointHints--- | V1EndpointHints--- EndpointHints provides hints describing how an endpoint should be consumed.-data V1EndpointHints = V1EndpointHints- { v1EndpointHintsForNodes :: !(Maybe [V1ForNode]) -- ^ "forNodes" - forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled.- , v1EndpointHintsForZones :: !(Maybe [V1ForZone]) -- ^ "forZones" - forZones indicates the zone(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EndpointHints-instance A.FromJSON V1EndpointHints where- parseJSON = A.withObject "V1EndpointHints" $ \o ->- V1EndpointHints- <$> (o .:? "forNodes")- <*> (o .:? "forZones")---- | ToJSON V1EndpointHints-instance A.ToJSON V1EndpointHints where- toJSON V1EndpointHints {..} =- _omitNulls- [ "forNodes" .= v1EndpointHintsForNodes- , "forZones" .= v1EndpointHintsForZones- ]----- | Construct a value of type 'V1EndpointHints' (by applying it's required fields, if any)-mkV1EndpointHints- :: V1EndpointHints-mkV1EndpointHints =- V1EndpointHints- { v1EndpointHintsForNodes = Nothing- , v1EndpointHintsForZones = Nothing- }---- ** V1EndpointSlice--- | V1EndpointSlice--- EndpointSlice represents a set of service endpoints. Most EndpointSlices are created by the EndpointSlice controller to represent the Pods selected by Service objects. For a given service there may be multiple EndpointSlice objects which must be joined to produce the full set of endpoints; you can find all of the slices for a given service by listing EndpointSlices in the service's namespace whose `kubernetes.io/service-name` label contains the service's name.-data V1EndpointSlice = V1EndpointSlice- { v1EndpointSliceAddressType :: !(Text) -- ^ /Required/ "addressType" - addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. (Deprecated) The EndpointSlice controller only generates, and kube-proxy only processes, slices of addressType \"IPv4\" and \"IPv6\". No semantics are defined for the \"FQDN\" type.- , v1EndpointSliceApiVersion :: !(Maybe Text) -- ^ "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- , v1EndpointSliceEndpoints :: !([V1Endpoint]) -- ^ /Required/ "endpoints" - endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.- , v1EndpointSliceKind :: !(Maybe Text) -- ^ "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- , v1EndpointSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1EndpointSlicePorts :: !(Maybe [DiscoveryV1EndpointPort]) -- ^ "ports" - ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. Each slice may include a maximum of 100 ports. Services always have at least 1 port, so EndpointSlices generated by the EndpointSlice controller will likewise always have at least 1 port. EndpointSlices used for other purposes may have an empty ports list.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EndpointSlice-instance A.FromJSON V1EndpointSlice where- parseJSON = A.withObject "V1EndpointSlice" $ \o ->- V1EndpointSlice- <$> (o .: "addressType")- <*> (o .:? "apiVersion")- <*> (o .: "endpoints")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "ports")---- | ToJSON V1EndpointSlice-instance A.ToJSON V1EndpointSlice where- toJSON V1EndpointSlice {..} =- _omitNulls- [ "addressType" .= v1EndpointSliceAddressType- , "apiVersion" .= v1EndpointSliceApiVersion- , "endpoints" .= v1EndpointSliceEndpoints- , "kind" .= v1EndpointSliceKind- , "metadata" .= v1EndpointSliceMetadata- , "ports" .= v1EndpointSlicePorts- ]----- | Construct a value of type 'V1EndpointSlice' (by applying it's required fields, if any)-mkV1EndpointSlice- :: Text -- ^ 'v1EndpointSliceAddressType': addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. (Deprecated) The EndpointSlice controller only generates, and kube-proxy only processes, slices of addressType \"IPv4\" and \"IPv6\". No semantics are defined for the \"FQDN\" type.- -> [V1Endpoint] -- ^ 'v1EndpointSliceEndpoints': endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.- -> V1EndpointSlice-mkV1EndpointSlice v1EndpointSliceAddressType v1EndpointSliceEndpoints =- V1EndpointSlice- { v1EndpointSliceAddressType- , v1EndpointSliceApiVersion = Nothing- , v1EndpointSliceEndpoints- , v1EndpointSliceKind = Nothing- , v1EndpointSliceMetadata = Nothing- , v1EndpointSlicePorts = Nothing- }---- ** V1EndpointSliceList--- | V1EndpointSliceList--- EndpointSliceList represents a list of endpoint slices-data V1EndpointSliceList = V1EndpointSliceList- { v1EndpointSliceListApiVersion :: !(Maybe Text) -- ^ "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- , v1EndpointSliceListItems :: !([V1EndpointSlice]) -- ^ /Required/ "items" - items is the list of endpoint slices- , v1EndpointSliceListKind :: !(Maybe Text) -- ^ "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- , v1EndpointSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EndpointSliceList-instance A.FromJSON V1EndpointSliceList where- parseJSON = A.withObject "V1EndpointSliceList" $ \o ->- V1EndpointSliceList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1EndpointSliceList-instance A.ToJSON V1EndpointSliceList where- toJSON V1EndpointSliceList {..} =- _omitNulls- [ "apiVersion" .= v1EndpointSliceListApiVersion- , "items" .= v1EndpointSliceListItems- , "kind" .= v1EndpointSliceListKind- , "metadata" .= v1EndpointSliceListMetadata- ]----- | Construct a value of type 'V1EndpointSliceList' (by applying it's required fields, if any)-mkV1EndpointSliceList- :: [V1EndpointSlice] -- ^ 'v1EndpointSliceListItems': items is the list of endpoint slices- -> V1EndpointSliceList-mkV1EndpointSliceList v1EndpointSliceListItems =- V1EndpointSliceList- { v1EndpointSliceListApiVersion = Nothing- , v1EndpointSliceListItems- , v1EndpointSliceListKind = Nothing- , v1EndpointSliceListMetadata = Nothing- }---- ** V1EndpointSubset--- | V1EndpointSubset--- EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given: { Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}], Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}] } The resulting set of endpoints can be viewed as: a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ] Deprecated: This API is deprecated in v1.33+.-data V1EndpointSubset = V1EndpointSubset- { v1EndpointSubsetAddresses :: !(Maybe [V1EndpointAddress]) -- ^ "addresses" - IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.- , v1EndpointSubsetNotReadyAddresses :: !(Maybe [V1EndpointAddress]) -- ^ "notReadyAddresses" - IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.- , v1EndpointSubsetPorts :: !(Maybe [CoreV1EndpointPort]) -- ^ "ports" - Port numbers available on the related IP addresses.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EndpointSubset-instance A.FromJSON V1EndpointSubset where- parseJSON = A.withObject "V1EndpointSubset" $ \o ->- V1EndpointSubset- <$> (o .:? "addresses")- <*> (o .:? "notReadyAddresses")- <*> (o .:? "ports")---- | ToJSON V1EndpointSubset-instance A.ToJSON V1EndpointSubset where- toJSON V1EndpointSubset {..} =- _omitNulls- [ "addresses" .= v1EndpointSubsetAddresses- , "notReadyAddresses" .= v1EndpointSubsetNotReadyAddresses- , "ports" .= v1EndpointSubsetPorts- ]----- | Construct a value of type 'V1EndpointSubset' (by applying it's required fields, if any)-mkV1EndpointSubset- :: V1EndpointSubset-mkV1EndpointSubset =- V1EndpointSubset- { v1EndpointSubsetAddresses = Nothing- , v1EndpointSubsetNotReadyAddresses = Nothing- , v1EndpointSubsetPorts = Nothing- }---- ** V1Endpoints--- | V1Endpoints--- Endpoints is a collection of endpoints that implement the actual service. Example: Name: \"mysvc\", Subsets: [ { Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}], Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}] }, { Addresses: [{\"ip\": \"10.10.3.3\"}], Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}] }, ] Endpoints is a legacy API and does not contain information about all Service features. Use discoveryv1.EndpointSlice for complete information about Service endpoints. Deprecated: This API is deprecated in v1.33+. Use discoveryv1.EndpointSlice.-data V1Endpoints = V1Endpoints- { v1EndpointsApiVersion :: !(Maybe Text) -- ^ "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- , v1EndpointsKind :: !(Maybe Text) -- ^ "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- , v1EndpointsMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1EndpointsSubsets :: !(Maybe [V1EndpointSubset]) -- ^ "subsets" - The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Endpoints-instance A.FromJSON V1Endpoints where- parseJSON = A.withObject "V1Endpoints" $ \o ->- V1Endpoints- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "subsets")---- | ToJSON V1Endpoints-instance A.ToJSON V1Endpoints where- toJSON V1Endpoints {..} =- _omitNulls- [ "apiVersion" .= v1EndpointsApiVersion- , "kind" .= v1EndpointsKind- , "metadata" .= v1EndpointsMetadata- , "subsets" .= v1EndpointsSubsets- ]----- | Construct a value of type 'V1Endpoints' (by applying it's required fields, if any)-mkV1Endpoints- :: V1Endpoints-mkV1Endpoints =- V1Endpoints- { v1EndpointsApiVersion = Nothing- , v1EndpointsKind = Nothing- , v1EndpointsMetadata = Nothing- , v1EndpointsSubsets = Nothing- }---- ** V1EndpointsList--- | V1EndpointsList--- EndpointsList is a list of endpoints. Deprecated: This API is deprecated in v1.33+.-data V1EndpointsList = V1EndpointsList- { v1EndpointsListApiVersion :: !(Maybe Text) -- ^ "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- , v1EndpointsListItems :: !([V1Endpoints]) -- ^ /Required/ "items" - List of endpoints.- , v1EndpointsListKind :: !(Maybe Text) -- ^ "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- , v1EndpointsListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EndpointsList-instance A.FromJSON V1EndpointsList where- parseJSON = A.withObject "V1EndpointsList" $ \o ->- V1EndpointsList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1EndpointsList-instance A.ToJSON V1EndpointsList where- toJSON V1EndpointsList {..} =- _omitNulls- [ "apiVersion" .= v1EndpointsListApiVersion- , "items" .= v1EndpointsListItems- , "kind" .= v1EndpointsListKind- , "metadata" .= v1EndpointsListMetadata- ]----- | Construct a value of type 'V1EndpointsList' (by applying it's required fields, if any)-mkV1EndpointsList- :: [V1Endpoints] -- ^ 'v1EndpointsListItems': List of endpoints.- -> V1EndpointsList-mkV1EndpointsList v1EndpointsListItems =- V1EndpointsList- { v1EndpointsListApiVersion = Nothing- , v1EndpointsListItems- , v1EndpointsListKind = Nothing- , v1EndpointsListMetadata = Nothing- }---- ** V1EnvFromSource--- | V1EnvFromSource--- EnvFromSource represents the source of a set of ConfigMaps or Secrets-data V1EnvFromSource = V1EnvFromSource- { v1EnvFromSourceConfigMapRef :: !(Maybe V1ConfigMapEnvSource) -- ^ "configMapRef"- , v1EnvFromSourcePrefix :: !(Maybe Text) -- ^ "prefix" - Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='.- , v1EnvFromSourceSecretRef :: !(Maybe V1SecretEnvSource) -- ^ "secretRef"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EnvFromSource-instance A.FromJSON V1EnvFromSource where- parseJSON = A.withObject "V1EnvFromSource" $ \o ->- V1EnvFromSource- <$> (o .:? "configMapRef")- <*> (o .:? "prefix")- <*> (o .:? "secretRef")---- | ToJSON V1EnvFromSource-instance A.ToJSON V1EnvFromSource where- toJSON V1EnvFromSource {..} =- _omitNulls- [ "configMapRef" .= v1EnvFromSourceConfigMapRef- , "prefix" .= v1EnvFromSourcePrefix- , "secretRef" .= v1EnvFromSourceSecretRef- ]----- | Construct a value of type 'V1EnvFromSource' (by applying it's required fields, if any)-mkV1EnvFromSource- :: V1EnvFromSource-mkV1EnvFromSource =- V1EnvFromSource- { v1EnvFromSourceConfigMapRef = Nothing- , v1EnvFromSourcePrefix = Nothing- , v1EnvFromSourceSecretRef = Nothing- }---- ** V1EnvVar--- | V1EnvVar--- EnvVar represents an environment variable present in a Container.-data V1EnvVar = V1EnvVar- { v1EnvVarName :: !(Text) -- ^ /Required/ "name" - Name of the environment variable. May consist of any printable ASCII characters except '='.- , v1EnvVarValue :: !(Maybe Text) -- ^ "value" - Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".- , v1EnvVarValueFrom :: !(Maybe V1EnvVarSource) -- ^ "valueFrom"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EnvVar-instance A.FromJSON V1EnvVar where- parseJSON = A.withObject "V1EnvVar" $ \o ->- V1EnvVar- <$> (o .: "name")- <*> (o .:? "value")- <*> (o .:? "valueFrom")---- | ToJSON V1EnvVar-instance A.ToJSON V1EnvVar where- toJSON V1EnvVar {..} =- _omitNulls- [ "name" .= v1EnvVarName- , "value" .= v1EnvVarValue- , "valueFrom" .= v1EnvVarValueFrom- ]----- | Construct a value of type 'V1EnvVar' (by applying it's required fields, if any)-mkV1EnvVar- :: Text -- ^ 'v1EnvVarName': Name of the environment variable. May consist of any printable ASCII characters except '='.- -> V1EnvVar-mkV1EnvVar v1EnvVarName =- V1EnvVar- { v1EnvVarName- , v1EnvVarValue = Nothing- , v1EnvVarValueFrom = Nothing- }---- ** V1EnvVarSource--- | V1EnvVarSource--- EnvVarSource represents a source for the value of an EnvVar.-data V1EnvVarSource = V1EnvVarSource- { v1EnvVarSourceConfigMapKeyRef :: !(Maybe V1ConfigMapKeySelector) -- ^ "configMapKeyRef"- , v1EnvVarSourceFieldRef :: !(Maybe V1ObjectFieldSelector) -- ^ "fieldRef"- , v1EnvVarSourceFileKeyRef :: !(Maybe V1FileKeySelector) -- ^ "fileKeyRef"- , v1EnvVarSourceResourceFieldRef :: !(Maybe V1ResourceFieldSelector) -- ^ "resourceFieldRef"- , v1EnvVarSourceSecretKeyRef :: !(Maybe V1SecretKeySelector) -- ^ "secretKeyRef"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EnvVarSource-instance A.FromJSON V1EnvVarSource where- parseJSON = A.withObject "V1EnvVarSource" $ \o ->- V1EnvVarSource- <$> (o .:? "configMapKeyRef")- <*> (o .:? "fieldRef")- <*> (o .:? "fileKeyRef")- <*> (o .:? "resourceFieldRef")- <*> (o .:? "secretKeyRef")---- | ToJSON V1EnvVarSource-instance A.ToJSON V1EnvVarSource where- toJSON V1EnvVarSource {..} =- _omitNulls- [ "configMapKeyRef" .= v1EnvVarSourceConfigMapKeyRef- , "fieldRef" .= v1EnvVarSourceFieldRef- , "fileKeyRef" .= v1EnvVarSourceFileKeyRef- , "resourceFieldRef" .= v1EnvVarSourceResourceFieldRef- , "secretKeyRef" .= v1EnvVarSourceSecretKeyRef- ]----- | Construct a value of type 'V1EnvVarSource' (by applying it's required fields, if any)-mkV1EnvVarSource- :: V1EnvVarSource-mkV1EnvVarSource =- V1EnvVarSource- { v1EnvVarSourceConfigMapKeyRef = Nothing- , v1EnvVarSourceFieldRef = Nothing- , v1EnvVarSourceFileKeyRef = Nothing- , v1EnvVarSourceResourceFieldRef = Nothing- , v1EnvVarSourceSecretKeyRef = Nothing- }---- ** V1EphemeralContainer--- | V1EphemeralContainer--- An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.-data V1EphemeralContainer = V1EphemeralContainer- { v1EphemeralContainerArgs :: !(Maybe [Text]) -- ^ "args" - Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell- , v1EphemeralContainerCommand :: !(Maybe [Text]) -- ^ "command" - Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell- , v1EphemeralContainerEnv :: !(Maybe [V1EnvVar]) -- ^ "env" - List of environment variables to set in the container. Cannot be updated.- , v1EphemeralContainerEnvFrom :: !(Maybe [V1EnvFromSource]) -- ^ "envFrom" - List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.- , v1EphemeralContainerImage :: !(Maybe Text) -- ^ "image" - Container image name. More info: https://kubernetes.io/docs/concepts/containers/images- , v1EphemeralContainerImagePullPolicy :: !(Maybe Text) -- ^ "imagePullPolicy" - Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images- , v1EphemeralContainerLifecycle :: !(Maybe V1Lifecycle) -- ^ "lifecycle"- , v1EphemeralContainerLivenessProbe :: !(Maybe V1Probe) -- ^ "livenessProbe"- , v1EphemeralContainerName :: !(Text) -- ^ /Required/ "name" - Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.- , v1EphemeralContainerPorts :: !(Maybe [V1ContainerPort]) -- ^ "ports" - Ports are not allowed for ephemeral containers.- , v1EphemeralContainerReadinessProbe :: !(Maybe V1Probe) -- ^ "readinessProbe"- , v1EphemeralContainerResizePolicy :: !(Maybe [V1ContainerResizePolicy]) -- ^ "resizePolicy" - Resources resize policy for the container.- , v1EphemeralContainerResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"- , v1EphemeralContainerRestartPolicy :: !(Maybe Text) -- ^ "restartPolicy" - Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.- , v1EphemeralContainerRestartPolicyRules :: !(Maybe [V1ContainerRestartRule]) -- ^ "restartPolicyRules" - Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.- , v1EphemeralContainerSecurityContext :: !(Maybe V1SecurityContext) -- ^ "securityContext"- , v1EphemeralContainerStartupProbe :: !(Maybe V1Probe) -- ^ "startupProbe"- , v1EphemeralContainerStdin :: !(Maybe Bool) -- ^ "stdin" - Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.- , v1EphemeralContainerStdinOnce :: !(Maybe Bool) -- ^ "stdinOnce" - Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false- , v1EphemeralContainerTargetContainerName :: !(Maybe Text) -- ^ "targetContainerName" - If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.- , v1EphemeralContainerTerminationMessagePath :: !(Maybe Text) -- ^ "terminationMessagePath" - Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.- , v1EphemeralContainerTerminationMessagePolicy :: !(Maybe Text) -- ^ "terminationMessagePolicy" - Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.- , v1EphemeralContainerTty :: !(Maybe Bool) -- ^ "tty" - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.- , v1EphemeralContainerVolumeDevices :: !(Maybe [V1VolumeDevice]) -- ^ "volumeDevices" - volumeDevices is the list of block devices to be used by the container.- , v1EphemeralContainerVolumeMounts :: !(Maybe [V1VolumeMount]) -- ^ "volumeMounts" - Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.- , v1EphemeralContainerWorkingDir :: !(Maybe Text) -- ^ "workingDir" - Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EphemeralContainer-instance A.FromJSON V1EphemeralContainer where- parseJSON = A.withObject "V1EphemeralContainer" $ \o ->- V1EphemeralContainer- <$> (o .:? "args")- <*> (o .:? "command")- <*> (o .:? "env")- <*> (o .:? "envFrom")- <*> (o .:? "image")- <*> (o .:? "imagePullPolicy")- <*> (o .:? "lifecycle")- <*> (o .:? "livenessProbe")- <*> (o .: "name")- <*> (o .:? "ports")- <*> (o .:? "readinessProbe")- <*> (o .:? "resizePolicy")- <*> (o .:? "resources")- <*> (o .:? "restartPolicy")- <*> (o .:? "restartPolicyRules")- <*> (o .:? "securityContext")- <*> (o .:? "startupProbe")- <*> (o .:? "stdin")- <*> (o .:? "stdinOnce")- <*> (o .:? "targetContainerName")- <*> (o .:? "terminationMessagePath")- <*> (o .:? "terminationMessagePolicy")- <*> (o .:? "tty")- <*> (o .:? "volumeDevices")- <*> (o .:? "volumeMounts")- <*> (o .:? "workingDir")---- | ToJSON V1EphemeralContainer-instance A.ToJSON V1EphemeralContainer where- toJSON V1EphemeralContainer {..} =- _omitNulls- [ "args" .= v1EphemeralContainerArgs- , "command" .= v1EphemeralContainerCommand- , "env" .= v1EphemeralContainerEnv- , "envFrom" .= v1EphemeralContainerEnvFrom- , "image" .= v1EphemeralContainerImage- , "imagePullPolicy" .= v1EphemeralContainerImagePullPolicy- , "lifecycle" .= v1EphemeralContainerLifecycle- , "livenessProbe" .= v1EphemeralContainerLivenessProbe- , "name" .= v1EphemeralContainerName- , "ports" .= v1EphemeralContainerPorts- , "readinessProbe" .= v1EphemeralContainerReadinessProbe- , "resizePolicy" .= v1EphemeralContainerResizePolicy- , "resources" .= v1EphemeralContainerResources- , "restartPolicy" .= v1EphemeralContainerRestartPolicy- , "restartPolicyRules" .= v1EphemeralContainerRestartPolicyRules- , "securityContext" .= v1EphemeralContainerSecurityContext- , "startupProbe" .= v1EphemeralContainerStartupProbe- , "stdin" .= v1EphemeralContainerStdin- , "stdinOnce" .= v1EphemeralContainerStdinOnce- , "targetContainerName" .= v1EphemeralContainerTargetContainerName- , "terminationMessagePath" .= v1EphemeralContainerTerminationMessagePath- , "terminationMessagePolicy" .= v1EphemeralContainerTerminationMessagePolicy- , "tty" .= v1EphemeralContainerTty- , "volumeDevices" .= v1EphemeralContainerVolumeDevices- , "volumeMounts" .= v1EphemeralContainerVolumeMounts- , "workingDir" .= v1EphemeralContainerWorkingDir- ]----- | Construct a value of type 'V1EphemeralContainer' (by applying it's required fields, if any)-mkV1EphemeralContainer- :: Text -- ^ 'v1EphemeralContainerName': Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.- -> V1EphemeralContainer-mkV1EphemeralContainer v1EphemeralContainerName =- V1EphemeralContainer- { v1EphemeralContainerArgs = Nothing- , v1EphemeralContainerCommand = Nothing- , v1EphemeralContainerEnv = Nothing- , v1EphemeralContainerEnvFrom = Nothing- , v1EphemeralContainerImage = Nothing- , v1EphemeralContainerImagePullPolicy = Nothing- , v1EphemeralContainerLifecycle = Nothing- , v1EphemeralContainerLivenessProbe = Nothing- , v1EphemeralContainerName- , v1EphemeralContainerPorts = Nothing- , v1EphemeralContainerReadinessProbe = Nothing- , v1EphemeralContainerResizePolicy = Nothing- , v1EphemeralContainerResources = Nothing- , v1EphemeralContainerRestartPolicy = Nothing- , v1EphemeralContainerRestartPolicyRules = Nothing- , v1EphemeralContainerSecurityContext = Nothing- , v1EphemeralContainerStartupProbe = Nothing- , v1EphemeralContainerStdin = Nothing- , v1EphemeralContainerStdinOnce = Nothing- , v1EphemeralContainerTargetContainerName = Nothing- , v1EphemeralContainerTerminationMessagePath = Nothing- , v1EphemeralContainerTerminationMessagePolicy = Nothing- , v1EphemeralContainerTty = Nothing- , v1EphemeralContainerVolumeDevices = Nothing- , v1EphemeralContainerVolumeMounts = Nothing- , v1EphemeralContainerWorkingDir = Nothing- }---- ** V1EphemeralVolumeSource--- | V1EphemeralVolumeSource--- Represents an ephemeral volume that is handled by a normal storage driver.-data V1EphemeralVolumeSource = V1EphemeralVolumeSource- { v1EphemeralVolumeSourceVolumeClaimTemplate :: !(Maybe V1PersistentVolumeClaimTemplate) -- ^ "volumeClaimTemplate"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EphemeralVolumeSource-instance A.FromJSON V1EphemeralVolumeSource where- parseJSON = A.withObject "V1EphemeralVolumeSource" $ \o ->- V1EphemeralVolumeSource- <$> (o .:? "volumeClaimTemplate")---- | ToJSON V1EphemeralVolumeSource-instance A.ToJSON V1EphemeralVolumeSource where- toJSON V1EphemeralVolumeSource {..} =- _omitNulls- [ "volumeClaimTemplate" .= v1EphemeralVolumeSourceVolumeClaimTemplate- ]----- | Construct a value of type 'V1EphemeralVolumeSource' (by applying it's required fields, if any)-mkV1EphemeralVolumeSource- :: V1EphemeralVolumeSource-mkV1EphemeralVolumeSource =- V1EphemeralVolumeSource- { v1EphemeralVolumeSourceVolumeClaimTemplate = Nothing- }---- ** V1EventSource--- | V1EventSource--- EventSource contains information for an event.-data V1EventSource = V1EventSource- { v1EventSourceComponent :: !(Maybe Text) -- ^ "component" - Component from which the event is generated.- , v1EventSourceHost :: !(Maybe Text) -- ^ "host" - Node name on which the event is generated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1EventSource-instance A.FromJSON V1EventSource where- parseJSON = A.withObject "V1EventSource" $ \o ->- V1EventSource- <$> (o .:? "component")- <*> (o .:? "host")---- | ToJSON V1EventSource-instance A.ToJSON V1EventSource where- toJSON V1EventSource {..} =- _omitNulls- [ "component" .= v1EventSourceComponent- , "host" .= v1EventSourceHost- ]----- | Construct a value of type 'V1EventSource' (by applying it's required fields, if any)-mkV1EventSource- :: V1EventSource-mkV1EventSource =- V1EventSource- { v1EventSourceComponent = Nothing- , v1EventSourceHost = Nothing- }---- ** V1Eviction--- | V1Eviction--- Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.-data V1Eviction = V1Eviction- { v1EvictionApiVersion :: !(Maybe Text) -- ^ "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- , v1EvictionDeleteOptions :: !(Maybe V1DeleteOptions) -- ^ "deleteOptions"- , v1EvictionKind :: !(Maybe Text) -- ^ "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- , v1EvictionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Eviction-instance A.FromJSON V1Eviction where- parseJSON = A.withObject "V1Eviction" $ \o ->- V1Eviction- <$> (o .:? "apiVersion")- <*> (o .:? "deleteOptions")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1Eviction-instance A.ToJSON V1Eviction where- toJSON V1Eviction {..} =- _omitNulls- [ "apiVersion" .= v1EvictionApiVersion- , "deleteOptions" .= v1EvictionDeleteOptions- , "kind" .= v1EvictionKind- , "metadata" .= v1EvictionMetadata- ]----- | Construct a value of type 'V1Eviction' (by applying it's required fields, if any)-mkV1Eviction- :: V1Eviction-mkV1Eviction =- V1Eviction- { v1EvictionApiVersion = Nothing- , v1EvictionDeleteOptions = Nothing- , v1EvictionKind = Nothing- , v1EvictionMetadata = Nothing- }---- ** V1ExactDeviceRequest--- | V1ExactDeviceRequest--- ExactDeviceRequest is a request for one or more identical devices.-data V1ExactDeviceRequest = V1ExactDeviceRequest- { v1ExactDeviceRequestAdminAccess :: !(Maybe Bool) -- ^ "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.- , v1ExactDeviceRequestAllocationMode :: !(Maybe Text) -- ^ "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. At least one device must exist on the node for the allocation to succeed. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.- , v1ExactDeviceRequestCapacity :: !(Maybe V1CapacityRequirements) -- ^ "capacity"- , v1ExactDeviceRequestCount :: !(Maybe Integer) -- ^ "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.- , v1ExactDeviceRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A DeviceClassName is required. 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.- , v1ExactDeviceRequestSelectors :: !(Maybe [V1DeviceSelector]) -- ^ "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.- , v1ExactDeviceRequestTolerations :: !(Maybe [V1DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ExactDeviceRequest-instance A.FromJSON V1ExactDeviceRequest where- parseJSON = A.withObject "V1ExactDeviceRequest" $ \o ->- V1ExactDeviceRequest- <$> (o .:? "adminAccess")- <*> (o .:? "allocationMode")- <*> (o .:? "capacity")- <*> (o .:? "count")- <*> (o .: "deviceClassName")- <*> (o .:? "selectors")- <*> (o .:? "tolerations")---- | ToJSON V1ExactDeviceRequest-instance A.ToJSON V1ExactDeviceRequest where- toJSON V1ExactDeviceRequest {..} =- _omitNulls- [ "adminAccess" .= v1ExactDeviceRequestAdminAccess- , "allocationMode" .= v1ExactDeviceRequestAllocationMode- , "capacity" .= v1ExactDeviceRequestCapacity- , "count" .= v1ExactDeviceRequestCount- , "deviceClassName" .= v1ExactDeviceRequestDeviceClassName- , "selectors" .= v1ExactDeviceRequestSelectors- , "tolerations" .= v1ExactDeviceRequestTolerations- ]----- | Construct a value of type 'V1ExactDeviceRequest' (by applying it's required fields, if any)-mkV1ExactDeviceRequest- :: Text -- ^ 'v1ExactDeviceRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A DeviceClassName is required. 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.- -> V1ExactDeviceRequest-mkV1ExactDeviceRequest v1ExactDeviceRequestDeviceClassName =- V1ExactDeviceRequest- { v1ExactDeviceRequestAdminAccess = Nothing- , v1ExactDeviceRequestAllocationMode = Nothing- , v1ExactDeviceRequestCapacity = Nothing- , v1ExactDeviceRequestCount = Nothing- , v1ExactDeviceRequestDeviceClassName- , v1ExactDeviceRequestSelectors = Nothing- , v1ExactDeviceRequestTolerations = Nothing- }---- ** V1ExecAction--- | V1ExecAction--- ExecAction describes a \"run in container\" action.-data V1ExecAction = V1ExecAction- { v1ExecActionCommand :: !(Maybe [Text]) -- ^ "command" - Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ExecAction-instance A.FromJSON V1ExecAction where- parseJSON = A.withObject "V1ExecAction" $ \o ->- V1ExecAction- <$> (o .:? "command")---- | ToJSON V1ExecAction-instance A.ToJSON V1ExecAction where- toJSON V1ExecAction {..} =- _omitNulls- [ "command" .= v1ExecActionCommand- ]----- | Construct a value of type 'V1ExecAction' (by applying it's required fields, if any)-mkV1ExecAction- :: V1ExecAction-mkV1ExecAction =- V1ExecAction- { v1ExecActionCommand = Nothing- }---- ** V1ExemptPriorityLevelConfiguration--- | V1ExemptPriorityLevelConfiguration--- ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.-data V1ExemptPriorityLevelConfiguration = V1ExemptPriorityLevelConfiguration- { v1ExemptPriorityLevelConfigurationLendablePercent :: !(Maybe Int) -- ^ "lendablePercent" - `lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows. LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )- , v1ExemptPriorityLevelConfigurationNominalConcurrencyShares :: !(Maybe Int) -- ^ "nominalConcurrencyShares" - `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values: NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[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 zero.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ExemptPriorityLevelConfiguration-instance A.FromJSON V1ExemptPriorityLevelConfiguration where- parseJSON = A.withObject "V1ExemptPriorityLevelConfiguration" $ \o ->- V1ExemptPriorityLevelConfiguration- <$> (o .:? "lendablePercent")- <*> (o .:? "nominalConcurrencyShares")---- | ToJSON V1ExemptPriorityLevelConfiguration-instance A.ToJSON V1ExemptPriorityLevelConfiguration where- toJSON V1ExemptPriorityLevelConfiguration {..} =- _omitNulls- [ "lendablePercent" .= v1ExemptPriorityLevelConfigurationLendablePercent- , "nominalConcurrencyShares" .= v1ExemptPriorityLevelConfigurationNominalConcurrencyShares- ]----- | Construct a value of type 'V1ExemptPriorityLevelConfiguration' (by applying it's required fields, if any)-mkV1ExemptPriorityLevelConfiguration- :: V1ExemptPriorityLevelConfiguration-mkV1ExemptPriorityLevelConfiguration =- V1ExemptPriorityLevelConfiguration- { v1ExemptPriorityLevelConfigurationLendablePercent = Nothing- , v1ExemptPriorityLevelConfigurationNominalConcurrencyShares = Nothing- }---- ** V1ExpressionWarning--- | V1ExpressionWarning--- ExpressionWarning is a warning information that targets a specific expression.-data V1ExpressionWarning = V1ExpressionWarning- { v1ExpressionWarningFieldRef :: !(Text) -- ^ /Required/ "fieldRef" - 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\"- , v1ExpressionWarningWarning :: !(Text) -- ^ /Required/ "warning" - 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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ExpressionWarning-instance A.FromJSON V1ExpressionWarning where- parseJSON = A.withObject "V1ExpressionWarning" $ \o ->- V1ExpressionWarning- <$> (o .: "fieldRef")- <*> (o .: "warning")---- | ToJSON V1ExpressionWarning-instance A.ToJSON V1ExpressionWarning where- toJSON V1ExpressionWarning {..} =- _omitNulls- [ "fieldRef" .= v1ExpressionWarningFieldRef- , "warning" .= v1ExpressionWarningWarning- ]----- | Construct a value of type 'V1ExpressionWarning' (by applying it's required fields, if any)-mkV1ExpressionWarning- :: Text -- ^ 'v1ExpressionWarningFieldRef': 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\"- -> Text -- ^ 'v1ExpressionWarningWarning': 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.- -> V1ExpressionWarning-mkV1ExpressionWarning v1ExpressionWarningFieldRef v1ExpressionWarningWarning =- V1ExpressionWarning- { v1ExpressionWarningFieldRef- , v1ExpressionWarningWarning- }---- ** V1ExternalDocumentation--- | V1ExternalDocumentation--- ExternalDocumentation allows referencing an external resource for extended documentation.-data V1ExternalDocumentation = V1ExternalDocumentation- { v1ExternalDocumentationDescription :: !(Maybe Text) -- ^ "description"- , v1ExternalDocumentationUrl :: !(Maybe Text) -- ^ "url"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ExternalDocumentation-instance A.FromJSON V1ExternalDocumentation where- parseJSON = A.withObject "V1ExternalDocumentation" $ \o ->- V1ExternalDocumentation- <$> (o .:? "description")- <*> (o .:? "url")---- | ToJSON V1ExternalDocumentation-instance A.ToJSON V1ExternalDocumentation where- toJSON V1ExternalDocumentation {..} =- _omitNulls- [ "description" .= v1ExternalDocumentationDescription- , "url" .= v1ExternalDocumentationUrl- ]----- | Construct a value of type 'V1ExternalDocumentation' (by applying it's required fields, if any)-mkV1ExternalDocumentation- :: V1ExternalDocumentation-mkV1ExternalDocumentation =- V1ExternalDocumentation- { v1ExternalDocumentationDescription = Nothing- , v1ExternalDocumentationUrl = Nothing- }---- ** V1FCVolumeSource--- | V1FCVolumeSource--- Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.-data V1FCVolumeSource = V1FCVolumeSource- { v1FCVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.- , v1FCVolumeSourceLun :: !(Maybe Int) -- ^ "lun" - lun is Optional: FC target lun number- , v1FCVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1FCVolumeSourceTargetWwns :: !(Maybe [Text]) -- ^ "targetWWNs" - targetWWNs is Optional: FC target worldwide names (WWNs)- , v1FCVolumeSourceWwids :: !(Maybe [Text]) -- ^ "wwids" - wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FCVolumeSource-instance A.FromJSON V1FCVolumeSource where- parseJSON = A.withObject "V1FCVolumeSource" $ \o ->- V1FCVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "lun")- <*> (o .:? "readOnly")- <*> (o .:? "targetWWNs")- <*> (o .:? "wwids")---- | ToJSON V1FCVolumeSource-instance A.ToJSON V1FCVolumeSource where- toJSON V1FCVolumeSource {..} =- _omitNulls- [ "fsType" .= v1FCVolumeSourceFsType- , "lun" .= v1FCVolumeSourceLun- , "readOnly" .= v1FCVolumeSourceReadOnly- , "targetWWNs" .= v1FCVolumeSourceTargetWwns- , "wwids" .= v1FCVolumeSourceWwids- ]----- | Construct a value of type 'V1FCVolumeSource' (by applying it's required fields, if any)-mkV1FCVolumeSource- :: V1FCVolumeSource-mkV1FCVolumeSource =- V1FCVolumeSource- { v1FCVolumeSourceFsType = Nothing- , v1FCVolumeSourceLun = Nothing- , v1FCVolumeSourceReadOnly = Nothing- , v1FCVolumeSourceTargetWwns = Nothing- , v1FCVolumeSourceWwids = Nothing- }---- ** V1FieldSelectorAttributes--- | V1FieldSelectorAttributes--- FieldSelectorAttributes indicates a field limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.-data V1FieldSelectorAttributes = V1FieldSelectorAttributes- { v1FieldSelectorAttributesRawSelector :: !(Maybe Text) -- ^ "rawSelector" - rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.- , v1FieldSelectorAttributesRequirements :: !(Maybe [V1FieldSelectorRequirement]) -- ^ "requirements" - requirements is the parsed interpretation of a field selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FieldSelectorAttributes-instance A.FromJSON V1FieldSelectorAttributes where- parseJSON = A.withObject "V1FieldSelectorAttributes" $ \o ->- V1FieldSelectorAttributes- <$> (o .:? "rawSelector")- <*> (o .:? "requirements")---- | ToJSON V1FieldSelectorAttributes-instance A.ToJSON V1FieldSelectorAttributes where- toJSON V1FieldSelectorAttributes {..} =- _omitNulls- [ "rawSelector" .= v1FieldSelectorAttributesRawSelector- , "requirements" .= v1FieldSelectorAttributesRequirements- ]----- | Construct a value of type 'V1FieldSelectorAttributes' (by applying it's required fields, if any)-mkV1FieldSelectorAttributes- :: V1FieldSelectorAttributes-mkV1FieldSelectorAttributes =- V1FieldSelectorAttributes- { v1FieldSelectorAttributesRawSelector = Nothing- , v1FieldSelectorAttributesRequirements = Nothing- }---- ** V1FieldSelectorRequirement--- | V1FieldSelectorRequirement--- FieldSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values.-data V1FieldSelectorRequirement = V1FieldSelectorRequirement- { v1FieldSelectorRequirementKey :: !(Text) -- ^ /Required/ "key" - key is the field selector key that the requirement applies to.- , v1FieldSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future.- , v1FieldSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FieldSelectorRequirement-instance A.FromJSON V1FieldSelectorRequirement where- parseJSON = A.withObject "V1FieldSelectorRequirement" $ \o ->- V1FieldSelectorRequirement- <$> (o .: "key")- <*> (o .: "operator")- <*> (o .:? "values")---- | ToJSON V1FieldSelectorRequirement-instance A.ToJSON V1FieldSelectorRequirement where- toJSON V1FieldSelectorRequirement {..} =- _omitNulls- [ "key" .= v1FieldSelectorRequirementKey- , "operator" .= v1FieldSelectorRequirementOperator- , "values" .= v1FieldSelectorRequirementValues- ]----- | Construct a value of type 'V1FieldSelectorRequirement' (by applying it's required fields, if any)-mkV1FieldSelectorRequirement- :: Text -- ^ 'v1FieldSelectorRequirementKey': key is the field selector key that the requirement applies to.- -> Text -- ^ 'v1FieldSelectorRequirementOperator': operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future.- -> V1FieldSelectorRequirement-mkV1FieldSelectorRequirement v1FieldSelectorRequirementKey v1FieldSelectorRequirementOperator =- V1FieldSelectorRequirement- { v1FieldSelectorRequirementKey- , v1FieldSelectorRequirementOperator- , v1FieldSelectorRequirementValues = Nothing- }---- ** V1FileKeySelector--- | V1FileKeySelector--- FileKeySelector selects a key of the env file.-data V1FileKeySelector = V1FileKeySelector- { v1FileKeySelectorKey :: !(Text) -- ^ /Required/ "key" - The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.- , v1FileKeySelectorOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. If optional is set to false and the specified key does not exist, an error will be returned during Pod creation.- , v1FileKeySelectorPath :: !(Text) -- ^ /Required/ "path" - The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.- , v1FileKeySelectorVolumeName :: !(Text) -- ^ /Required/ "volumeName" - The name of the volume mount containing the env file.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FileKeySelector-instance A.FromJSON V1FileKeySelector where- parseJSON = A.withObject "V1FileKeySelector" $ \o ->- V1FileKeySelector- <$> (o .: "key")- <*> (o .:? "optional")- <*> (o .: "path")- <*> (o .: "volumeName")---- | ToJSON V1FileKeySelector-instance A.ToJSON V1FileKeySelector where- toJSON V1FileKeySelector {..} =- _omitNulls- [ "key" .= v1FileKeySelectorKey- , "optional" .= v1FileKeySelectorOptional- , "path" .= v1FileKeySelectorPath- , "volumeName" .= v1FileKeySelectorVolumeName- ]----- | Construct a value of type 'V1FileKeySelector' (by applying it's required fields, if any)-mkV1FileKeySelector- :: Text -- ^ 'v1FileKeySelectorKey': The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.- -> Text -- ^ 'v1FileKeySelectorPath': The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.- -> Text -- ^ 'v1FileKeySelectorVolumeName': The name of the volume mount containing the env file.- -> V1FileKeySelector-mkV1FileKeySelector v1FileKeySelectorKey v1FileKeySelectorPath v1FileKeySelectorVolumeName =- V1FileKeySelector- { v1FileKeySelectorKey- , v1FileKeySelectorOptional = Nothing- , v1FileKeySelectorPath- , v1FileKeySelectorVolumeName- }---- ** V1FlexPersistentVolumeSource--- | V1FlexPersistentVolumeSource--- FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.-data V1FlexPersistentVolumeSource = V1FlexPersistentVolumeSource- { v1FlexPersistentVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the driver to use for this volume.- , v1FlexPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.- , v1FlexPersistentVolumeSourceOptions :: !(Maybe (Map.Map String Text)) -- ^ "options" - options is Optional: this field holds extra command options if any.- , v1FlexPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1FlexPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlexPersistentVolumeSource-instance A.FromJSON V1FlexPersistentVolumeSource where- parseJSON = A.withObject "V1FlexPersistentVolumeSource" $ \o ->- V1FlexPersistentVolumeSource- <$> (o .: "driver")- <*> (o .:? "fsType")- <*> (o .:? "options")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")---- | ToJSON V1FlexPersistentVolumeSource-instance A.ToJSON V1FlexPersistentVolumeSource where- toJSON V1FlexPersistentVolumeSource {..} =- _omitNulls- [ "driver" .= v1FlexPersistentVolumeSourceDriver- , "fsType" .= v1FlexPersistentVolumeSourceFsType- , "options" .= v1FlexPersistentVolumeSourceOptions- , "readOnly" .= v1FlexPersistentVolumeSourceReadOnly- , "secretRef" .= v1FlexPersistentVolumeSourceSecretRef- ]----- | Construct a value of type 'V1FlexPersistentVolumeSource' (by applying it's required fields, if any)-mkV1FlexPersistentVolumeSource- :: Text -- ^ 'v1FlexPersistentVolumeSourceDriver': driver is the name of the driver to use for this volume.- -> V1FlexPersistentVolumeSource-mkV1FlexPersistentVolumeSource v1FlexPersistentVolumeSourceDriver =- V1FlexPersistentVolumeSource- { v1FlexPersistentVolumeSourceDriver- , v1FlexPersistentVolumeSourceFsType = Nothing- , v1FlexPersistentVolumeSourceOptions = Nothing- , v1FlexPersistentVolumeSourceReadOnly = Nothing- , v1FlexPersistentVolumeSourceSecretRef = Nothing- }---- ** V1FlexVolumeSource--- | V1FlexVolumeSource--- FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.-data V1FlexVolumeSource = V1FlexVolumeSource- { v1FlexVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the driver to use for this volume.- , v1FlexVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.- , v1FlexVolumeSourceOptions :: !(Maybe (Map.Map String Text)) -- ^ "options" - options is Optional: this field holds extra command options if any.- , v1FlexVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1FlexVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlexVolumeSource-instance A.FromJSON V1FlexVolumeSource where- parseJSON = A.withObject "V1FlexVolumeSource" $ \o ->- V1FlexVolumeSource- <$> (o .: "driver")- <*> (o .:? "fsType")- <*> (o .:? "options")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")---- | ToJSON V1FlexVolumeSource-instance A.ToJSON V1FlexVolumeSource where- toJSON V1FlexVolumeSource {..} =- _omitNulls- [ "driver" .= v1FlexVolumeSourceDriver- , "fsType" .= v1FlexVolumeSourceFsType- , "options" .= v1FlexVolumeSourceOptions- , "readOnly" .= v1FlexVolumeSourceReadOnly- , "secretRef" .= v1FlexVolumeSourceSecretRef- ]----- | Construct a value of type 'V1FlexVolumeSource' (by applying it's required fields, if any)-mkV1FlexVolumeSource- :: Text -- ^ 'v1FlexVolumeSourceDriver': driver is the name of the driver to use for this volume.- -> V1FlexVolumeSource-mkV1FlexVolumeSource v1FlexVolumeSourceDriver =- V1FlexVolumeSource- { v1FlexVolumeSourceDriver- , v1FlexVolumeSourceFsType = Nothing- , v1FlexVolumeSourceOptions = Nothing- , v1FlexVolumeSourceReadOnly = Nothing- , v1FlexVolumeSourceSecretRef = Nothing- }---- ** V1FlockerVolumeSource--- | V1FlockerVolumeSource--- Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.-data V1FlockerVolumeSource = V1FlockerVolumeSource- { v1FlockerVolumeSourceDatasetName :: !(Maybe Text) -- ^ "datasetName" - datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated- , v1FlockerVolumeSourceDatasetUuid :: !(Maybe Text) -- ^ "datasetUUID" - datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlockerVolumeSource-instance A.FromJSON V1FlockerVolumeSource where- parseJSON = A.withObject "V1FlockerVolumeSource" $ \o ->- V1FlockerVolumeSource- <$> (o .:? "datasetName")- <*> (o .:? "datasetUUID")---- | ToJSON V1FlockerVolumeSource-instance A.ToJSON V1FlockerVolumeSource where- toJSON V1FlockerVolumeSource {..} =- _omitNulls- [ "datasetName" .= v1FlockerVolumeSourceDatasetName- , "datasetUUID" .= v1FlockerVolumeSourceDatasetUuid- ]----- | Construct a value of type 'V1FlockerVolumeSource' (by applying it's required fields, if any)-mkV1FlockerVolumeSource- :: V1FlockerVolumeSource-mkV1FlockerVolumeSource =- V1FlockerVolumeSource- { v1FlockerVolumeSourceDatasetName = Nothing- , v1FlockerVolumeSourceDatasetUuid = Nothing- }---- ** V1FlowDistinguisherMethod--- | V1FlowDistinguisherMethod--- FlowDistinguisherMethod specifies the method of a flow distinguisher.-data V1FlowDistinguisherMethod = V1FlowDistinguisherMethod- { v1FlowDistinguisherMethodType :: !(Text) -- ^ /Required/ "type" - `type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlowDistinguisherMethod-instance A.FromJSON V1FlowDistinguisherMethod where- parseJSON = A.withObject "V1FlowDistinguisherMethod" $ \o ->- V1FlowDistinguisherMethod- <$> (o .: "type")---- | ToJSON V1FlowDistinguisherMethod-instance A.ToJSON V1FlowDistinguisherMethod where- toJSON V1FlowDistinguisherMethod {..} =- _omitNulls- [ "type" .= v1FlowDistinguisherMethodType- ]----- | Construct a value of type 'V1FlowDistinguisherMethod' (by applying it's required fields, if any)-mkV1FlowDistinguisherMethod- :: Text -- ^ 'v1FlowDistinguisherMethodType': `type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.- -> V1FlowDistinguisherMethod-mkV1FlowDistinguisherMethod v1FlowDistinguisherMethodType =- V1FlowDistinguisherMethod- { v1FlowDistinguisherMethodType- }---- ** V1FlowSchema--- | V1FlowSchema--- FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".-data V1FlowSchema = V1FlowSchema- { v1FlowSchemaApiVersion :: !(Maybe Text) -- ^ "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- , v1FlowSchemaKind :: !(Maybe Text) -- ^ "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- , v1FlowSchemaMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1FlowSchemaSpec :: !(Maybe V1FlowSchemaSpec) -- ^ "spec"- , v1FlowSchemaStatus :: !(Maybe V1FlowSchemaStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlowSchema-instance A.FromJSON V1FlowSchema where- parseJSON = A.withObject "V1FlowSchema" $ \o ->- V1FlowSchema- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1FlowSchema-instance A.ToJSON V1FlowSchema where- toJSON V1FlowSchema {..} =- _omitNulls- [ "apiVersion" .= v1FlowSchemaApiVersion- , "kind" .= v1FlowSchemaKind- , "metadata" .= v1FlowSchemaMetadata- , "spec" .= v1FlowSchemaSpec- , "status" .= v1FlowSchemaStatus- ]----- | Construct a value of type 'V1FlowSchema' (by applying it's required fields, if any)-mkV1FlowSchema- :: V1FlowSchema-mkV1FlowSchema =- V1FlowSchema- { v1FlowSchemaApiVersion = Nothing- , v1FlowSchemaKind = Nothing- , v1FlowSchemaMetadata = Nothing- , v1FlowSchemaSpec = Nothing- , v1FlowSchemaStatus = Nothing- }---- ** V1FlowSchemaCondition--- | V1FlowSchemaCondition--- FlowSchemaCondition describes conditions for a FlowSchema.-data V1FlowSchemaCondition = V1FlowSchemaCondition- { v1FlowSchemaConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - `lastTransitionTime` is the last time the condition transitioned from one status to another.- , v1FlowSchemaConditionMessage :: !(Maybe Text) -- ^ "message" - `message` is a human-readable message indicating details about last transition.- , v1FlowSchemaConditionReason :: !(Maybe Text) -- ^ "reason" - `reason` is a unique, one-word, CamelCase reason for the condition's last transition.- , v1FlowSchemaConditionStatus :: !(Maybe Text) -- ^ "status" - `status` is the status of the condition. Can be True, False, Unknown. Required.- , v1FlowSchemaConditionType :: !(Maybe Text) -- ^ "type" - `type` is the type of the condition. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlowSchemaCondition-instance A.FromJSON V1FlowSchemaCondition where- parseJSON = A.withObject "V1FlowSchemaCondition" $ \o ->- V1FlowSchemaCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .:? "status")- <*> (o .:? "type")---- | ToJSON V1FlowSchemaCondition-instance A.ToJSON V1FlowSchemaCondition where- toJSON V1FlowSchemaCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1FlowSchemaConditionLastTransitionTime- , "message" .= v1FlowSchemaConditionMessage- , "reason" .= v1FlowSchemaConditionReason- , "status" .= v1FlowSchemaConditionStatus- , "type" .= v1FlowSchemaConditionType- ]----- | Construct a value of type 'V1FlowSchemaCondition' (by applying it's required fields, if any)-mkV1FlowSchemaCondition- :: V1FlowSchemaCondition-mkV1FlowSchemaCondition =- V1FlowSchemaCondition- { v1FlowSchemaConditionLastTransitionTime = Nothing- , v1FlowSchemaConditionMessage = Nothing- , v1FlowSchemaConditionReason = Nothing- , v1FlowSchemaConditionStatus = Nothing- , v1FlowSchemaConditionType = Nothing- }---- ** V1FlowSchemaList--- | V1FlowSchemaList--- FlowSchemaList is a list of FlowSchema objects.-data V1FlowSchemaList = V1FlowSchemaList- { v1FlowSchemaListApiVersion :: !(Maybe Text) -- ^ "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- , v1FlowSchemaListItems :: !([V1FlowSchema]) -- ^ /Required/ "items" - `items` is a list of FlowSchemas.- , v1FlowSchemaListKind :: !(Maybe Text) -- ^ "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- , v1FlowSchemaListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlowSchemaList-instance A.FromJSON V1FlowSchemaList where- parseJSON = A.withObject "V1FlowSchemaList" $ \o ->- V1FlowSchemaList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1FlowSchemaList-instance A.ToJSON V1FlowSchemaList where- toJSON V1FlowSchemaList {..} =- _omitNulls- [ "apiVersion" .= v1FlowSchemaListApiVersion- , "items" .= v1FlowSchemaListItems- , "kind" .= v1FlowSchemaListKind- , "metadata" .= v1FlowSchemaListMetadata- ]----- | Construct a value of type 'V1FlowSchemaList' (by applying it's required fields, if any)-mkV1FlowSchemaList- :: [V1FlowSchema] -- ^ 'v1FlowSchemaListItems': `items` is a list of FlowSchemas.- -> V1FlowSchemaList-mkV1FlowSchemaList v1FlowSchemaListItems =- V1FlowSchemaList- { v1FlowSchemaListApiVersion = Nothing- , v1FlowSchemaListItems- , v1FlowSchemaListKind = Nothing- , v1FlowSchemaListMetadata = Nothing- }---- ** V1FlowSchemaSpec--- | V1FlowSchemaSpec--- FlowSchemaSpec describes how the FlowSchema's specification looks like.-data V1FlowSchemaSpec = V1FlowSchemaSpec- { v1FlowSchemaSpecDistinguisherMethod :: !(Maybe V1FlowDistinguisherMethod) -- ^ "distinguisherMethod"- , v1FlowSchemaSpecMatchingPrecedence :: !(Maybe Int) -- ^ "matchingPrecedence" - `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.- , v1FlowSchemaSpecPriorityLevelConfiguration :: !(V1PriorityLevelConfigurationReference) -- ^ /Required/ "priorityLevelConfiguration"- , v1FlowSchemaSpecRules :: !(Maybe [V1PolicyRulesWithSubjects]) -- ^ "rules" - `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlowSchemaSpec-instance A.FromJSON V1FlowSchemaSpec where- parseJSON = A.withObject "V1FlowSchemaSpec" $ \o ->- V1FlowSchemaSpec- <$> (o .:? "distinguisherMethod")- <*> (o .:? "matchingPrecedence")- <*> (o .: "priorityLevelConfiguration")- <*> (o .:? "rules")---- | ToJSON V1FlowSchemaSpec-instance A.ToJSON V1FlowSchemaSpec where- toJSON V1FlowSchemaSpec {..} =- _omitNulls- [ "distinguisherMethod" .= v1FlowSchemaSpecDistinguisherMethod- , "matchingPrecedence" .= v1FlowSchemaSpecMatchingPrecedence- , "priorityLevelConfiguration" .= v1FlowSchemaSpecPriorityLevelConfiguration- , "rules" .= v1FlowSchemaSpecRules- ]----- | Construct a value of type 'V1FlowSchemaSpec' (by applying it's required fields, if any)-mkV1FlowSchemaSpec- :: V1PriorityLevelConfigurationReference -- ^ 'v1FlowSchemaSpecPriorityLevelConfiguration' - -> V1FlowSchemaSpec-mkV1FlowSchemaSpec v1FlowSchemaSpecPriorityLevelConfiguration =- V1FlowSchemaSpec- { v1FlowSchemaSpecDistinguisherMethod = Nothing- , v1FlowSchemaSpecMatchingPrecedence = Nothing- , v1FlowSchemaSpecPriorityLevelConfiguration- , v1FlowSchemaSpecRules = Nothing- }---- ** V1FlowSchemaStatus--- | V1FlowSchemaStatus--- FlowSchemaStatus represents the current state of a FlowSchema.-data V1FlowSchemaStatus = V1FlowSchemaStatus- { v1FlowSchemaStatusConditions :: !(Maybe [V1FlowSchemaCondition]) -- ^ "conditions" - `conditions` is a list of the current states of FlowSchema.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1FlowSchemaStatus-instance A.FromJSON V1FlowSchemaStatus where- parseJSON = A.withObject "V1FlowSchemaStatus" $ \o ->- V1FlowSchemaStatus- <$> (o .:? "conditions")---- | ToJSON V1FlowSchemaStatus-instance A.ToJSON V1FlowSchemaStatus where- toJSON V1FlowSchemaStatus {..} =- _omitNulls- [ "conditions" .= v1FlowSchemaStatusConditions- ]----- | Construct a value of type 'V1FlowSchemaStatus' (by applying it's required fields, if any)-mkV1FlowSchemaStatus- :: V1FlowSchemaStatus-mkV1FlowSchemaStatus =- V1FlowSchemaStatus- { v1FlowSchemaStatusConditions = Nothing- }---- ** V1ForNode--- | V1ForNode--- ForNode provides information about which nodes should consume this endpoint.-data V1ForNode = V1ForNode- { v1ForNodeName :: !(Text) -- ^ /Required/ "name" - name represents the name of the node.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ForNode-instance A.FromJSON V1ForNode where- parseJSON = A.withObject "V1ForNode" $ \o ->- V1ForNode- <$> (o .: "name")---- | ToJSON V1ForNode-instance A.ToJSON V1ForNode where- toJSON V1ForNode {..} =- _omitNulls- [ "name" .= v1ForNodeName- ]----- | Construct a value of type 'V1ForNode' (by applying it's required fields, if any)-mkV1ForNode- :: Text -- ^ 'v1ForNodeName': name represents the name of the node.- -> V1ForNode-mkV1ForNode v1ForNodeName =- V1ForNode- { v1ForNodeName- }---- ** V1ForZone--- | V1ForZone--- ForZone provides information about which zones should consume this endpoint.-data V1ForZone = V1ForZone- { v1ForZoneName :: !(Text) -- ^ /Required/ "name" - name represents the name of the zone.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ForZone-instance A.FromJSON V1ForZone where- parseJSON = A.withObject "V1ForZone" $ \o ->- V1ForZone- <$> (o .: "name")---- | ToJSON V1ForZone-instance A.ToJSON V1ForZone where- toJSON V1ForZone {..} =- _omitNulls- [ "name" .= v1ForZoneName- ]----- | Construct a value of type 'V1ForZone' (by applying it's required fields, if any)-mkV1ForZone- :: Text -- ^ 'v1ForZoneName': name represents the name of the zone.- -> V1ForZone-mkV1ForZone v1ForZoneName =- V1ForZone- { v1ForZoneName- }---- ** V1GCEPersistentDiskVolumeSource--- | V1GCEPersistentDiskVolumeSource--- Represents a Persistent Disk resource in Google Compute Engine. A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.-data V1GCEPersistentDiskVolumeSource = V1GCEPersistentDiskVolumeSource- { v1GCEPersistentDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk- , v1GCEPersistentDiskVolumeSourcePartition :: !(Maybe Int) -- ^ "partition" - partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk- , v1GCEPersistentDiskVolumeSourcePdName :: !(Text) -- ^ /Required/ "pdName" - pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk- , v1GCEPersistentDiskVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1GCEPersistentDiskVolumeSource-instance A.FromJSON V1GCEPersistentDiskVolumeSource where- parseJSON = A.withObject "V1GCEPersistentDiskVolumeSource" $ \o ->- V1GCEPersistentDiskVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "partition")- <*> (o .: "pdName")- <*> (o .:? "readOnly")---- | ToJSON V1GCEPersistentDiskVolumeSource-instance A.ToJSON V1GCEPersistentDiskVolumeSource where- toJSON V1GCEPersistentDiskVolumeSource {..} =- _omitNulls- [ "fsType" .= v1GCEPersistentDiskVolumeSourceFsType- , "partition" .= v1GCEPersistentDiskVolumeSourcePartition- , "pdName" .= v1GCEPersistentDiskVolumeSourcePdName- , "readOnly" .= v1GCEPersistentDiskVolumeSourceReadOnly- ]----- | Construct a value of type 'V1GCEPersistentDiskVolumeSource' (by applying it's required fields, if any)-mkV1GCEPersistentDiskVolumeSource- :: Text -- ^ 'v1GCEPersistentDiskVolumeSourcePdName': pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk- -> V1GCEPersistentDiskVolumeSource-mkV1GCEPersistentDiskVolumeSource v1GCEPersistentDiskVolumeSourcePdName =- V1GCEPersistentDiskVolumeSource- { v1GCEPersistentDiskVolumeSourceFsType = Nothing- , v1GCEPersistentDiskVolumeSourcePartition = Nothing- , v1GCEPersistentDiskVolumeSourcePdName- , v1GCEPersistentDiskVolumeSourceReadOnly = Nothing- }---- ** V1GRPCAction--- | V1GRPCAction--- GRPCAction specifies an action involving a GRPC service.-data V1GRPCAction = V1GRPCAction- { v1GRPCActionPort :: !(Int) -- ^ /Required/ "port" - Port number of the gRPC service. Number must be in the range 1 to 65535.- , v1GRPCActionService :: !(Maybe Text) -- ^ "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). If this is not specified, the default behavior is defined by gRPC.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1GRPCAction-instance A.FromJSON V1GRPCAction where- parseJSON = A.withObject "V1GRPCAction" $ \o ->- V1GRPCAction- <$> (o .: "port")- <*> (o .:? "service")---- | ToJSON V1GRPCAction-instance A.ToJSON V1GRPCAction where- toJSON V1GRPCAction {..} =- _omitNulls- [ "port" .= v1GRPCActionPort- , "service" .= v1GRPCActionService- ]----- | Construct a value of type 'V1GRPCAction' (by applying it's required fields, if any)-mkV1GRPCAction- :: Int -- ^ 'v1GRPCActionPort': Port number of the gRPC service. Number must be in the range 1 to 65535.- -> V1GRPCAction-mkV1GRPCAction v1GRPCActionPort =- V1GRPCAction- { v1GRPCActionPort- , v1GRPCActionService = Nothing- }---- ** V1GitRepoVolumeSource--- | V1GitRepoVolumeSource--- Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling. 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.-data V1GitRepoVolumeSource = V1GitRepoVolumeSource- { v1GitRepoVolumeSourceDirectory :: !(Maybe Text) -- ^ "directory" - directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.- , v1GitRepoVolumeSourceRepository :: !(Text) -- ^ /Required/ "repository" - repository is the URL- , v1GitRepoVolumeSourceRevision :: !(Maybe Text) -- ^ "revision" - revision is the commit hash for the specified revision.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1GitRepoVolumeSource-instance A.FromJSON V1GitRepoVolumeSource where- parseJSON = A.withObject "V1GitRepoVolumeSource" $ \o ->- V1GitRepoVolumeSource- <$> (o .:? "directory")- <*> (o .: "repository")- <*> (o .:? "revision")---- | ToJSON V1GitRepoVolumeSource-instance A.ToJSON V1GitRepoVolumeSource where- toJSON V1GitRepoVolumeSource {..} =- _omitNulls- [ "directory" .= v1GitRepoVolumeSourceDirectory- , "repository" .= v1GitRepoVolumeSourceRepository- , "revision" .= v1GitRepoVolumeSourceRevision- ]----- | Construct a value of type 'V1GitRepoVolumeSource' (by applying it's required fields, if any)-mkV1GitRepoVolumeSource- :: Text -- ^ 'v1GitRepoVolumeSourceRepository': repository is the URL- -> V1GitRepoVolumeSource-mkV1GitRepoVolumeSource v1GitRepoVolumeSourceRepository =- V1GitRepoVolumeSource- { v1GitRepoVolumeSourceDirectory = Nothing- , v1GitRepoVolumeSourceRepository- , v1GitRepoVolumeSourceRevision = Nothing- }---- ** V1GlusterfsPersistentVolumeSource--- | V1GlusterfsPersistentVolumeSource--- Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.-data V1GlusterfsPersistentVolumeSource = V1GlusterfsPersistentVolumeSource- { v1GlusterfsPersistentVolumeSourceEndpoints :: !(Text) -- ^ /Required/ "endpoints" - endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- , v1GlusterfsPersistentVolumeSourceEndpointsNamespace :: !(Maybe Text) -- ^ "endpointsNamespace" - endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- , v1GlusterfsPersistentVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- , v1GlusterfsPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1GlusterfsPersistentVolumeSource-instance A.FromJSON V1GlusterfsPersistentVolumeSource where- parseJSON = A.withObject "V1GlusterfsPersistentVolumeSource" $ \o ->- V1GlusterfsPersistentVolumeSource- <$> (o .: "endpoints")- <*> (o .:? "endpointsNamespace")- <*> (o .: "path")- <*> (o .:? "readOnly")---- | ToJSON V1GlusterfsPersistentVolumeSource-instance A.ToJSON V1GlusterfsPersistentVolumeSource where- toJSON V1GlusterfsPersistentVolumeSource {..} =- _omitNulls- [ "endpoints" .= v1GlusterfsPersistentVolumeSourceEndpoints- , "endpointsNamespace" .= v1GlusterfsPersistentVolumeSourceEndpointsNamespace- , "path" .= v1GlusterfsPersistentVolumeSourcePath- , "readOnly" .= v1GlusterfsPersistentVolumeSourceReadOnly- ]----- | Construct a value of type 'V1GlusterfsPersistentVolumeSource' (by applying it's required fields, if any)-mkV1GlusterfsPersistentVolumeSource- :: Text -- ^ 'v1GlusterfsPersistentVolumeSourceEndpoints': endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- -> Text -- ^ 'v1GlusterfsPersistentVolumeSourcePath': path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- -> V1GlusterfsPersistentVolumeSource-mkV1GlusterfsPersistentVolumeSource v1GlusterfsPersistentVolumeSourceEndpoints v1GlusterfsPersistentVolumeSourcePath =- V1GlusterfsPersistentVolumeSource- { v1GlusterfsPersistentVolumeSourceEndpoints- , v1GlusterfsPersistentVolumeSourceEndpointsNamespace = Nothing- , v1GlusterfsPersistentVolumeSourcePath- , v1GlusterfsPersistentVolumeSourceReadOnly = Nothing- }---- ** V1GlusterfsVolumeSource--- | V1GlusterfsVolumeSource--- Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.-data V1GlusterfsVolumeSource = V1GlusterfsVolumeSource- { v1GlusterfsVolumeSourceEndpoints :: !(Text) -- ^ /Required/ "endpoints" - endpoints is the endpoint name that details Glusterfs topology.- , v1GlusterfsVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- , v1GlusterfsVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1GlusterfsVolumeSource-instance A.FromJSON V1GlusterfsVolumeSource where- parseJSON = A.withObject "V1GlusterfsVolumeSource" $ \o ->- V1GlusterfsVolumeSource- <$> (o .: "endpoints")- <*> (o .: "path")- <*> (o .:? "readOnly")---- | ToJSON V1GlusterfsVolumeSource-instance A.ToJSON V1GlusterfsVolumeSource where- toJSON V1GlusterfsVolumeSource {..} =- _omitNulls- [ "endpoints" .= v1GlusterfsVolumeSourceEndpoints- , "path" .= v1GlusterfsVolumeSourcePath- , "readOnly" .= v1GlusterfsVolumeSourceReadOnly- ]----- | Construct a value of type 'V1GlusterfsVolumeSource' (by applying it's required fields, if any)-mkV1GlusterfsVolumeSource- :: Text -- ^ 'v1GlusterfsVolumeSourceEndpoints': endpoints is the endpoint name that details Glusterfs topology.- -> Text -- ^ 'v1GlusterfsVolumeSourcePath': path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod- -> V1GlusterfsVolumeSource-mkV1GlusterfsVolumeSource v1GlusterfsVolumeSourceEndpoints v1GlusterfsVolumeSourcePath =- V1GlusterfsVolumeSource- { v1GlusterfsVolumeSourceEndpoints- , v1GlusterfsVolumeSourcePath- , v1GlusterfsVolumeSourceReadOnly = Nothing- }---- ** V1GroupSubject--- | V1GroupSubject--- GroupSubject holds detailed information for group-kind subject.-data V1GroupSubject = V1GroupSubject- { v1GroupSubjectName :: !(Text) -- ^ /Required/ "name" - name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1GroupSubject-instance A.FromJSON V1GroupSubject where- parseJSON = A.withObject "V1GroupSubject" $ \o ->- V1GroupSubject- <$> (o .: "name")---- | ToJSON V1GroupSubject-instance A.ToJSON V1GroupSubject where- toJSON V1GroupSubject {..} =- _omitNulls- [ "name" .= v1GroupSubjectName- ]----- | Construct a value of type 'V1GroupSubject' (by applying it's required fields, if any)-mkV1GroupSubject- :: Text -- ^ 'v1GroupSubjectName': name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.- -> V1GroupSubject-mkV1GroupSubject v1GroupSubjectName =- V1GroupSubject- { v1GroupSubjectName- }---- ** V1GroupVersionForDiscovery--- | V1GroupVersionForDiscovery--- GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.-data V1GroupVersionForDiscovery = V1GroupVersionForDiscovery- { v1GroupVersionForDiscoveryGroupVersion :: !(Text) -- ^ /Required/ "groupVersion" - groupVersion specifies the API group and version in the form \"group/version\"- , v1GroupVersionForDiscoveryVersion :: !(Text) -- ^ /Required/ "version" - version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1GroupVersionForDiscovery-instance A.FromJSON V1GroupVersionForDiscovery where- parseJSON = A.withObject "V1GroupVersionForDiscovery" $ \o ->- V1GroupVersionForDiscovery- <$> (o .: "groupVersion")- <*> (o .: "version")---- | ToJSON V1GroupVersionForDiscovery-instance A.ToJSON V1GroupVersionForDiscovery where- toJSON V1GroupVersionForDiscovery {..} =- _omitNulls- [ "groupVersion" .= v1GroupVersionForDiscoveryGroupVersion- , "version" .= v1GroupVersionForDiscoveryVersion- ]----- | Construct a value of type 'V1GroupVersionForDiscovery' (by applying it's required fields, if any)-mkV1GroupVersionForDiscovery- :: Text -- ^ 'v1GroupVersionForDiscoveryGroupVersion': groupVersion specifies the API group and version in the form \"group/version\"- -> Text -- ^ 'v1GroupVersionForDiscoveryVersion': version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.- -> V1GroupVersionForDiscovery-mkV1GroupVersionForDiscovery v1GroupVersionForDiscoveryGroupVersion v1GroupVersionForDiscoveryVersion =- V1GroupVersionForDiscovery- { v1GroupVersionForDiscoveryGroupVersion- , v1GroupVersionForDiscoveryVersion- }---- ** V1HTTPGetAction--- | V1HTTPGetAction--- HTTPGetAction describes an action based on HTTP Get requests.-data V1HTTPGetAction = V1HTTPGetAction- { v1HTTPGetActionHost :: !(Maybe Text) -- ^ "host" - Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.- , v1HTTPGetActionHttpHeaders :: !(Maybe [V1HTTPHeader]) -- ^ "httpHeaders" - Custom headers to set in the request. HTTP allows repeated headers.- , v1HTTPGetActionPath :: !(Maybe Text) -- ^ "path" - Path to access on the HTTP server.- , v1HTTPGetActionPort :: !(IntOrString) -- ^ /Required/ "port"- , v1HTTPGetActionScheme :: !(Maybe Text) -- ^ "scheme" - Scheme to use for connecting to the host. Defaults to HTTP.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HTTPGetAction-instance A.FromJSON V1HTTPGetAction where- parseJSON = A.withObject "V1HTTPGetAction" $ \o ->- V1HTTPGetAction- <$> (o .:? "host")- <*> (o .:? "httpHeaders")- <*> (o .:? "path")- <*> (o .: "port")- <*> (o .:? "scheme")---- | ToJSON V1HTTPGetAction-instance A.ToJSON V1HTTPGetAction where- toJSON V1HTTPGetAction {..} =- _omitNulls- [ "host" .= v1HTTPGetActionHost- , "httpHeaders" .= v1HTTPGetActionHttpHeaders- , "path" .= v1HTTPGetActionPath- , "port" .= v1HTTPGetActionPort- , "scheme" .= v1HTTPGetActionScheme- ]----- | Construct a value of type 'V1HTTPGetAction' (by applying it's required fields, if any)-mkV1HTTPGetAction- :: IntOrString -- ^ 'v1HTTPGetActionPort' - -> V1HTTPGetAction-mkV1HTTPGetAction v1HTTPGetActionPort =- V1HTTPGetAction- { v1HTTPGetActionHost = Nothing- , v1HTTPGetActionHttpHeaders = Nothing- , v1HTTPGetActionPath = Nothing- , v1HTTPGetActionPort- , v1HTTPGetActionScheme = Nothing- }---- ** V1HTTPHeader--- | V1HTTPHeader--- HTTPHeader describes a custom header to be used in HTTP probes-data V1HTTPHeader = V1HTTPHeader- { v1HTTPHeaderName :: !(Text) -- ^ /Required/ "name" - The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.- , v1HTTPHeaderValue :: !(Text) -- ^ /Required/ "value" - The header field value- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HTTPHeader-instance A.FromJSON V1HTTPHeader where- parseJSON = A.withObject "V1HTTPHeader" $ \o ->- V1HTTPHeader- <$> (o .: "name")- <*> (o .: "value")---- | ToJSON V1HTTPHeader-instance A.ToJSON V1HTTPHeader where- toJSON V1HTTPHeader {..} =- _omitNulls- [ "name" .= v1HTTPHeaderName- , "value" .= v1HTTPHeaderValue- ]----- | Construct a value of type 'V1HTTPHeader' (by applying it's required fields, if any)-mkV1HTTPHeader- :: Text -- ^ 'v1HTTPHeaderName': The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.- -> Text -- ^ 'v1HTTPHeaderValue': The header field value- -> V1HTTPHeader-mkV1HTTPHeader v1HTTPHeaderName v1HTTPHeaderValue =- V1HTTPHeader- { v1HTTPHeaderName- , v1HTTPHeaderValue- }---- ** V1HTTPIngressPath--- | V1HTTPIngressPath--- HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.-data V1HTTPIngressPath = V1HTTPIngressPath- { v1HTTPIngressPathBackend :: !(V1IngressBackend) -- ^ /Required/ "backend"- , v1HTTPIngressPathPath :: !(Maybe Text) -- ^ "path" - path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \"Exact\" or \"Prefix\".- , v1HTTPIngressPathPathType :: !(Text) -- ^ /Required/ "pathType" - pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is done on a path element by element basis. A path element refers is the list of labels in the path split by the '/' separator. A request is a match for path p if every p is an element-wise prefix of p of the request path. Note that if the last element of the path is a substring of the last element in request path, it is not a match (e.g. /foo/bar matches /foo/bar/baz, but does not match /foo/barbaz). * ImplementationSpecific: Interpretation of the Path matching is up to the IngressClass. Implementations can treat this as a separate PathType or treat it identically to Prefix or Exact path types. Implementations are required to support all path types.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HTTPIngressPath-instance A.FromJSON V1HTTPIngressPath where- parseJSON = A.withObject "V1HTTPIngressPath" $ \o ->- V1HTTPIngressPath- <$> (o .: "backend")- <*> (o .:? "path")- <*> (o .: "pathType")---- | ToJSON V1HTTPIngressPath-instance A.ToJSON V1HTTPIngressPath where- toJSON V1HTTPIngressPath {..} =- _omitNulls- [ "backend" .= v1HTTPIngressPathBackend- , "path" .= v1HTTPIngressPathPath- , "pathType" .= v1HTTPIngressPathPathType- ]----- | Construct a value of type 'V1HTTPIngressPath' (by applying it's required fields, if any)-mkV1HTTPIngressPath- :: V1IngressBackend -- ^ 'v1HTTPIngressPathBackend' - -> Text -- ^ 'v1HTTPIngressPathPathType': pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is done on a path element by element basis. A path element refers is the list of labels in the path split by the '/' separator. A request is a match for path p if every p is an element-wise prefix of p of the request path. Note that if the last element of the path is a substring of the last element in request path, it is not a match (e.g. /foo/bar matches /foo/bar/baz, but does not match /foo/barbaz). * ImplementationSpecific: Interpretation of the Path matching is up to the IngressClass. Implementations can treat this as a separate PathType or treat it identically to Prefix or Exact path types. Implementations are required to support all path types.- -> V1HTTPIngressPath-mkV1HTTPIngressPath v1HTTPIngressPathBackend v1HTTPIngressPathPathType =- V1HTTPIngressPath- { v1HTTPIngressPathBackend- , v1HTTPIngressPathPath = Nothing- , v1HTTPIngressPathPathType- }---- ** V1HTTPIngressRuleValue--- | V1HTTPIngressRuleValue--- HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.-data V1HTTPIngressRuleValue = V1HTTPIngressRuleValue- { v1HTTPIngressRuleValuePaths :: !([V1HTTPIngressPath]) -- ^ /Required/ "paths" - paths is a collection of paths that map requests to backends.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HTTPIngressRuleValue-instance A.FromJSON V1HTTPIngressRuleValue where- parseJSON = A.withObject "V1HTTPIngressRuleValue" $ \o ->- V1HTTPIngressRuleValue- <$> (o .: "paths")---- | ToJSON V1HTTPIngressRuleValue-instance A.ToJSON V1HTTPIngressRuleValue where- toJSON V1HTTPIngressRuleValue {..} =- _omitNulls- [ "paths" .= v1HTTPIngressRuleValuePaths- ]----- | Construct a value of type 'V1HTTPIngressRuleValue' (by applying it's required fields, if any)-mkV1HTTPIngressRuleValue- :: [V1HTTPIngressPath] -- ^ 'v1HTTPIngressRuleValuePaths': paths is a collection of paths that map requests to backends.- -> V1HTTPIngressRuleValue-mkV1HTTPIngressRuleValue v1HTTPIngressRuleValuePaths =- V1HTTPIngressRuleValue- { v1HTTPIngressRuleValuePaths- }---- ** V1HorizontalPodAutoscaler--- | V1HorizontalPodAutoscaler--- configuration of a horizontal pod autoscaler.-data V1HorizontalPodAutoscaler = V1HorizontalPodAutoscaler- { v1HorizontalPodAutoscalerApiVersion :: !(Maybe Text) -- ^ "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- , v1HorizontalPodAutoscalerKind :: !(Maybe Text) -- ^ "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- , v1HorizontalPodAutoscalerMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1HorizontalPodAutoscalerSpec :: !(Maybe V1HorizontalPodAutoscalerSpec) -- ^ "spec"- , v1HorizontalPodAutoscalerStatus :: !(Maybe V1HorizontalPodAutoscalerStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HorizontalPodAutoscaler-instance A.FromJSON V1HorizontalPodAutoscaler where- parseJSON = A.withObject "V1HorizontalPodAutoscaler" $ \o ->- V1HorizontalPodAutoscaler- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1HorizontalPodAutoscaler-instance A.ToJSON V1HorizontalPodAutoscaler where- toJSON V1HorizontalPodAutoscaler {..} =- _omitNulls- [ "apiVersion" .= v1HorizontalPodAutoscalerApiVersion- , "kind" .= v1HorizontalPodAutoscalerKind- , "metadata" .= v1HorizontalPodAutoscalerMetadata- , "spec" .= v1HorizontalPodAutoscalerSpec- , "status" .= v1HorizontalPodAutoscalerStatus- ]----- | Construct a value of type 'V1HorizontalPodAutoscaler' (by applying it's required fields, if any)-mkV1HorizontalPodAutoscaler- :: V1HorizontalPodAutoscaler-mkV1HorizontalPodAutoscaler =- V1HorizontalPodAutoscaler- { v1HorizontalPodAutoscalerApiVersion = Nothing- , v1HorizontalPodAutoscalerKind = Nothing- , v1HorizontalPodAutoscalerMetadata = Nothing- , v1HorizontalPodAutoscalerSpec = Nothing- , v1HorizontalPodAutoscalerStatus = Nothing- }---- ** V1HorizontalPodAutoscalerList--- | V1HorizontalPodAutoscalerList--- list of horizontal pod autoscaler objects.-data V1HorizontalPodAutoscalerList = V1HorizontalPodAutoscalerList- { v1HorizontalPodAutoscalerListApiVersion :: !(Maybe Text) -- ^ "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- , v1HorizontalPodAutoscalerListItems :: !([V1HorizontalPodAutoscaler]) -- ^ /Required/ "items" - items is the list of horizontal pod autoscaler objects.- , v1HorizontalPodAutoscalerListKind :: !(Maybe Text) -- ^ "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- , v1HorizontalPodAutoscalerListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HorizontalPodAutoscalerList-instance A.FromJSON V1HorizontalPodAutoscalerList where- parseJSON = A.withObject "V1HorizontalPodAutoscalerList" $ \o ->- V1HorizontalPodAutoscalerList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1HorizontalPodAutoscalerList-instance A.ToJSON V1HorizontalPodAutoscalerList where- toJSON V1HorizontalPodAutoscalerList {..} =- _omitNulls- [ "apiVersion" .= v1HorizontalPodAutoscalerListApiVersion- , "items" .= v1HorizontalPodAutoscalerListItems- , "kind" .= v1HorizontalPodAutoscalerListKind- , "metadata" .= v1HorizontalPodAutoscalerListMetadata- ]----- | Construct a value of type 'V1HorizontalPodAutoscalerList' (by applying it's required fields, if any)-mkV1HorizontalPodAutoscalerList- :: [V1HorizontalPodAutoscaler] -- ^ 'v1HorizontalPodAutoscalerListItems': items is the list of horizontal pod autoscaler objects.- -> V1HorizontalPodAutoscalerList-mkV1HorizontalPodAutoscalerList v1HorizontalPodAutoscalerListItems =- V1HorizontalPodAutoscalerList- { v1HorizontalPodAutoscalerListApiVersion = Nothing- , v1HorizontalPodAutoscalerListItems- , v1HorizontalPodAutoscalerListKind = Nothing- , v1HorizontalPodAutoscalerListMetadata = Nothing- }---- ** V1HorizontalPodAutoscalerSpec--- | V1HorizontalPodAutoscalerSpec--- specification of a horizontal pod autoscaler.-data V1HorizontalPodAutoscalerSpec = V1HorizontalPodAutoscalerSpec- { v1HorizontalPodAutoscalerSpecMaxReplicas :: !(Int) -- ^ /Required/ "maxReplicas" - maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.- , v1HorizontalPodAutoscalerSpecMinReplicas :: !(Maybe Int) -- ^ "minReplicas" - minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.- , v1HorizontalPodAutoscalerSpecScaleTargetRef :: !(V1CrossVersionObjectReference) -- ^ /Required/ "scaleTargetRef"- , v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage :: !(Maybe Int) -- ^ "targetCPUUtilizationPercentage" - targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HorizontalPodAutoscalerSpec-instance A.FromJSON V1HorizontalPodAutoscalerSpec where- parseJSON = A.withObject "V1HorizontalPodAutoscalerSpec" $ \o ->- V1HorizontalPodAutoscalerSpec- <$> (o .: "maxReplicas")- <*> (o .:? "minReplicas")- <*> (o .: "scaleTargetRef")- <*> (o .:? "targetCPUUtilizationPercentage")---- | ToJSON V1HorizontalPodAutoscalerSpec-instance A.ToJSON V1HorizontalPodAutoscalerSpec where- toJSON V1HorizontalPodAutoscalerSpec {..} =- _omitNulls- [ "maxReplicas" .= v1HorizontalPodAutoscalerSpecMaxReplicas- , "minReplicas" .= v1HorizontalPodAutoscalerSpecMinReplicas- , "scaleTargetRef" .= v1HorizontalPodAutoscalerSpecScaleTargetRef- , "targetCPUUtilizationPercentage" .= v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage- ]----- | Construct a value of type 'V1HorizontalPodAutoscalerSpec' (by applying it's required fields, if any)-mkV1HorizontalPodAutoscalerSpec- :: Int -- ^ 'v1HorizontalPodAutoscalerSpecMaxReplicas': maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.- -> V1CrossVersionObjectReference -- ^ 'v1HorizontalPodAutoscalerSpecScaleTargetRef' - -> V1HorizontalPodAutoscalerSpec-mkV1HorizontalPodAutoscalerSpec v1HorizontalPodAutoscalerSpecMaxReplicas v1HorizontalPodAutoscalerSpecScaleTargetRef =- V1HorizontalPodAutoscalerSpec- { v1HorizontalPodAutoscalerSpecMaxReplicas- , v1HorizontalPodAutoscalerSpecMinReplicas = Nothing- , v1HorizontalPodAutoscalerSpecScaleTargetRef- , v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage = Nothing- }---- ** V1HorizontalPodAutoscalerStatus--- | V1HorizontalPodAutoscalerStatus--- current status of a horizontal pod autoscaler-data V1HorizontalPodAutoscalerStatus = V1HorizontalPodAutoscalerStatus- { v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage :: !(Maybe Int) -- ^ "currentCPUUtilizationPercentage" - currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.- , v1HorizontalPodAutoscalerStatusCurrentReplicas :: !(Int) -- ^ /Required/ "currentReplicas" - currentReplicas is the current number of replicas of pods managed by this autoscaler.- , v1HorizontalPodAutoscalerStatusDesiredReplicas :: !(Int) -- ^ /Required/ "desiredReplicas" - desiredReplicas is the desired number of replicas of pods managed by this autoscaler.- , v1HorizontalPodAutoscalerStatusLastScaleTime :: !(Maybe DateTime) -- ^ "lastScaleTime" - lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.- , v1HorizontalPodAutoscalerStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed by this autoscaler.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HorizontalPodAutoscalerStatus-instance A.FromJSON V1HorizontalPodAutoscalerStatus where- parseJSON = A.withObject "V1HorizontalPodAutoscalerStatus" $ \o ->- V1HorizontalPodAutoscalerStatus- <$> (o .:? "currentCPUUtilizationPercentage")- <*> (o .: "currentReplicas")- <*> (o .: "desiredReplicas")- <*> (o .:? "lastScaleTime")- <*> (o .:? "observedGeneration")---- | ToJSON V1HorizontalPodAutoscalerStatus-instance A.ToJSON V1HorizontalPodAutoscalerStatus where- toJSON V1HorizontalPodAutoscalerStatus {..} =- _omitNulls- [ "currentCPUUtilizationPercentage" .= v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage- , "currentReplicas" .= v1HorizontalPodAutoscalerStatusCurrentReplicas- , "desiredReplicas" .= v1HorizontalPodAutoscalerStatusDesiredReplicas- , "lastScaleTime" .= v1HorizontalPodAutoscalerStatusLastScaleTime- , "observedGeneration" .= v1HorizontalPodAutoscalerStatusObservedGeneration- ]----- | Construct a value of type 'V1HorizontalPodAutoscalerStatus' (by applying it's required fields, if any)-mkV1HorizontalPodAutoscalerStatus- :: Int -- ^ 'v1HorizontalPodAutoscalerStatusCurrentReplicas': currentReplicas is the current number of replicas of pods managed by this autoscaler.- -> Int -- ^ 'v1HorizontalPodAutoscalerStatusDesiredReplicas': desiredReplicas is the desired number of replicas of pods managed by this autoscaler.- -> V1HorizontalPodAutoscalerStatus-mkV1HorizontalPodAutoscalerStatus v1HorizontalPodAutoscalerStatusCurrentReplicas v1HorizontalPodAutoscalerStatusDesiredReplicas =- V1HorizontalPodAutoscalerStatus- { v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage = Nothing- , v1HorizontalPodAutoscalerStatusCurrentReplicas- , v1HorizontalPodAutoscalerStatusDesiredReplicas- , v1HorizontalPodAutoscalerStatusLastScaleTime = Nothing- , v1HorizontalPodAutoscalerStatusObservedGeneration = Nothing- }---- ** V1HostAlias--- | V1HostAlias--- HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.-data V1HostAlias = V1HostAlias- { v1HostAliasHostnames :: !(Maybe [Text]) -- ^ "hostnames" - Hostnames for the above IP address.- , v1HostAliasIp :: !(Text) -- ^ /Required/ "ip" - IP address of the host file entry.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HostAlias-instance A.FromJSON V1HostAlias where- parseJSON = A.withObject "V1HostAlias" $ \o ->- V1HostAlias- <$> (o .:? "hostnames")- <*> (o .: "ip")---- | ToJSON V1HostAlias-instance A.ToJSON V1HostAlias where- toJSON V1HostAlias {..} =- _omitNulls- [ "hostnames" .= v1HostAliasHostnames- , "ip" .= v1HostAliasIp- ]----- | Construct a value of type 'V1HostAlias' (by applying it's required fields, if any)-mkV1HostAlias- :: Text -- ^ 'v1HostAliasIp': IP address of the host file entry.- -> V1HostAlias-mkV1HostAlias v1HostAliasIp =- V1HostAlias- { v1HostAliasHostnames = Nothing- , v1HostAliasIp- }---- ** V1HostIP--- | V1HostIP--- HostIP represents a single IP address allocated to the host.-data V1HostIP = V1HostIP- { v1HostIPIp :: !(Text) -- ^ /Required/ "ip" - IP is the IP address assigned to the host- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HostIP-instance A.FromJSON V1HostIP where- parseJSON = A.withObject "V1HostIP" $ \o ->- V1HostIP- <$> (o .: "ip")---- | ToJSON V1HostIP-instance A.ToJSON V1HostIP where- toJSON V1HostIP {..} =- _omitNulls- [ "ip" .= v1HostIPIp- ]----- | Construct a value of type 'V1HostIP' (by applying it's required fields, if any)-mkV1HostIP- :: Text -- ^ 'v1HostIPIp': IP is the IP address assigned to the host- -> V1HostIP-mkV1HostIP v1HostIPIp =- V1HostIP- { v1HostIPIp- }---- ** V1HostPathVolumeSource--- | V1HostPathVolumeSource--- Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.-data V1HostPathVolumeSource = V1HostPathVolumeSource- { v1HostPathVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath- , v1HostPathVolumeSourceType :: !(Maybe Text) -- ^ "type" - type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1HostPathVolumeSource-instance A.FromJSON V1HostPathVolumeSource where- parseJSON = A.withObject "V1HostPathVolumeSource" $ \o ->- V1HostPathVolumeSource- <$> (o .: "path")- <*> (o .:? "type")---- | ToJSON V1HostPathVolumeSource-instance A.ToJSON V1HostPathVolumeSource where- toJSON V1HostPathVolumeSource {..} =- _omitNulls- [ "path" .= v1HostPathVolumeSourcePath- , "type" .= v1HostPathVolumeSourceType- ]----- | Construct a value of type 'V1HostPathVolumeSource' (by applying it's required fields, if any)-mkV1HostPathVolumeSource- :: Text -- ^ 'v1HostPathVolumeSourcePath': path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath- -> V1HostPathVolumeSource-mkV1HostPathVolumeSource v1HostPathVolumeSourcePath =- V1HostPathVolumeSource- { v1HostPathVolumeSourcePath- , v1HostPathVolumeSourceType = Nothing- }---- ** V1IPAddress--- | V1IPAddress--- IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1-data V1IPAddress = V1IPAddress- { v1IPAddressApiVersion :: !(Maybe Text) -- ^ "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- , v1IPAddressKind :: !(Maybe Text) -- ^ "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- , v1IPAddressMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1IPAddressSpec :: !(Maybe V1IPAddressSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IPAddress-instance A.FromJSON V1IPAddress where- parseJSON = A.withObject "V1IPAddress" $ \o ->- V1IPAddress- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1IPAddress-instance A.ToJSON V1IPAddress where- toJSON V1IPAddress {..} =- _omitNulls- [ "apiVersion" .= v1IPAddressApiVersion- , "kind" .= v1IPAddressKind- , "metadata" .= v1IPAddressMetadata- , "spec" .= v1IPAddressSpec- ]----- | Construct a value of type 'V1IPAddress' (by applying it's required fields, if any)-mkV1IPAddress- :: V1IPAddress-mkV1IPAddress =- V1IPAddress- { v1IPAddressApiVersion = Nothing- , v1IPAddressKind = Nothing- , v1IPAddressMetadata = Nothing- , v1IPAddressSpec = Nothing- }---- ** V1IPAddressList--- | V1IPAddressList--- IPAddressList contains a list of IPAddress.-data V1IPAddressList = V1IPAddressList- { v1IPAddressListApiVersion :: !(Maybe Text) -- ^ "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- , v1IPAddressListItems :: !([V1IPAddress]) -- ^ /Required/ "items" - items is the list of IPAddresses.- , v1IPAddressListKind :: !(Maybe Text) -- ^ "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- , v1IPAddressListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IPAddressList-instance A.FromJSON V1IPAddressList where- parseJSON = A.withObject "V1IPAddressList" $ \o ->- V1IPAddressList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1IPAddressList-instance A.ToJSON V1IPAddressList where- toJSON V1IPAddressList {..} =- _omitNulls- [ "apiVersion" .= v1IPAddressListApiVersion- , "items" .= v1IPAddressListItems- , "kind" .= v1IPAddressListKind- , "metadata" .= v1IPAddressListMetadata- ]----- | Construct a value of type 'V1IPAddressList' (by applying it's required fields, if any)-mkV1IPAddressList- :: [V1IPAddress] -- ^ 'v1IPAddressListItems': items is the list of IPAddresses.- -> V1IPAddressList-mkV1IPAddressList v1IPAddressListItems =- V1IPAddressList- { v1IPAddressListApiVersion = Nothing- , v1IPAddressListItems- , v1IPAddressListKind = Nothing- , v1IPAddressListMetadata = Nothing- }---- ** V1IPAddressSpec--- | V1IPAddressSpec--- IPAddressSpec describe the attributes in an IP Address.-data V1IPAddressSpec = V1IPAddressSpec- { v1IPAddressSpecParentRef :: !(V1ParentReference) -- ^ /Required/ "parentRef"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IPAddressSpec-instance A.FromJSON V1IPAddressSpec where- parseJSON = A.withObject "V1IPAddressSpec" $ \o ->- V1IPAddressSpec- <$> (o .: "parentRef")---- | ToJSON V1IPAddressSpec-instance A.ToJSON V1IPAddressSpec where- toJSON V1IPAddressSpec {..} =- _omitNulls- [ "parentRef" .= v1IPAddressSpecParentRef- ]----- | Construct a value of type 'V1IPAddressSpec' (by applying it's required fields, if any)-mkV1IPAddressSpec- :: V1ParentReference -- ^ 'v1IPAddressSpecParentRef' - -> V1IPAddressSpec-mkV1IPAddressSpec v1IPAddressSpecParentRef =- V1IPAddressSpec- { v1IPAddressSpecParentRef- }---- ** V1IPBlock--- | V1IPBlock--- IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.-data V1IPBlock = V1IPBlock- { v1IPBlockCidr :: !(Text) -- ^ /Required/ "cidr" - cidr is a string representing the IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"- , v1IPBlockExcept :: !(Maybe [Text]) -- ^ "except" - except is a slice of CIDRs that should not be included within an IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\" Except values will be rejected if they are outside the cidr range- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IPBlock-instance A.FromJSON V1IPBlock where- parseJSON = A.withObject "V1IPBlock" $ \o ->- V1IPBlock- <$> (o .: "cidr")- <*> (o .:? "except")---- | ToJSON V1IPBlock-instance A.ToJSON V1IPBlock where- toJSON V1IPBlock {..} =- _omitNulls- [ "cidr" .= v1IPBlockCidr- , "except" .= v1IPBlockExcept- ]----- | Construct a value of type 'V1IPBlock' (by applying it's required fields, if any)-mkV1IPBlock- :: Text -- ^ 'v1IPBlockCidr': cidr is a string representing the IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"- -> V1IPBlock-mkV1IPBlock v1IPBlockCidr =- V1IPBlock- { v1IPBlockCidr- , v1IPBlockExcept = Nothing- }---- ** V1ISCSIPersistentVolumeSource--- | V1ISCSIPersistentVolumeSource--- ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.-data V1ISCSIPersistentVolumeSource = V1ISCSIPersistentVolumeSource- { v1ISCSIPersistentVolumeSourceChapAuthDiscovery :: !(Maybe Bool) -- ^ "chapAuthDiscovery" - chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication- , v1ISCSIPersistentVolumeSourceChapAuthSession :: !(Maybe Bool) -- ^ "chapAuthSession" - chapAuthSession defines whether support iSCSI Session CHAP authentication- , v1ISCSIPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi- , v1ISCSIPersistentVolumeSourceInitiatorName :: !(Maybe Text) -- ^ "initiatorName" - initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.- , v1ISCSIPersistentVolumeSourceIqn :: !(Text) -- ^ /Required/ "iqn" - iqn is Target iSCSI Qualified Name.- , v1ISCSIPersistentVolumeSourceIscsiInterface :: !(Maybe Text) -- ^ "iscsiInterface" - iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).- , v1ISCSIPersistentVolumeSourceLun :: !(Int) -- ^ /Required/ "lun" - lun is iSCSI Target Lun number.- , v1ISCSIPersistentVolumeSourcePortals :: !(Maybe [Text]) -- ^ "portals" - portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).- , v1ISCSIPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.- , v1ISCSIPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"- , v1ISCSIPersistentVolumeSourceTargetPortal :: !(Text) -- ^ /Required/ "targetPortal" - targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ISCSIPersistentVolumeSource-instance A.FromJSON V1ISCSIPersistentVolumeSource where- parseJSON = A.withObject "V1ISCSIPersistentVolumeSource" $ \o ->- V1ISCSIPersistentVolumeSource- <$> (o .:? "chapAuthDiscovery")- <*> (o .:? "chapAuthSession")- <*> (o .:? "fsType")- <*> (o .:? "initiatorName")- <*> (o .: "iqn")- <*> (o .:? "iscsiInterface")- <*> (o .: "lun")- <*> (o .:? "portals")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")- <*> (o .: "targetPortal")---- | ToJSON V1ISCSIPersistentVolumeSource-instance A.ToJSON V1ISCSIPersistentVolumeSource where- toJSON V1ISCSIPersistentVolumeSource {..} =- _omitNulls- [ "chapAuthDiscovery" .= v1ISCSIPersistentVolumeSourceChapAuthDiscovery- , "chapAuthSession" .= v1ISCSIPersistentVolumeSourceChapAuthSession- , "fsType" .= v1ISCSIPersistentVolumeSourceFsType- , "initiatorName" .= v1ISCSIPersistentVolumeSourceInitiatorName- , "iqn" .= v1ISCSIPersistentVolumeSourceIqn- , "iscsiInterface" .= v1ISCSIPersistentVolumeSourceIscsiInterface- , "lun" .= v1ISCSIPersistentVolumeSourceLun- , "portals" .= v1ISCSIPersistentVolumeSourcePortals- , "readOnly" .= v1ISCSIPersistentVolumeSourceReadOnly- , "secretRef" .= v1ISCSIPersistentVolumeSourceSecretRef- , "targetPortal" .= v1ISCSIPersistentVolumeSourceTargetPortal- ]----- | Construct a value of type 'V1ISCSIPersistentVolumeSource' (by applying it's required fields, if any)-mkV1ISCSIPersistentVolumeSource- :: Text -- ^ 'v1ISCSIPersistentVolumeSourceIqn': iqn is Target iSCSI Qualified Name.- -> Int -- ^ 'v1ISCSIPersistentVolumeSourceLun': lun is iSCSI Target Lun number.- -> Text -- ^ 'v1ISCSIPersistentVolumeSourceTargetPortal': targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).- -> V1ISCSIPersistentVolumeSource-mkV1ISCSIPersistentVolumeSource v1ISCSIPersistentVolumeSourceIqn v1ISCSIPersistentVolumeSourceLun v1ISCSIPersistentVolumeSourceTargetPortal =- V1ISCSIPersistentVolumeSource- { v1ISCSIPersistentVolumeSourceChapAuthDiscovery = Nothing- , v1ISCSIPersistentVolumeSourceChapAuthSession = Nothing- , v1ISCSIPersistentVolumeSourceFsType = Nothing- , v1ISCSIPersistentVolumeSourceInitiatorName = Nothing- , v1ISCSIPersistentVolumeSourceIqn- , v1ISCSIPersistentVolumeSourceIscsiInterface = Nothing- , v1ISCSIPersistentVolumeSourceLun- , v1ISCSIPersistentVolumeSourcePortals = Nothing- , v1ISCSIPersistentVolumeSourceReadOnly = Nothing- , v1ISCSIPersistentVolumeSourceSecretRef = Nothing- , v1ISCSIPersistentVolumeSourceTargetPortal- }---- ** V1ISCSIVolumeSource--- | V1ISCSIVolumeSource--- Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.-data V1ISCSIVolumeSource = V1ISCSIVolumeSource- { v1ISCSIVolumeSourceChapAuthDiscovery :: !(Maybe Bool) -- ^ "chapAuthDiscovery" - chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication- , v1ISCSIVolumeSourceChapAuthSession :: !(Maybe Bool) -- ^ "chapAuthSession" - chapAuthSession defines whether support iSCSI Session CHAP authentication- , v1ISCSIVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi- , v1ISCSIVolumeSourceInitiatorName :: !(Maybe Text) -- ^ "initiatorName" - initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.- , v1ISCSIVolumeSourceIqn :: !(Text) -- ^ /Required/ "iqn" - iqn is the target iSCSI Qualified Name.- , v1ISCSIVolumeSourceIscsiInterface :: !(Maybe Text) -- ^ "iscsiInterface" - iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).- , v1ISCSIVolumeSourceLun :: !(Int) -- ^ /Required/ "lun" - lun represents iSCSI Target Lun number.- , v1ISCSIVolumeSourcePortals :: !(Maybe [Text]) -- ^ "portals" - portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).- , v1ISCSIVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.- , v1ISCSIVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"- , v1ISCSIVolumeSourceTargetPortal :: !(Text) -- ^ /Required/ "targetPortal" - targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ISCSIVolumeSource-instance A.FromJSON V1ISCSIVolumeSource where- parseJSON = A.withObject "V1ISCSIVolumeSource" $ \o ->- V1ISCSIVolumeSource- <$> (o .:? "chapAuthDiscovery")- <*> (o .:? "chapAuthSession")- <*> (o .:? "fsType")- <*> (o .:? "initiatorName")- <*> (o .: "iqn")- <*> (o .:? "iscsiInterface")- <*> (o .: "lun")- <*> (o .:? "portals")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")- <*> (o .: "targetPortal")---- | ToJSON V1ISCSIVolumeSource-instance A.ToJSON V1ISCSIVolumeSource where- toJSON V1ISCSIVolumeSource {..} =- _omitNulls- [ "chapAuthDiscovery" .= v1ISCSIVolumeSourceChapAuthDiscovery- , "chapAuthSession" .= v1ISCSIVolumeSourceChapAuthSession- , "fsType" .= v1ISCSIVolumeSourceFsType- , "initiatorName" .= v1ISCSIVolumeSourceInitiatorName- , "iqn" .= v1ISCSIVolumeSourceIqn- , "iscsiInterface" .= v1ISCSIVolumeSourceIscsiInterface- , "lun" .= v1ISCSIVolumeSourceLun- , "portals" .= v1ISCSIVolumeSourcePortals- , "readOnly" .= v1ISCSIVolumeSourceReadOnly- , "secretRef" .= v1ISCSIVolumeSourceSecretRef- , "targetPortal" .= v1ISCSIVolumeSourceTargetPortal- ]----- | Construct a value of type 'V1ISCSIVolumeSource' (by applying it's required fields, if any)-mkV1ISCSIVolumeSource- :: Text -- ^ 'v1ISCSIVolumeSourceIqn': iqn is the target iSCSI Qualified Name.- -> Int -- ^ 'v1ISCSIVolumeSourceLun': lun represents iSCSI Target Lun number.- -> Text -- ^ 'v1ISCSIVolumeSourceTargetPortal': targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).- -> V1ISCSIVolumeSource-mkV1ISCSIVolumeSource v1ISCSIVolumeSourceIqn v1ISCSIVolumeSourceLun v1ISCSIVolumeSourceTargetPortal =- V1ISCSIVolumeSource- { v1ISCSIVolumeSourceChapAuthDiscovery = Nothing- , v1ISCSIVolumeSourceChapAuthSession = Nothing- , v1ISCSIVolumeSourceFsType = Nothing- , v1ISCSIVolumeSourceInitiatorName = Nothing- , v1ISCSIVolumeSourceIqn- , v1ISCSIVolumeSourceIscsiInterface = Nothing- , v1ISCSIVolumeSourceLun- , v1ISCSIVolumeSourcePortals = Nothing- , v1ISCSIVolumeSourceReadOnly = Nothing- , v1ISCSIVolumeSourceSecretRef = Nothing- , v1ISCSIVolumeSourceTargetPortal- }---- ** V1ImageVolumeSource--- | V1ImageVolumeSource--- ImageVolumeSource represents a image volume resource.-data V1ImageVolumeSource = V1ImageVolumeSource- { v1ImageVolumeSourcePullPolicy :: !(Maybe Text) -- ^ "pullPolicy" - Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.- , v1ImageVolumeSourceReference :: !(Maybe Text) -- ^ "reference" - Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ImageVolumeSource-instance A.FromJSON V1ImageVolumeSource where- parseJSON = A.withObject "V1ImageVolumeSource" $ \o ->- V1ImageVolumeSource- <$> (o .:? "pullPolicy")- <*> (o .:? "reference")---- | ToJSON V1ImageVolumeSource-instance A.ToJSON V1ImageVolumeSource where- toJSON V1ImageVolumeSource {..} =- _omitNulls- [ "pullPolicy" .= v1ImageVolumeSourcePullPolicy- , "reference" .= v1ImageVolumeSourceReference- ]----- | Construct a value of type 'V1ImageVolumeSource' (by applying it's required fields, if any)-mkV1ImageVolumeSource- :: V1ImageVolumeSource-mkV1ImageVolumeSource =- V1ImageVolumeSource- { v1ImageVolumeSourcePullPolicy = Nothing- , v1ImageVolumeSourceReference = Nothing- }---- ** V1Ingress--- | V1Ingress--- Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.-data V1Ingress = V1Ingress- { v1IngressApiVersion :: !(Maybe Text) -- ^ "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- , v1IngressKind :: !(Maybe Text) -- ^ "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- , v1IngressMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1IngressSpec :: !(Maybe V1IngressSpec) -- ^ "spec"- , v1IngressStatus :: !(Maybe V1IngressStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Ingress-instance A.FromJSON V1Ingress where- parseJSON = A.withObject "V1Ingress" $ \o ->- V1Ingress- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1Ingress-instance A.ToJSON V1Ingress where- toJSON V1Ingress {..} =- _omitNulls- [ "apiVersion" .= v1IngressApiVersion- , "kind" .= v1IngressKind- , "metadata" .= v1IngressMetadata- , "spec" .= v1IngressSpec- , "status" .= v1IngressStatus- ]----- | Construct a value of type 'V1Ingress' (by applying it's required fields, if any)-mkV1Ingress- :: V1Ingress-mkV1Ingress =- V1Ingress- { v1IngressApiVersion = Nothing- , v1IngressKind = Nothing- , v1IngressMetadata = Nothing- , v1IngressSpec = Nothing- , v1IngressStatus = Nothing- }---- ** V1IngressBackend--- | V1IngressBackend--- IngressBackend describes all endpoints for a given service and port.-data V1IngressBackend = V1IngressBackend- { v1IngressBackendResource :: !(Maybe V1TypedLocalObjectReference) -- ^ "resource"- , v1IngressBackendService :: !(Maybe V1IngressServiceBackend) -- ^ "service"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressBackend-instance A.FromJSON V1IngressBackend where- parseJSON = A.withObject "V1IngressBackend" $ \o ->- V1IngressBackend- <$> (o .:? "resource")- <*> (o .:? "service")---- | ToJSON V1IngressBackend-instance A.ToJSON V1IngressBackend where- toJSON V1IngressBackend {..} =- _omitNulls- [ "resource" .= v1IngressBackendResource- , "service" .= v1IngressBackendService- ]----- | Construct a value of type 'V1IngressBackend' (by applying it's required fields, if any)-mkV1IngressBackend- :: V1IngressBackend-mkV1IngressBackend =- V1IngressBackend- { v1IngressBackendResource = Nothing- , v1IngressBackendService = Nothing- }---- ** V1IngressClass--- | V1IngressClass--- IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.-data V1IngressClass = V1IngressClass- { v1IngressClassApiVersion :: !(Maybe Text) -- ^ "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- , v1IngressClassKind :: !(Maybe Text) -- ^ "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- , v1IngressClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1IngressClassSpec :: !(Maybe V1IngressClassSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressClass-instance A.FromJSON V1IngressClass where- parseJSON = A.withObject "V1IngressClass" $ \o ->- V1IngressClass- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1IngressClass-instance A.ToJSON V1IngressClass where- toJSON V1IngressClass {..} =- _omitNulls- [ "apiVersion" .= v1IngressClassApiVersion- , "kind" .= v1IngressClassKind- , "metadata" .= v1IngressClassMetadata- , "spec" .= v1IngressClassSpec- ]----- | Construct a value of type 'V1IngressClass' (by applying it's required fields, if any)-mkV1IngressClass- :: V1IngressClass-mkV1IngressClass =- V1IngressClass- { v1IngressClassApiVersion = Nothing- , v1IngressClassKind = Nothing- , v1IngressClassMetadata = Nothing- , v1IngressClassSpec = Nothing- }---- ** V1IngressClassList--- | V1IngressClassList--- IngressClassList is a collection of IngressClasses.-data V1IngressClassList = V1IngressClassList- { v1IngressClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1IngressClassListItems :: !([V1IngressClass]) -- ^ /Required/ "items" - items is the list of IngressClasses.- , v1IngressClassListKind :: !(Maybe Text) -- ^ "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- , v1IngressClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressClassList-instance A.FromJSON V1IngressClassList where- parseJSON = A.withObject "V1IngressClassList" $ \o ->- V1IngressClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1IngressClassList-instance A.ToJSON V1IngressClassList where- toJSON V1IngressClassList {..} =- _omitNulls- [ "apiVersion" .= v1IngressClassListApiVersion- , "items" .= v1IngressClassListItems- , "kind" .= v1IngressClassListKind- , "metadata" .= v1IngressClassListMetadata- ]----- | Construct a value of type 'V1IngressClassList' (by applying it's required fields, if any)-mkV1IngressClassList- :: [V1IngressClass] -- ^ 'v1IngressClassListItems': items is the list of IngressClasses.- -> V1IngressClassList-mkV1IngressClassList v1IngressClassListItems =- V1IngressClassList- { v1IngressClassListApiVersion = Nothing- , v1IngressClassListItems- , v1IngressClassListKind = Nothing- , v1IngressClassListMetadata = Nothing- }---- ** V1IngressClassParametersReference--- | V1IngressClassParametersReference--- IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.-data V1IngressClassParametersReference = V1IngressClassParametersReference- { v1IngressClassParametersReferenceApiGroup :: !(Maybe Text) -- ^ "apiGroup" - 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.- , v1IngressClassParametersReferenceKind :: !(Text) -- ^ /Required/ "kind" - kind is the type of resource being referenced.- , v1IngressClassParametersReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of resource being referenced.- , v1IngressClassParametersReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - namespace is the namespace of the resource being referenced. This field is required when scope is set to \"Namespace\" and must be unset when scope is set to \"Cluster\".- , v1IngressClassParametersReferenceScope :: !(Maybe Text) -- ^ "scope" - scope represents if this refers to a cluster or namespace scoped resource. This may be set to \"Cluster\" (default) or \"Namespace\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressClassParametersReference-instance A.FromJSON V1IngressClassParametersReference where- parseJSON = A.withObject "V1IngressClassParametersReference" $ \o ->- V1IngressClassParametersReference- <$> (o .:? "apiGroup")- <*> (o .: "kind")- <*> (o .: "name")- <*> (o .:? "namespace")- <*> (o .:? "scope")---- | ToJSON V1IngressClassParametersReference-instance A.ToJSON V1IngressClassParametersReference where- toJSON V1IngressClassParametersReference {..} =- _omitNulls- [ "apiGroup" .= v1IngressClassParametersReferenceApiGroup- , "kind" .= v1IngressClassParametersReferenceKind- , "name" .= v1IngressClassParametersReferenceName- , "namespace" .= v1IngressClassParametersReferenceNamespace- , "scope" .= v1IngressClassParametersReferenceScope- ]----- | Construct a value of type 'V1IngressClassParametersReference' (by applying it's required fields, if any)-mkV1IngressClassParametersReference- :: Text -- ^ 'v1IngressClassParametersReferenceKind': kind is the type of resource being referenced.- -> Text -- ^ 'v1IngressClassParametersReferenceName': name is the name of resource being referenced.- -> V1IngressClassParametersReference-mkV1IngressClassParametersReference v1IngressClassParametersReferenceKind v1IngressClassParametersReferenceName =- V1IngressClassParametersReference- { v1IngressClassParametersReferenceApiGroup = Nothing- , v1IngressClassParametersReferenceKind- , v1IngressClassParametersReferenceName- , v1IngressClassParametersReferenceNamespace = Nothing- , v1IngressClassParametersReferenceScope = Nothing- }---- ** V1IngressClassSpec--- | V1IngressClassSpec--- IngressClassSpec provides information about the class of an Ingress.-data V1IngressClassSpec = V1IngressClassSpec- { v1IngressClassSpecController :: !(Maybe Text) -- ^ "controller" - controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.- , v1IngressClassSpecParameters :: !(Maybe V1IngressClassParametersReference) -- ^ "parameters"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressClassSpec-instance A.FromJSON V1IngressClassSpec where- parseJSON = A.withObject "V1IngressClassSpec" $ \o ->- V1IngressClassSpec- <$> (o .:? "controller")- <*> (o .:? "parameters")---- | ToJSON V1IngressClassSpec-instance A.ToJSON V1IngressClassSpec where- toJSON V1IngressClassSpec {..} =- _omitNulls- [ "controller" .= v1IngressClassSpecController- , "parameters" .= v1IngressClassSpecParameters- ]----- | Construct a value of type 'V1IngressClassSpec' (by applying it's required fields, if any)-mkV1IngressClassSpec- :: V1IngressClassSpec-mkV1IngressClassSpec =- V1IngressClassSpec- { v1IngressClassSpecController = Nothing- , v1IngressClassSpecParameters = Nothing- }---- ** V1IngressList--- | V1IngressList--- IngressList is a collection of Ingress.-data V1IngressList = V1IngressList- { v1IngressListApiVersion :: !(Maybe Text) -- ^ "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- , v1IngressListItems :: !([V1Ingress]) -- ^ /Required/ "items" - items is the list of Ingress.- , v1IngressListKind :: !(Maybe Text) -- ^ "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- , v1IngressListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressList-instance A.FromJSON V1IngressList where- parseJSON = A.withObject "V1IngressList" $ \o ->- V1IngressList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1IngressList-instance A.ToJSON V1IngressList where- toJSON V1IngressList {..} =- _omitNulls- [ "apiVersion" .= v1IngressListApiVersion- , "items" .= v1IngressListItems- , "kind" .= v1IngressListKind- , "metadata" .= v1IngressListMetadata- ]----- | Construct a value of type 'V1IngressList' (by applying it's required fields, if any)-mkV1IngressList- :: [V1Ingress] -- ^ 'v1IngressListItems': items is the list of Ingress.- -> V1IngressList-mkV1IngressList v1IngressListItems =- V1IngressList- { v1IngressListApiVersion = Nothing- , v1IngressListItems- , v1IngressListKind = Nothing- , v1IngressListMetadata = Nothing- }---- ** V1IngressLoadBalancerIngress--- | V1IngressLoadBalancerIngress--- IngressLoadBalancerIngress represents the status of a load-balancer ingress point.-data V1IngressLoadBalancerIngress = V1IngressLoadBalancerIngress- { v1IngressLoadBalancerIngressHostname :: !(Maybe Text) -- ^ "hostname" - hostname is set for load-balancer ingress points that are DNS based.- , v1IngressLoadBalancerIngressIp :: !(Maybe Text) -- ^ "ip" - ip is set for load-balancer ingress points that are IP based.- , v1IngressLoadBalancerIngressPorts :: !(Maybe [V1IngressPortStatus]) -- ^ "ports" - ports provides information about the ports exposed by this LoadBalancer.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressLoadBalancerIngress-instance A.FromJSON V1IngressLoadBalancerIngress where- parseJSON = A.withObject "V1IngressLoadBalancerIngress" $ \o ->- V1IngressLoadBalancerIngress- <$> (o .:? "hostname")- <*> (o .:? "ip")- <*> (o .:? "ports")---- | ToJSON V1IngressLoadBalancerIngress-instance A.ToJSON V1IngressLoadBalancerIngress where- toJSON V1IngressLoadBalancerIngress {..} =- _omitNulls- [ "hostname" .= v1IngressLoadBalancerIngressHostname- , "ip" .= v1IngressLoadBalancerIngressIp- , "ports" .= v1IngressLoadBalancerIngressPorts- ]----- | Construct a value of type 'V1IngressLoadBalancerIngress' (by applying it's required fields, if any)-mkV1IngressLoadBalancerIngress- :: V1IngressLoadBalancerIngress-mkV1IngressLoadBalancerIngress =- V1IngressLoadBalancerIngress- { v1IngressLoadBalancerIngressHostname = Nothing- , v1IngressLoadBalancerIngressIp = Nothing- , v1IngressLoadBalancerIngressPorts = Nothing- }---- ** V1IngressLoadBalancerStatus--- | V1IngressLoadBalancerStatus--- IngressLoadBalancerStatus represents the status of a load-balancer.-data V1IngressLoadBalancerStatus = V1IngressLoadBalancerStatus- { v1IngressLoadBalancerStatusIngress :: !(Maybe [V1IngressLoadBalancerIngress]) -- ^ "ingress" - ingress is a list containing ingress points for the load-balancer.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressLoadBalancerStatus-instance A.FromJSON V1IngressLoadBalancerStatus where- parseJSON = A.withObject "V1IngressLoadBalancerStatus" $ \o ->- V1IngressLoadBalancerStatus- <$> (o .:? "ingress")---- | ToJSON V1IngressLoadBalancerStatus-instance A.ToJSON V1IngressLoadBalancerStatus where- toJSON V1IngressLoadBalancerStatus {..} =- _omitNulls- [ "ingress" .= v1IngressLoadBalancerStatusIngress- ]----- | Construct a value of type 'V1IngressLoadBalancerStatus' (by applying it's required fields, if any)-mkV1IngressLoadBalancerStatus- :: V1IngressLoadBalancerStatus-mkV1IngressLoadBalancerStatus =- V1IngressLoadBalancerStatus- { v1IngressLoadBalancerStatusIngress = Nothing- }---- ** V1IngressPortStatus--- | V1IngressPortStatus--- IngressPortStatus represents the error condition of a service port-data V1IngressPortStatus = V1IngressPortStatus- { v1IngressPortStatusError :: !(Maybe Text) -- ^ "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 format foo.example.com/CamelCase.- , v1IngressPortStatusPort :: !(Int) -- ^ /Required/ "port" - port is the port number of the ingress port.- , v1IngressPortStatusProtocol :: !(Text) -- ^ /Required/ "protocol" - protocol is the protocol of the ingress port. The supported values are: \"TCP\", \"UDP\", \"SCTP\"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressPortStatus-instance A.FromJSON V1IngressPortStatus where- parseJSON = A.withObject "V1IngressPortStatus" $ \o ->- V1IngressPortStatus- <$> (o .:? "error")- <*> (o .: "port")- <*> (o .: "protocol")---- | ToJSON V1IngressPortStatus-instance A.ToJSON V1IngressPortStatus where- toJSON V1IngressPortStatus {..} =- _omitNulls- [ "error" .= v1IngressPortStatusError- , "port" .= v1IngressPortStatusPort- , "protocol" .= v1IngressPortStatusProtocol- ]----- | Construct a value of type 'V1IngressPortStatus' (by applying it's required fields, if any)-mkV1IngressPortStatus- :: Int -- ^ 'v1IngressPortStatusPort': port is the port number of the ingress port.- -> Text -- ^ 'v1IngressPortStatusProtocol': protocol is the protocol of the ingress port. The supported values are: \"TCP\", \"UDP\", \"SCTP\"- -> V1IngressPortStatus-mkV1IngressPortStatus v1IngressPortStatusPort v1IngressPortStatusProtocol =- V1IngressPortStatus- { v1IngressPortStatusError = Nothing- , v1IngressPortStatusPort- , v1IngressPortStatusProtocol- }---- ** V1IngressRule--- | V1IngressRule--- IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.-data V1IngressRule = V1IngressRule- { v1IngressRuleHost :: !(Maybe Text) -- ^ "host" - host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the IP in the Spec of the parent Ingress. 2. The `:` delimiter is not respected because ports are not allowed. Currently the port of an Ingress is implicitly :80 for http and :443 for https. Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue. host can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. \"*.foo.com\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.- , v1IngressRuleHttp :: !(Maybe V1HTTPIngressRuleValue) -- ^ "http"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressRule-instance A.FromJSON V1IngressRule where- parseJSON = A.withObject "V1IngressRule" $ \o ->- V1IngressRule- <$> (o .:? "host")- <*> (o .:? "http")---- | ToJSON V1IngressRule-instance A.ToJSON V1IngressRule where- toJSON V1IngressRule {..} =- _omitNulls- [ "host" .= v1IngressRuleHost- , "http" .= v1IngressRuleHttp- ]----- | Construct a value of type 'V1IngressRule' (by applying it's required fields, if any)-mkV1IngressRule- :: V1IngressRule-mkV1IngressRule =- V1IngressRule- { v1IngressRuleHost = Nothing- , v1IngressRuleHttp = Nothing- }---- ** V1IngressServiceBackend--- | V1IngressServiceBackend--- IngressServiceBackend references a Kubernetes Service as a Backend.-data V1IngressServiceBackend = V1IngressServiceBackend- { v1IngressServiceBackendName :: !(Text) -- ^ /Required/ "name" - name is the referenced service. The service must exist in the same namespace as the Ingress object.- , v1IngressServiceBackendPort :: !(Maybe V1ServiceBackendPort) -- ^ "port"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressServiceBackend-instance A.FromJSON V1IngressServiceBackend where- parseJSON = A.withObject "V1IngressServiceBackend" $ \o ->- V1IngressServiceBackend- <$> (o .: "name")- <*> (o .:? "port")---- | ToJSON V1IngressServiceBackend-instance A.ToJSON V1IngressServiceBackend where- toJSON V1IngressServiceBackend {..} =- _omitNulls- [ "name" .= v1IngressServiceBackendName- , "port" .= v1IngressServiceBackendPort- ]----- | Construct a value of type 'V1IngressServiceBackend' (by applying it's required fields, if any)-mkV1IngressServiceBackend- :: Text -- ^ 'v1IngressServiceBackendName': name is the referenced service. The service must exist in the same namespace as the Ingress object.- -> V1IngressServiceBackend-mkV1IngressServiceBackend v1IngressServiceBackendName =- V1IngressServiceBackend- { v1IngressServiceBackendName- , v1IngressServiceBackendPort = Nothing- }---- ** V1IngressSpec--- | V1IngressSpec--- IngressSpec describes the Ingress the user wishes to exist.-data V1IngressSpec = V1IngressSpec- { v1IngressSpecDefaultBackend :: !(Maybe V1IngressBackend) -- ^ "defaultBackend"- , v1IngressSpecIngressClassName :: !(Maybe Text) -- ^ "ingressClassName" - ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -> IngressClass -> Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present.- , v1IngressSpecRules :: !(Maybe [V1IngressRule]) -- ^ "rules" - rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.- , v1IngressSpecTls :: !(Maybe [V1IngressTLS]) -- ^ "tls" - tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressSpec-instance A.FromJSON V1IngressSpec where- parseJSON = A.withObject "V1IngressSpec" $ \o ->- V1IngressSpec- <$> (o .:? "defaultBackend")- <*> (o .:? "ingressClassName")- <*> (o .:? "rules")- <*> (o .:? "tls")---- | ToJSON V1IngressSpec-instance A.ToJSON V1IngressSpec where- toJSON V1IngressSpec {..} =- _omitNulls- [ "defaultBackend" .= v1IngressSpecDefaultBackend- , "ingressClassName" .= v1IngressSpecIngressClassName- , "rules" .= v1IngressSpecRules- , "tls" .= v1IngressSpecTls- ]----- | Construct a value of type 'V1IngressSpec' (by applying it's required fields, if any)-mkV1IngressSpec- :: V1IngressSpec-mkV1IngressSpec =- V1IngressSpec- { v1IngressSpecDefaultBackend = Nothing- , v1IngressSpecIngressClassName = Nothing- , v1IngressSpecRules = Nothing- , v1IngressSpecTls = Nothing- }---- ** V1IngressStatus--- | V1IngressStatus--- IngressStatus describe the current state of the Ingress.-data V1IngressStatus = V1IngressStatus- { v1IngressStatusLoadBalancer :: !(Maybe V1IngressLoadBalancerStatus) -- ^ "loadBalancer"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressStatus-instance A.FromJSON V1IngressStatus where- parseJSON = A.withObject "V1IngressStatus" $ \o ->- V1IngressStatus- <$> (o .:? "loadBalancer")---- | ToJSON V1IngressStatus-instance A.ToJSON V1IngressStatus where- toJSON V1IngressStatus {..} =- _omitNulls- [ "loadBalancer" .= v1IngressStatusLoadBalancer- ]----- | Construct a value of type 'V1IngressStatus' (by applying it's required fields, if any)-mkV1IngressStatus- :: V1IngressStatus-mkV1IngressStatus =- V1IngressStatus- { v1IngressStatusLoadBalancer = Nothing- }---- ** V1IngressTLS--- | V1IngressTLS--- IngressTLS describes the transport layer security associated with an ingress.-data V1IngressTLS = V1IngressTLS- { v1IngressTLSHosts :: !(Maybe [Text]) -- ^ "hosts" - hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.- , v1IngressTLSSecretName :: !(Maybe Text) -- ^ "secretName" - secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the \"Host\" header is used for routing.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1IngressTLS-instance A.FromJSON V1IngressTLS where- parseJSON = A.withObject "V1IngressTLS" $ \o ->- V1IngressTLS- <$> (o .:? "hosts")- <*> (o .:? "secretName")---- | ToJSON V1IngressTLS-instance A.ToJSON V1IngressTLS where- toJSON V1IngressTLS {..} =- _omitNulls- [ "hosts" .= v1IngressTLSHosts- , "secretName" .= v1IngressTLSSecretName- ]----- | Construct a value of type 'V1IngressTLS' (by applying it's required fields, if any)-mkV1IngressTLS- :: V1IngressTLS-mkV1IngressTLS =- V1IngressTLS- { v1IngressTLSHosts = Nothing- , v1IngressTLSSecretName = Nothing- }---- ** V1JSONSchemaProps--- | V1JSONSchemaProps--- JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).-data V1JSONSchemaProps = V1JSONSchemaProps- { v1JSONSchemaPropsRef :: !(Maybe Text) -- ^ "$ref"- , v1JSONSchemaPropsSchema :: !(Maybe Text) -- ^ "$schema"- , v1JSONSchemaPropsAdditionalItems :: !(Maybe A.Value) -- ^ "additionalItems" - JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.- , v1JSONSchemaPropsAdditionalProperties :: !(Maybe A.Value) -- ^ "additionalProperties" - JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.- , v1JSONSchemaPropsAllOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "allOf"- , v1JSONSchemaPropsAnyOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "anyOf"- , v1JSONSchemaPropsDefault :: !(Maybe A.Value) -- ^ "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.- , v1JSONSchemaPropsDefinitions :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "definitions"- , v1JSONSchemaPropsDependencies :: !(Maybe (Map.Map String A.Value)) -- ^ "dependencies"- , v1JSONSchemaPropsDescription :: !(Maybe Text) -- ^ "description"- , v1JSONSchemaPropsEnum :: !(Maybe [A.Value]) -- ^ "enum"- , v1JSONSchemaPropsExample :: !(Maybe A.Value) -- ^ "example" - JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.- , v1JSONSchemaPropsExclusiveMaximum :: !(Maybe Bool) -- ^ "exclusiveMaximum"- , v1JSONSchemaPropsExclusiveMinimum :: !(Maybe Bool) -- ^ "exclusiveMinimum"- , v1JSONSchemaPropsExternalDocs :: !(Maybe V1ExternalDocumentation) -- ^ "externalDocs"- , v1JSONSchemaPropsFormat :: !(Maybe Text) -- ^ "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.- , v1JSONSchemaPropsId :: !(Maybe Text) -- ^ "id"- , v1JSONSchemaPropsItems :: !(Maybe A.Value) -- ^ "items" - JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.- , v1JSONSchemaPropsMaxItems :: !(Maybe Integer) -- ^ "maxItems"- , v1JSONSchemaPropsMaxLength :: !(Maybe Integer) -- ^ "maxLength"- , v1JSONSchemaPropsMaxProperties :: !(Maybe Integer) -- ^ "maxProperties"- , v1JSONSchemaPropsMaximum :: !(Maybe Double) -- ^ "maximum"- , v1JSONSchemaPropsMinItems :: !(Maybe Integer) -- ^ "minItems"- , v1JSONSchemaPropsMinLength :: !(Maybe Integer) -- ^ "minLength"- , v1JSONSchemaPropsMinProperties :: !(Maybe Integer) -- ^ "minProperties"- , v1JSONSchemaPropsMinimum :: !(Maybe Double) -- ^ "minimum"- , v1JSONSchemaPropsMultipleOf :: !(Maybe Double) -- ^ "multipleOf"- , v1JSONSchemaPropsNot :: !(Maybe V1JSONSchemaProps) -- ^ "not"- , v1JSONSchemaPropsNullable :: !(Maybe Bool) -- ^ "nullable"- , v1JSONSchemaPropsOneOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "oneOf"- , v1JSONSchemaPropsPattern :: !(Maybe Text) -- ^ "pattern"- , v1JSONSchemaPropsPatternProperties :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "patternProperties"- , v1JSONSchemaPropsProperties :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "properties"- , v1JSONSchemaPropsRequired :: !(Maybe [Text]) -- ^ "required"- , v1JSONSchemaPropsTitle :: !(Maybe Text) -- ^ "title"- , v1JSONSchemaPropsType :: !(Maybe Text) -- ^ "type"- , v1JSONSchemaPropsUniqueItems :: !(Maybe Bool) -- ^ "uniqueItems"- , v1JSONSchemaPropsXKubernetesEmbeddedResource :: !(Maybe 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).- , v1JSONSchemaPropsXKubernetesIntOrString :: !(Maybe 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: 1) anyOf: - type: integer - type: string 2) allOf: - anyOf: - type: integer - type: string - ... zero or more- , v1JSONSchemaPropsXKubernetesListMapKeys :: !(Maybe [Text]) -- ^ "x-kubernetes-list-map-keys" - x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map. This tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported). The properties specified must either be required or have a default value, to ensure those properties are present for all list items.- , v1JSONSchemaPropsXKubernetesListType :: !(Maybe Text) -- ^ "x-kubernetes-list-type" - x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values: 1) `atomic`: the list is treated as a single entity, like a scalar. Atomic lists will be entirely replaced when updated. This extension may be used on any type of list (struct, scalar, ...). 2) `set`: Sets are lists that must not have multiple items with the same value. Each value must be a scalar, an object with x-kubernetes-map-type `atomic` or an array with x-kubernetes-list-type `atomic`. 3) `map`: These lists are like maps in that their elements have a non-index key used to identify them. Order is preserved upon merge. The map tag must only be used on a list with elements of type object. Defaults to atomic for arrays.- , v1JSONSchemaPropsXKubernetesMapType :: !(Maybe Text) -- ^ "x-kubernetes-map-type" - x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values: 1) `granular`: These maps are actual maps (key-value pairs) and each fields are independent from each other (they can each be manipulated by separate actors). This is the default behaviour for all maps. 2) `atomic`: the list is treated as a single entity, like a scalar. Atomic maps will be entirely replaced when updated.- , v1JSONSchemaPropsXKubernetesPreserveUnknownFields :: !(Maybe Bool) -- ^ "x-kubernetes-preserve-unknown-fields" - x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.- , v1JSONSchemaPropsXKubernetesValidations :: !(Maybe [V1ValidationRule]) -- ^ "x-kubernetes-validations" - x-kubernetes-validations describes a list of validation rules written in the CEL expression language.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1JSONSchemaProps-instance A.FromJSON V1JSONSchemaProps where- parseJSON = A.withObject "V1JSONSchemaProps" $ \o ->- V1JSONSchemaProps- <$> (o .:? "$ref")- <*> (o .:? "$schema")- <*> (o .:? "additionalItems")- <*> (o .:? "additionalProperties")- <*> (o .:? "allOf")- <*> (o .:? "anyOf")- <*> (o .:? "default")- <*> (o .:? "definitions")- <*> (o .:? "dependencies")- <*> (o .:? "description")- <*> (o .:? "enum")- <*> (o .:? "example")- <*> (o .:? "exclusiveMaximum")- <*> (o .:? "exclusiveMinimum")- <*> (o .:? "externalDocs")- <*> (o .:? "format")- <*> (o .:? "id")- <*> (o .:? "items")- <*> (o .:? "maxItems")- <*> (o .:? "maxLength")- <*> (o .:? "maxProperties")- <*> (o .:? "maximum")- <*> (o .:? "minItems")- <*> (o .:? "minLength")- <*> (o .:? "minProperties")- <*> (o .:? "minimum")- <*> (o .:? "multipleOf")- <*> (o .:? "not")- <*> (o .:? "nullable")- <*> (o .:? "oneOf")- <*> (o .:? "pattern")- <*> (o .:? "patternProperties")- <*> (o .:? "properties")- <*> (o .:? "required")- <*> (o .:? "title")- <*> (o .:? "type")- <*> (o .:? "uniqueItems")- <*> (o .:? "x-kubernetes-embedded-resource")- <*> (o .:? "x-kubernetes-int-or-string")- <*> (o .:? "x-kubernetes-list-map-keys")- <*> (o .:? "x-kubernetes-list-type")- <*> (o .:? "x-kubernetes-map-type")- <*> (o .:? "x-kubernetes-preserve-unknown-fields")- <*> (o .:? "x-kubernetes-validations")---- | ToJSON V1JSONSchemaProps-instance A.ToJSON V1JSONSchemaProps where- toJSON V1JSONSchemaProps {..} =- _omitNulls- [ "$ref" .= v1JSONSchemaPropsRef- , "$schema" .= v1JSONSchemaPropsSchema- , "additionalItems" .= v1JSONSchemaPropsAdditionalItems- , "additionalProperties" .= v1JSONSchemaPropsAdditionalProperties- , "allOf" .= v1JSONSchemaPropsAllOf- , "anyOf" .= v1JSONSchemaPropsAnyOf- , "default" .= v1JSONSchemaPropsDefault- , "definitions" .= v1JSONSchemaPropsDefinitions- , "dependencies" .= v1JSONSchemaPropsDependencies- , "description" .= v1JSONSchemaPropsDescription- , "enum" .= v1JSONSchemaPropsEnum- , "example" .= v1JSONSchemaPropsExample- , "exclusiveMaximum" .= v1JSONSchemaPropsExclusiveMaximum- , "exclusiveMinimum" .= v1JSONSchemaPropsExclusiveMinimum- , "externalDocs" .= v1JSONSchemaPropsExternalDocs- , "format" .= v1JSONSchemaPropsFormat- , "id" .= v1JSONSchemaPropsId- , "items" .= v1JSONSchemaPropsItems- , "maxItems" .= v1JSONSchemaPropsMaxItems- , "maxLength" .= v1JSONSchemaPropsMaxLength- , "maxProperties" .= v1JSONSchemaPropsMaxProperties- , "maximum" .= v1JSONSchemaPropsMaximum- , "minItems" .= v1JSONSchemaPropsMinItems- , "minLength" .= v1JSONSchemaPropsMinLength- , "minProperties" .= v1JSONSchemaPropsMinProperties- , "minimum" .= v1JSONSchemaPropsMinimum- , "multipleOf" .= v1JSONSchemaPropsMultipleOf- , "not" .= v1JSONSchemaPropsNot- , "nullable" .= v1JSONSchemaPropsNullable- , "oneOf" .= v1JSONSchemaPropsOneOf- , "pattern" .= v1JSONSchemaPropsPattern- , "patternProperties" .= v1JSONSchemaPropsPatternProperties- , "properties" .= v1JSONSchemaPropsProperties- , "required" .= v1JSONSchemaPropsRequired- , "title" .= v1JSONSchemaPropsTitle- , "type" .= v1JSONSchemaPropsType- , "uniqueItems" .= v1JSONSchemaPropsUniqueItems- , "x-kubernetes-embedded-resource" .= v1JSONSchemaPropsXKubernetesEmbeddedResource- , "x-kubernetes-int-or-string" .= v1JSONSchemaPropsXKubernetesIntOrString- , "x-kubernetes-list-map-keys" .= v1JSONSchemaPropsXKubernetesListMapKeys- , "x-kubernetes-list-type" .= v1JSONSchemaPropsXKubernetesListType- , "x-kubernetes-map-type" .= v1JSONSchemaPropsXKubernetesMapType- , "x-kubernetes-preserve-unknown-fields" .= v1JSONSchemaPropsXKubernetesPreserveUnknownFields- , "x-kubernetes-validations" .= v1JSONSchemaPropsXKubernetesValidations- ]----- | Construct a value of type 'V1JSONSchemaProps' (by applying it's required fields, if any)-mkV1JSONSchemaProps- :: V1JSONSchemaProps-mkV1JSONSchemaProps =- V1JSONSchemaProps- { v1JSONSchemaPropsRef = Nothing- , v1JSONSchemaPropsSchema = Nothing- , v1JSONSchemaPropsAdditionalItems = Nothing- , v1JSONSchemaPropsAdditionalProperties = Nothing- , v1JSONSchemaPropsAllOf = Nothing- , v1JSONSchemaPropsAnyOf = Nothing- , v1JSONSchemaPropsDefault = Nothing- , v1JSONSchemaPropsDefinitions = Nothing- , v1JSONSchemaPropsDependencies = Nothing- , v1JSONSchemaPropsDescription = Nothing- , v1JSONSchemaPropsEnum = Nothing- , v1JSONSchemaPropsExample = Nothing- , v1JSONSchemaPropsExclusiveMaximum = Nothing- , v1JSONSchemaPropsExclusiveMinimum = Nothing- , v1JSONSchemaPropsExternalDocs = Nothing- , v1JSONSchemaPropsFormat = Nothing- , v1JSONSchemaPropsId = Nothing- , v1JSONSchemaPropsItems = Nothing- , v1JSONSchemaPropsMaxItems = Nothing- , v1JSONSchemaPropsMaxLength = Nothing- , v1JSONSchemaPropsMaxProperties = Nothing- , v1JSONSchemaPropsMaximum = Nothing- , v1JSONSchemaPropsMinItems = Nothing- , v1JSONSchemaPropsMinLength = Nothing- , v1JSONSchemaPropsMinProperties = Nothing- , v1JSONSchemaPropsMinimum = Nothing- , v1JSONSchemaPropsMultipleOf = Nothing- , v1JSONSchemaPropsNot = Nothing- , v1JSONSchemaPropsNullable = Nothing- , v1JSONSchemaPropsOneOf = Nothing- , v1JSONSchemaPropsPattern = Nothing- , v1JSONSchemaPropsPatternProperties = Nothing- , v1JSONSchemaPropsProperties = Nothing- , v1JSONSchemaPropsRequired = Nothing- , v1JSONSchemaPropsTitle = Nothing- , v1JSONSchemaPropsType = Nothing- , v1JSONSchemaPropsUniqueItems = Nothing- , v1JSONSchemaPropsXKubernetesEmbeddedResource = Nothing- , v1JSONSchemaPropsXKubernetesIntOrString = Nothing- , v1JSONSchemaPropsXKubernetesListMapKeys = Nothing- , v1JSONSchemaPropsXKubernetesListType = Nothing- , v1JSONSchemaPropsXKubernetesMapType = Nothing- , v1JSONSchemaPropsXKubernetesPreserveUnknownFields = Nothing- , v1JSONSchemaPropsXKubernetesValidations = Nothing- }---- ** V1Job--- | V1Job--- Job represents the configuration of a single job.-data V1Job = V1Job- { v1JobApiVersion :: !(Maybe Text) -- ^ "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- , v1JobKind :: !(Maybe Text) -- ^ "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- , v1JobMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1JobSpec :: !(Maybe V1JobSpec) -- ^ "spec"- , v1JobStatus :: !(Maybe V1JobStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Job-instance A.FromJSON V1Job where- parseJSON = A.withObject "V1Job" $ \o ->- V1Job- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1Job-instance A.ToJSON V1Job where- toJSON V1Job {..} =- _omitNulls- [ "apiVersion" .= v1JobApiVersion- , "kind" .= v1JobKind- , "metadata" .= v1JobMetadata- , "spec" .= v1JobSpec- , "status" .= v1JobStatus- ]----- | Construct a value of type 'V1Job' (by applying it's required fields, if any)-mkV1Job- :: V1Job-mkV1Job =- V1Job- { v1JobApiVersion = Nothing- , v1JobKind = Nothing- , v1JobMetadata = Nothing- , v1JobSpec = Nothing- , v1JobStatus = Nothing- }---- ** V1JobCondition--- | V1JobCondition--- JobCondition describes current state of a job.-data V1JobCondition = V1JobCondition- { v1JobConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - Last time the condition was checked.- , v1JobConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transit from one status to another.- , v1JobConditionMessage :: !(Maybe Text) -- ^ "message" - Human readable message indicating details about last transition.- , v1JobConditionReason :: !(Maybe Text) -- ^ "reason" - (brief) reason for the condition's last transition.- , v1JobConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1JobConditionType :: !(Text) -- ^ /Required/ "type" - Type of job condition, Complete or Failed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1JobCondition-instance A.FromJSON V1JobCondition where- parseJSON = A.withObject "V1JobCondition" $ \o ->- V1JobCondition- <$> (o .:? "lastProbeTime")- <*> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1JobCondition-instance A.ToJSON V1JobCondition where- toJSON V1JobCondition {..} =- _omitNulls- [ "lastProbeTime" .= v1JobConditionLastProbeTime- , "lastTransitionTime" .= v1JobConditionLastTransitionTime- , "message" .= v1JobConditionMessage- , "reason" .= v1JobConditionReason- , "status" .= v1JobConditionStatus- , "type" .= v1JobConditionType- ]----- | Construct a value of type 'V1JobCondition' (by applying it's required fields, if any)-mkV1JobCondition- :: Text -- ^ 'v1JobConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1JobConditionType': Type of job condition, Complete or Failed.- -> V1JobCondition-mkV1JobCondition v1JobConditionStatus v1JobConditionType =- V1JobCondition- { v1JobConditionLastProbeTime = Nothing- , v1JobConditionLastTransitionTime = Nothing- , v1JobConditionMessage = Nothing- , v1JobConditionReason = Nothing- , v1JobConditionStatus- , v1JobConditionType- }---- ** V1JobList--- | V1JobList--- JobList is a collection of jobs.-data V1JobList = V1JobList- { v1JobListApiVersion :: !(Maybe Text) -- ^ "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- , v1JobListItems :: !([V1Job]) -- ^ /Required/ "items" - items is the list of Jobs.- , v1JobListKind :: !(Maybe Text) -- ^ "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- , v1JobListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1JobList-instance A.FromJSON V1JobList where- parseJSON = A.withObject "V1JobList" $ \o ->- V1JobList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1JobList-instance A.ToJSON V1JobList where- toJSON V1JobList {..} =- _omitNulls- [ "apiVersion" .= v1JobListApiVersion- , "items" .= v1JobListItems- , "kind" .= v1JobListKind- , "metadata" .= v1JobListMetadata- ]----- | Construct a value of type 'V1JobList' (by applying it's required fields, if any)-mkV1JobList- :: [V1Job] -- ^ 'v1JobListItems': items is the list of Jobs.- -> V1JobList-mkV1JobList v1JobListItems =- V1JobList- { v1JobListApiVersion = Nothing- , v1JobListItems- , v1JobListKind = Nothing- , v1JobListMetadata = Nothing- }---- ** V1JobSpec--- | V1JobSpec--- JobSpec describes how the job execution will look like.-data V1JobSpec = V1JobSpec- { v1JobSpecActiveDeadlineSeconds :: !(Maybe Integer) -- ^ "activeDeadlineSeconds" - Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.- , v1JobSpecBackoffLimit :: !(Maybe Int) -- ^ "backoffLimit" - Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647.- , v1JobSpecBackoffLimitPerIndex :: !(Maybe Int) -- ^ "backoffLimitPerIndex" - Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable.- , v1JobSpecCompletionMode :: !(Maybe Text) -- ^ "completionMode" - completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.- , v1JobSpecCompletions :: !(Maybe 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/- , v1JobSpecManagedBy :: !(Maybe Text) -- ^ "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 beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default).- , v1JobSpecManualSelector :: !(Maybe Bool) -- ^ "manualSelector" - 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- , v1JobSpecMaxFailedIndexes :: !(Maybe Int) -- ^ "maxFailedIndexes" - 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.- , v1JobSpecParallelism :: !(Maybe 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/- , v1JobSpecPodFailurePolicy :: !(Maybe V1PodFailurePolicy) -- ^ "podFailurePolicy"- , v1JobSpecPodReplacementPolicy :: !(Maybe Text) -- ^ "podReplacementPolicy" - podReplacementPolicy specifies when to create replacement Pods. Possible values are: - TerminatingOrFailed means that we recreate pods when they are terminating (has a metadata.deletionTimestamp) or failed. - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use.- , v1JobSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"- , v1JobSpecSuccessPolicy :: !(Maybe V1SuccessPolicy) -- ^ "successPolicy"- , v1JobSpecSuspend :: !(Maybe Bool) -- ^ "suspend" - suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.- , v1JobSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"- , v1JobSpecTtlSecondsAfterFinished :: !(Maybe Int) -- ^ "ttlSecondsAfterFinished" - ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1JobSpec-instance A.FromJSON V1JobSpec where- parseJSON = A.withObject "V1JobSpec" $ \o ->- V1JobSpec- <$> (o .:? "activeDeadlineSeconds")- <*> (o .:? "backoffLimit")- <*> (o .:? "backoffLimitPerIndex")- <*> (o .:? "completionMode")- <*> (o .:? "completions")- <*> (o .:? "managedBy")- <*> (o .:? "manualSelector")- <*> (o .:? "maxFailedIndexes")- <*> (o .:? "parallelism")- <*> (o .:? "podFailurePolicy")- <*> (o .:? "podReplacementPolicy")- <*> (o .:? "selector")- <*> (o .:? "successPolicy")- <*> (o .:? "suspend")- <*> (o .: "template")- <*> (o .:? "ttlSecondsAfterFinished")---- | ToJSON V1JobSpec-instance A.ToJSON V1JobSpec where- toJSON V1JobSpec {..} =- _omitNulls- [ "activeDeadlineSeconds" .= v1JobSpecActiveDeadlineSeconds- , "backoffLimit" .= v1JobSpecBackoffLimit- , "backoffLimitPerIndex" .= v1JobSpecBackoffLimitPerIndex- , "completionMode" .= v1JobSpecCompletionMode- , "completions" .= v1JobSpecCompletions- , "managedBy" .= v1JobSpecManagedBy- , "manualSelector" .= v1JobSpecManualSelector- , "maxFailedIndexes" .= v1JobSpecMaxFailedIndexes- , "parallelism" .= v1JobSpecParallelism- , "podFailurePolicy" .= v1JobSpecPodFailurePolicy- , "podReplacementPolicy" .= v1JobSpecPodReplacementPolicy- , "selector" .= v1JobSpecSelector- , "successPolicy" .= v1JobSpecSuccessPolicy- , "suspend" .= v1JobSpecSuspend- , "template" .= v1JobSpecTemplate- , "ttlSecondsAfterFinished" .= v1JobSpecTtlSecondsAfterFinished- ]----- | Construct a value of type 'V1JobSpec' (by applying it's required fields, if any)-mkV1JobSpec- :: V1PodTemplateSpec -- ^ 'v1JobSpecTemplate' - -> V1JobSpec-mkV1JobSpec v1JobSpecTemplate =- V1JobSpec- { v1JobSpecActiveDeadlineSeconds = Nothing- , v1JobSpecBackoffLimit = Nothing- , v1JobSpecBackoffLimitPerIndex = Nothing- , v1JobSpecCompletionMode = Nothing- , v1JobSpecCompletions = Nothing- , v1JobSpecManagedBy = Nothing- , v1JobSpecManualSelector = Nothing- , v1JobSpecMaxFailedIndexes = Nothing- , v1JobSpecParallelism = Nothing- , v1JobSpecPodFailurePolicy = Nothing- , v1JobSpecPodReplacementPolicy = Nothing- , v1JobSpecSelector = Nothing- , v1JobSpecSuccessPolicy = Nothing- , v1JobSpecSuspend = Nothing- , v1JobSpecTemplate- , v1JobSpecTtlSecondsAfterFinished = Nothing- }---- ** V1JobStatus--- | V1JobStatus--- JobStatus represents the current state of a Job.-data V1JobStatus = V1JobStatus- { v1JobStatusActive :: !(Maybe Int) -- ^ "active" - The number of pending and running pods which are not terminating (without a deletionTimestamp). The value is zero for finished jobs.- , v1JobStatusCompletedIndexes :: !(Maybe Text) -- ^ "completedIndexes" - completedIndexes holds the completed indexes when .spec.completionMode = \"Indexed\" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\".- , v1JobStatusCompletionTime :: !(Maybe DateTime) -- ^ "completionTime" - Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is set when the job finishes successfully, and only then. The value cannot be updated or removed. The value indicates the same or later point in time as the startTime field.- , v1JobStatusConditions :: !(Maybe [V1JobCondition]) -- ^ "conditions" - The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true. A job is considered finished when it is in a terminal condition, either \"Complete\" or \"Failed\". A Job cannot have both the \"Complete\" and \"Failed\" conditions. Additionally, it cannot be in the \"Complete\" and \"FailureTarget\" conditions. The \"Complete\", \"Failed\" and \"FailureTarget\" conditions cannot be disabled. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/- , v1JobStatusFailed :: !(Maybe Int) -- ^ "failed" - The number of pods which reached phase Failed. The value increases monotonically.- , v1JobStatusFailedIndexes :: !(Maybe Text) -- ^ "failedIndexes" - FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". The set of failed indexes cannot overlap with the set of completed indexes.- , v1JobStatusReady :: !(Maybe Int) -- ^ "ready" - The number of active pods which have a Ready condition and are not terminating (without a deletionTimestamp).- , v1JobStatusStartTime :: !(Maybe DateTime) -- ^ "startTime" - Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC. Once set, the field can only be removed when the job is suspended. The field cannot be modified while the job is unsuspended or finished.- , v1JobStatusSucceeded :: !(Maybe Int) -- ^ "succeeded" - The number of pods which reached phase Succeeded. The value increases monotonically for a given spec. However, it may decrease in reaction to scale down of elastic indexed jobs.- , v1JobStatusTerminating :: !(Maybe Int) -- ^ "terminating" - The number of pods which are terminating (in phase Pending or Running and have a deletionTimestamp). This field is beta-level. The job controller populates the field when the feature gate JobPodReplacementPolicy is enabled (enabled by default).- , v1JobStatusUncountedTerminatedPods :: !(Maybe V1UncountedTerminatedPods) -- ^ "uncountedTerminatedPods"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1JobStatus-instance A.FromJSON V1JobStatus where- parseJSON = A.withObject "V1JobStatus" $ \o ->- V1JobStatus- <$> (o .:? "active")- <*> (o .:? "completedIndexes")- <*> (o .:? "completionTime")- <*> (o .:? "conditions")- <*> (o .:? "failed")- <*> (o .:? "failedIndexes")- <*> (o .:? "ready")- <*> (o .:? "startTime")- <*> (o .:? "succeeded")- <*> (o .:? "terminating")- <*> (o .:? "uncountedTerminatedPods")---- | ToJSON V1JobStatus-instance A.ToJSON V1JobStatus where- toJSON V1JobStatus {..} =- _omitNulls- [ "active" .= v1JobStatusActive- , "completedIndexes" .= v1JobStatusCompletedIndexes- , "completionTime" .= v1JobStatusCompletionTime- , "conditions" .= v1JobStatusConditions- , "failed" .= v1JobStatusFailed- , "failedIndexes" .= v1JobStatusFailedIndexes- , "ready" .= v1JobStatusReady- , "startTime" .= v1JobStatusStartTime- , "succeeded" .= v1JobStatusSucceeded- , "terminating" .= v1JobStatusTerminating- , "uncountedTerminatedPods" .= v1JobStatusUncountedTerminatedPods- ]----- | Construct a value of type 'V1JobStatus' (by applying it's required fields, if any)-mkV1JobStatus- :: V1JobStatus-mkV1JobStatus =- V1JobStatus- { v1JobStatusActive = Nothing- , v1JobStatusCompletedIndexes = Nothing- , v1JobStatusCompletionTime = Nothing- , v1JobStatusConditions = Nothing- , v1JobStatusFailed = Nothing- , v1JobStatusFailedIndexes = Nothing- , v1JobStatusReady = Nothing- , v1JobStatusStartTime = Nothing- , v1JobStatusSucceeded = Nothing- , v1JobStatusTerminating = Nothing- , v1JobStatusUncountedTerminatedPods = Nothing- }---- ** V1JobTemplateSpec--- | V1JobTemplateSpec--- JobTemplateSpec describes the data a Job should have when created from a template-data V1JobTemplateSpec = V1JobTemplateSpec- { v1JobTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1JobTemplateSpecSpec :: !(Maybe V1JobSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1JobTemplateSpec-instance A.FromJSON V1JobTemplateSpec where- parseJSON = A.withObject "V1JobTemplateSpec" $ \o ->- V1JobTemplateSpec- <$> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1JobTemplateSpec-instance A.ToJSON V1JobTemplateSpec where- toJSON V1JobTemplateSpec {..} =- _omitNulls- [ "metadata" .= v1JobTemplateSpecMetadata- , "spec" .= v1JobTemplateSpecSpec- ]----- | Construct a value of type 'V1JobTemplateSpec' (by applying it's required fields, if any)-mkV1JobTemplateSpec- :: V1JobTemplateSpec-mkV1JobTemplateSpec =- V1JobTemplateSpec- { v1JobTemplateSpecMetadata = Nothing- , v1JobTemplateSpecSpec = Nothing- }---- ** V1KeyToPath--- | V1KeyToPath--- Maps a string key to a path within a volume.-data V1KeyToPath = V1KeyToPath- { v1KeyToPathKey :: !(Text) -- ^ /Required/ "key" - key is the key to project.- , v1KeyToPathMode :: !(Maybe Int) -- ^ "mode" - mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.- , v1KeyToPathPath :: !(Text) -- ^ /Required/ "path" - path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1KeyToPath-instance A.FromJSON V1KeyToPath where- parseJSON = A.withObject "V1KeyToPath" $ \o ->- V1KeyToPath- <$> (o .: "key")- <*> (o .:? "mode")- <*> (o .: "path")---- | ToJSON V1KeyToPath-instance A.ToJSON V1KeyToPath where- toJSON V1KeyToPath {..} =- _omitNulls- [ "key" .= v1KeyToPathKey- , "mode" .= v1KeyToPathMode- , "path" .= v1KeyToPathPath- ]----- | Construct a value of type 'V1KeyToPath' (by applying it's required fields, if any)-mkV1KeyToPath- :: Text -- ^ 'v1KeyToPathKey': key is the key to project.- -> Text -- ^ 'v1KeyToPathPath': path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.- -> V1KeyToPath-mkV1KeyToPath v1KeyToPathKey v1KeyToPathPath =- V1KeyToPath- { v1KeyToPathKey- , v1KeyToPathMode = Nothing- , v1KeyToPathPath- }---- ** V1LabelSelector--- | V1LabelSelector--- A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.-data V1LabelSelector = V1LabelSelector- { v1LabelSelectorMatchExpressions :: !(Maybe [V1LabelSelectorRequirement]) -- ^ "matchExpressions" - matchExpressions is a list of label selector requirements. The requirements are ANDed.- , v1LabelSelectorMatchLabels :: !(Maybe (Map.Map String Text)) -- ^ "matchLabels" - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LabelSelector-instance A.FromJSON V1LabelSelector where- parseJSON = A.withObject "V1LabelSelector" $ \o ->- V1LabelSelector- <$> (o .:? "matchExpressions")- <*> (o .:? "matchLabels")---- | ToJSON V1LabelSelector-instance A.ToJSON V1LabelSelector where- toJSON V1LabelSelector {..} =- _omitNulls- [ "matchExpressions" .= v1LabelSelectorMatchExpressions- , "matchLabels" .= v1LabelSelectorMatchLabels- ]----- | Construct a value of type 'V1LabelSelector' (by applying it's required fields, if any)-mkV1LabelSelector- :: V1LabelSelector-mkV1LabelSelector =- V1LabelSelector- { v1LabelSelectorMatchExpressions = Nothing- , v1LabelSelectorMatchLabels = Nothing- }---- ** V1LabelSelectorAttributes--- | V1LabelSelectorAttributes--- LabelSelectorAttributes indicates a label limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.-data V1LabelSelectorAttributes = V1LabelSelectorAttributes- { v1LabelSelectorAttributesRawSelector :: !(Maybe Text) -- ^ "rawSelector" - rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.- , v1LabelSelectorAttributesRequirements :: !(Maybe [V1LabelSelectorRequirement]) -- ^ "requirements" - requirements is the parsed interpretation of a label selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LabelSelectorAttributes-instance A.FromJSON V1LabelSelectorAttributes where- parseJSON = A.withObject "V1LabelSelectorAttributes" $ \o ->- V1LabelSelectorAttributes- <$> (o .:? "rawSelector")- <*> (o .:? "requirements")---- | ToJSON V1LabelSelectorAttributes-instance A.ToJSON V1LabelSelectorAttributes where- toJSON V1LabelSelectorAttributes {..} =- _omitNulls- [ "rawSelector" .= v1LabelSelectorAttributesRawSelector- , "requirements" .= v1LabelSelectorAttributesRequirements- ]----- | Construct a value of type 'V1LabelSelectorAttributes' (by applying it's required fields, if any)-mkV1LabelSelectorAttributes- :: V1LabelSelectorAttributes-mkV1LabelSelectorAttributes =- V1LabelSelectorAttributes- { v1LabelSelectorAttributesRawSelector = Nothing- , v1LabelSelectorAttributesRequirements = Nothing- }---- ** V1LabelSelectorRequirement--- | V1LabelSelectorRequirement--- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.-data V1LabelSelectorRequirement = V1LabelSelectorRequirement- { v1LabelSelectorRequirementKey :: !(Text) -- ^ /Required/ "key" - key is the label key that the selector applies to.- , v1LabelSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.- , v1LabelSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LabelSelectorRequirement-instance A.FromJSON V1LabelSelectorRequirement where- parseJSON = A.withObject "V1LabelSelectorRequirement" $ \o ->- V1LabelSelectorRequirement- <$> (o .: "key")- <*> (o .: "operator")- <*> (o .:? "values")---- | ToJSON V1LabelSelectorRequirement-instance A.ToJSON V1LabelSelectorRequirement where- toJSON V1LabelSelectorRequirement {..} =- _omitNulls- [ "key" .= v1LabelSelectorRequirementKey- , "operator" .= v1LabelSelectorRequirementOperator- , "values" .= v1LabelSelectorRequirementValues- ]----- | Construct a value of type 'V1LabelSelectorRequirement' (by applying it's required fields, if any)-mkV1LabelSelectorRequirement- :: Text -- ^ 'v1LabelSelectorRequirementKey': key is the label key that the selector applies to.- -> Text -- ^ 'v1LabelSelectorRequirementOperator': operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.- -> V1LabelSelectorRequirement-mkV1LabelSelectorRequirement v1LabelSelectorRequirementKey v1LabelSelectorRequirementOperator =- V1LabelSelectorRequirement- { v1LabelSelectorRequirementKey- , v1LabelSelectorRequirementOperator- , v1LabelSelectorRequirementValues = Nothing- }---- ** V1Lease--- | V1Lease--- Lease defines a lease concept.-data V1Lease = V1Lease- { v1LeaseApiVersion :: !(Maybe Text) -- ^ "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- , v1LeaseKind :: !(Maybe Text) -- ^ "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- , v1LeaseMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1LeaseSpec :: !(Maybe V1LeaseSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Lease-instance A.FromJSON V1Lease where- parseJSON = A.withObject "V1Lease" $ \o ->- V1Lease- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1Lease-instance A.ToJSON V1Lease where- toJSON V1Lease {..} =- _omitNulls- [ "apiVersion" .= v1LeaseApiVersion- , "kind" .= v1LeaseKind- , "metadata" .= v1LeaseMetadata- , "spec" .= v1LeaseSpec- ]----- | Construct a value of type 'V1Lease' (by applying it's required fields, if any)-mkV1Lease- :: V1Lease-mkV1Lease =- V1Lease- { v1LeaseApiVersion = Nothing- , v1LeaseKind = Nothing- , v1LeaseMetadata = Nothing- , v1LeaseSpec = Nothing- }---- ** V1LeaseList--- | V1LeaseList--- LeaseList is a list of Lease objects.-data V1LeaseList = V1LeaseList- { v1LeaseListApiVersion :: !(Maybe Text) -- ^ "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- , v1LeaseListItems :: !([V1Lease]) -- ^ /Required/ "items" - items is a list of schema objects.- , v1LeaseListKind :: !(Maybe Text) -- ^ "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- , v1LeaseListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LeaseList-instance A.FromJSON V1LeaseList where- parseJSON = A.withObject "V1LeaseList" $ \o ->- V1LeaseList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1LeaseList-instance A.ToJSON V1LeaseList where- toJSON V1LeaseList {..} =- _omitNulls- [ "apiVersion" .= v1LeaseListApiVersion- , "items" .= v1LeaseListItems- , "kind" .= v1LeaseListKind- , "metadata" .= v1LeaseListMetadata- ]----- | Construct a value of type 'V1LeaseList' (by applying it's required fields, if any)-mkV1LeaseList- :: [V1Lease] -- ^ 'v1LeaseListItems': items is a list of schema objects.- -> V1LeaseList-mkV1LeaseList v1LeaseListItems =- V1LeaseList- { v1LeaseListApiVersion = Nothing- , v1LeaseListItems- , v1LeaseListKind = Nothing- , v1LeaseListMetadata = Nothing- }---- ** V1LeaseSpec--- | V1LeaseSpec--- LeaseSpec is a specification of a Lease.-data V1LeaseSpec = V1LeaseSpec- { v1LeaseSpecAcquireTime :: !(Maybe DateTime) -- ^ "acquireTime" - acquireTime is a time when the current lease was acquired.- , v1LeaseSpecHolderIdentity :: !(Maybe Text) -- ^ "holderIdentity" - holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.- , v1LeaseSpecLeaseDurationSeconds :: !(Maybe Int) -- ^ "leaseDurationSeconds" - leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.- , v1LeaseSpecLeaseTransitions :: !(Maybe Int) -- ^ "leaseTransitions" - leaseTransitions is the number of transitions of a lease between holders.- , v1LeaseSpecPreferredHolder :: !(Maybe Text) -- ^ "preferredHolder" - PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.- , v1LeaseSpecRenewTime :: !(Maybe DateTime) -- ^ "renewTime" - renewTime is a time when the current holder of a lease has last updated the lease.- , v1LeaseSpecStrategy :: !(Maybe Text) -- ^ "strategy" - Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LeaseSpec-instance A.FromJSON V1LeaseSpec where- parseJSON = A.withObject "V1LeaseSpec" $ \o ->- V1LeaseSpec- <$> (o .:? "acquireTime")- <*> (o .:? "holderIdentity")- <*> (o .:? "leaseDurationSeconds")- <*> (o .:? "leaseTransitions")- <*> (o .:? "preferredHolder")- <*> (o .:? "renewTime")- <*> (o .:? "strategy")---- | ToJSON V1LeaseSpec-instance A.ToJSON V1LeaseSpec where- toJSON V1LeaseSpec {..} =- _omitNulls- [ "acquireTime" .= v1LeaseSpecAcquireTime- , "holderIdentity" .= v1LeaseSpecHolderIdentity- , "leaseDurationSeconds" .= v1LeaseSpecLeaseDurationSeconds- , "leaseTransitions" .= v1LeaseSpecLeaseTransitions- , "preferredHolder" .= v1LeaseSpecPreferredHolder- , "renewTime" .= v1LeaseSpecRenewTime- , "strategy" .= v1LeaseSpecStrategy- ]----- | Construct a value of type 'V1LeaseSpec' (by applying it's required fields, if any)-mkV1LeaseSpec- :: V1LeaseSpec-mkV1LeaseSpec =- V1LeaseSpec- { v1LeaseSpecAcquireTime = Nothing- , v1LeaseSpecHolderIdentity = Nothing- , v1LeaseSpecLeaseDurationSeconds = Nothing- , v1LeaseSpecLeaseTransitions = Nothing- , v1LeaseSpecPreferredHolder = Nothing- , v1LeaseSpecRenewTime = Nothing- , v1LeaseSpecStrategy = Nothing- }---- ** V1Lifecycle--- | V1Lifecycle--- Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.-data V1Lifecycle = V1Lifecycle- { v1LifecyclePostStart :: !(Maybe V1LifecycleHandler) -- ^ "postStart"- , v1LifecyclePreStop :: !(Maybe V1LifecycleHandler) -- ^ "preStop"- , v1LifecycleStopSignal :: !(Maybe Text) -- ^ "stopSignal" - StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Lifecycle-instance A.FromJSON V1Lifecycle where- parseJSON = A.withObject "V1Lifecycle" $ \o ->- V1Lifecycle- <$> (o .:? "postStart")- <*> (o .:? "preStop")- <*> (o .:? "stopSignal")---- | ToJSON V1Lifecycle-instance A.ToJSON V1Lifecycle where- toJSON V1Lifecycle {..} =- _omitNulls- [ "postStart" .= v1LifecyclePostStart- , "preStop" .= v1LifecyclePreStop- , "stopSignal" .= v1LifecycleStopSignal- ]----- | Construct a value of type 'V1Lifecycle' (by applying it's required fields, if any)-mkV1Lifecycle- :: V1Lifecycle-mkV1Lifecycle =- V1Lifecycle- { v1LifecyclePostStart = Nothing- , v1LifecyclePreStop = Nothing- , v1LifecycleStopSignal = Nothing- }---- ** V1LifecycleHandler--- | V1LifecycleHandler--- 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.-data V1LifecycleHandler = V1LifecycleHandler- { v1LifecycleHandlerExec :: !(Maybe V1ExecAction) -- ^ "exec"- , v1LifecycleHandlerHttpGet :: !(Maybe V1HTTPGetAction) -- ^ "httpGet"- , v1LifecycleHandlerSleep :: !(Maybe V1SleepAction) -- ^ "sleep"- , v1LifecycleHandlerTcpSocket :: !(Maybe V1TCPSocketAction) -- ^ "tcpSocket"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LifecycleHandler-instance A.FromJSON V1LifecycleHandler where- parseJSON = A.withObject "V1LifecycleHandler" $ \o ->- V1LifecycleHandler- <$> (o .:? "exec")- <*> (o .:? "httpGet")- <*> (o .:? "sleep")- <*> (o .:? "tcpSocket")---- | ToJSON V1LifecycleHandler-instance A.ToJSON V1LifecycleHandler where- toJSON V1LifecycleHandler {..} =- _omitNulls- [ "exec" .= v1LifecycleHandlerExec- , "httpGet" .= v1LifecycleHandlerHttpGet- , "sleep" .= v1LifecycleHandlerSleep- , "tcpSocket" .= v1LifecycleHandlerTcpSocket- ]----- | Construct a value of type 'V1LifecycleHandler' (by applying it's required fields, if any)-mkV1LifecycleHandler- :: V1LifecycleHandler-mkV1LifecycleHandler =- V1LifecycleHandler- { v1LifecycleHandlerExec = Nothing- , v1LifecycleHandlerHttpGet = Nothing- , v1LifecycleHandlerSleep = Nothing- , v1LifecycleHandlerTcpSocket = Nothing- }---- ** V1LimitRange--- | V1LimitRange--- LimitRange sets resource usage limits for each kind of resource in a Namespace.-data V1LimitRange = V1LimitRange- { v1LimitRangeApiVersion :: !(Maybe Text) -- ^ "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- , v1LimitRangeKind :: !(Maybe Text) -- ^ "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- , v1LimitRangeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1LimitRangeSpec :: !(Maybe V1LimitRangeSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LimitRange-instance A.FromJSON V1LimitRange where- parseJSON = A.withObject "V1LimitRange" $ \o ->- V1LimitRange- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1LimitRange-instance A.ToJSON V1LimitRange where- toJSON V1LimitRange {..} =- _omitNulls- [ "apiVersion" .= v1LimitRangeApiVersion- , "kind" .= v1LimitRangeKind- , "metadata" .= v1LimitRangeMetadata- , "spec" .= v1LimitRangeSpec- ]----- | Construct a value of type 'V1LimitRange' (by applying it's required fields, if any)-mkV1LimitRange- :: V1LimitRange-mkV1LimitRange =- V1LimitRange- { v1LimitRangeApiVersion = Nothing- , v1LimitRangeKind = Nothing- , v1LimitRangeMetadata = Nothing- , v1LimitRangeSpec = Nothing- }---- ** V1LimitRangeItem--- | V1LimitRangeItem--- LimitRangeItem defines a min/max usage limit for any resource that matches on kind.-data V1LimitRangeItem = V1LimitRangeItem- { v1LimitRangeItemDefault :: !(Maybe (Map.Map String Quantity)) -- ^ "default" - Default resource requirement limit value by resource name if resource limit is omitted.- , v1LimitRangeItemDefaultRequest :: !(Maybe (Map.Map String Quantity)) -- ^ "defaultRequest" - DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.- , v1LimitRangeItemMax :: !(Maybe (Map.Map String Quantity)) -- ^ "max" - Max usage constraints on this kind by resource name.- , v1LimitRangeItemMaxLimitRequestRatio :: !(Maybe (Map.Map String Quantity)) -- ^ "maxLimitRequestRatio" - MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.- , v1LimitRangeItemMin :: !(Maybe (Map.Map String Quantity)) -- ^ "min" - Min usage constraints on this kind by resource name.- , v1LimitRangeItemType :: !(Text) -- ^ /Required/ "type" - Type of resource that this limit applies to.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LimitRangeItem-instance A.FromJSON V1LimitRangeItem where- parseJSON = A.withObject "V1LimitRangeItem" $ \o ->- V1LimitRangeItem- <$> (o .:? "default")- <*> (o .:? "defaultRequest")- <*> (o .:? "max")- <*> (o .:? "maxLimitRequestRatio")- <*> (o .:? "min")- <*> (o .: "type")---- | ToJSON V1LimitRangeItem-instance A.ToJSON V1LimitRangeItem where- toJSON V1LimitRangeItem {..} =- _omitNulls- [ "default" .= v1LimitRangeItemDefault- , "defaultRequest" .= v1LimitRangeItemDefaultRequest- , "max" .= v1LimitRangeItemMax- , "maxLimitRequestRatio" .= v1LimitRangeItemMaxLimitRequestRatio- , "min" .= v1LimitRangeItemMin- , "type" .= v1LimitRangeItemType- ]----- | Construct a value of type 'V1LimitRangeItem' (by applying it's required fields, if any)-mkV1LimitRangeItem- :: Text -- ^ 'v1LimitRangeItemType': Type of resource that this limit applies to.- -> V1LimitRangeItem-mkV1LimitRangeItem v1LimitRangeItemType =- V1LimitRangeItem- { v1LimitRangeItemDefault = Nothing- , v1LimitRangeItemDefaultRequest = Nothing- , v1LimitRangeItemMax = Nothing- , v1LimitRangeItemMaxLimitRequestRatio = Nothing- , v1LimitRangeItemMin = Nothing- , v1LimitRangeItemType- }---- ** V1LimitRangeList--- | V1LimitRangeList--- LimitRangeList is a list of LimitRange items.-data V1LimitRangeList = V1LimitRangeList- { v1LimitRangeListApiVersion :: !(Maybe Text) -- ^ "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- , v1LimitRangeListItems :: !([V1LimitRange]) -- ^ /Required/ "items" - Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/- , v1LimitRangeListKind :: !(Maybe Text) -- ^ "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- , v1LimitRangeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LimitRangeList-instance A.FromJSON V1LimitRangeList where- parseJSON = A.withObject "V1LimitRangeList" $ \o ->- V1LimitRangeList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1LimitRangeList-instance A.ToJSON V1LimitRangeList where- toJSON V1LimitRangeList {..} =- _omitNulls- [ "apiVersion" .= v1LimitRangeListApiVersion- , "items" .= v1LimitRangeListItems- , "kind" .= v1LimitRangeListKind- , "metadata" .= v1LimitRangeListMetadata- ]----- | Construct a value of type 'V1LimitRangeList' (by applying it's required fields, if any)-mkV1LimitRangeList- :: [V1LimitRange] -- ^ 'v1LimitRangeListItems': Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/- -> V1LimitRangeList-mkV1LimitRangeList v1LimitRangeListItems =- V1LimitRangeList- { v1LimitRangeListApiVersion = Nothing- , v1LimitRangeListItems- , v1LimitRangeListKind = Nothing- , v1LimitRangeListMetadata = Nothing- }---- ** V1LimitRangeSpec--- | V1LimitRangeSpec--- LimitRangeSpec defines a min/max usage limit for resources that match on kind.-data V1LimitRangeSpec = V1LimitRangeSpec- { v1LimitRangeSpecLimits :: !([V1LimitRangeItem]) -- ^ /Required/ "limits" - Limits is the list of LimitRangeItem objects that are enforced.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LimitRangeSpec-instance A.FromJSON V1LimitRangeSpec where- parseJSON = A.withObject "V1LimitRangeSpec" $ \o ->- V1LimitRangeSpec- <$> (o .: "limits")---- | ToJSON V1LimitRangeSpec-instance A.ToJSON V1LimitRangeSpec where- toJSON V1LimitRangeSpec {..} =- _omitNulls- [ "limits" .= v1LimitRangeSpecLimits- ]----- | Construct a value of type 'V1LimitRangeSpec' (by applying it's required fields, if any)-mkV1LimitRangeSpec- :: [V1LimitRangeItem] -- ^ 'v1LimitRangeSpecLimits': Limits is the list of LimitRangeItem objects that are enforced.- -> V1LimitRangeSpec-mkV1LimitRangeSpec v1LimitRangeSpecLimits =- V1LimitRangeSpec- { v1LimitRangeSpecLimits- }---- ** V1LimitResponse--- | V1LimitResponse--- LimitResponse defines how to handle requests that can not be executed right now.-data V1LimitResponse = V1LimitResponse- { v1LimitResponseQueuing :: !(Maybe V1QueuingConfiguration) -- ^ "queuing"- , v1LimitResponseType :: !(Text) -- ^ /Required/ "type" - `type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LimitResponse-instance A.FromJSON V1LimitResponse where- parseJSON = A.withObject "V1LimitResponse" $ \o ->- V1LimitResponse- <$> (o .:? "queuing")- <*> (o .: "type")---- | ToJSON V1LimitResponse-instance A.ToJSON V1LimitResponse where- toJSON V1LimitResponse {..} =- _omitNulls- [ "queuing" .= v1LimitResponseQueuing- , "type" .= v1LimitResponseType- ]----- | Construct a value of type 'V1LimitResponse' (by applying it's required fields, if any)-mkV1LimitResponse- :: Text -- ^ 'v1LimitResponseType': `type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.- -> V1LimitResponse-mkV1LimitResponse v1LimitResponseType =- V1LimitResponse- { v1LimitResponseQueuing = Nothing- , v1LimitResponseType- }---- ** V1LimitedPriorityLevelConfiguration--- | V1LimitedPriorityLevelConfiguration--- LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues: - How are requests for this priority level limited? - What should be done with requests that exceed the limit?-data V1LimitedPriorityLevelConfiguration = V1LimitedPriorityLevelConfiguration- { v1LimitedPriorityLevelConfigurationBorrowingLimitPercent :: !(Maybe Int) -- ^ "borrowingLimitPercent" - `borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows. BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 ) The value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.- , v1LimitedPriorityLevelConfigurationLendablePercent :: !(Maybe Int) -- ^ "lendablePercent" - `lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows. LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )- , v1LimitedPriorityLevelConfigurationLimitResponse :: !(Maybe V1LimitResponse) -- ^ "limitResponse"- , v1LimitedPriorityLevelConfigurationNominalConcurrencyShares :: !(Maybe Int) -- ^ "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) Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. If not specified, this field defaults to a value of 30. Setting this field to zero supports the construction of a \"jail\" for this priority level that is used to hold some request(s)- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LimitedPriorityLevelConfiguration-instance A.FromJSON V1LimitedPriorityLevelConfiguration where- parseJSON = A.withObject "V1LimitedPriorityLevelConfiguration" $ \o ->- V1LimitedPriorityLevelConfiguration- <$> (o .:? "borrowingLimitPercent")- <*> (o .:? "lendablePercent")- <*> (o .:? "limitResponse")- <*> (o .:? "nominalConcurrencyShares")---- | ToJSON V1LimitedPriorityLevelConfiguration-instance A.ToJSON V1LimitedPriorityLevelConfiguration where- toJSON V1LimitedPriorityLevelConfiguration {..} =- _omitNulls- [ "borrowingLimitPercent" .= v1LimitedPriorityLevelConfigurationBorrowingLimitPercent- , "lendablePercent" .= v1LimitedPriorityLevelConfigurationLendablePercent- , "limitResponse" .= v1LimitedPriorityLevelConfigurationLimitResponse- , "nominalConcurrencyShares" .= v1LimitedPriorityLevelConfigurationNominalConcurrencyShares- ]----- | Construct a value of type 'V1LimitedPriorityLevelConfiguration' (by applying it's required fields, if any)-mkV1LimitedPriorityLevelConfiguration- :: V1LimitedPriorityLevelConfiguration-mkV1LimitedPriorityLevelConfiguration =- V1LimitedPriorityLevelConfiguration- { v1LimitedPriorityLevelConfigurationBorrowingLimitPercent = Nothing- , v1LimitedPriorityLevelConfigurationLendablePercent = Nothing- , v1LimitedPriorityLevelConfigurationLimitResponse = Nothing- , v1LimitedPriorityLevelConfigurationNominalConcurrencyShares = Nothing- }---- ** V1LinuxContainerUser--- | V1LinuxContainerUser--- LinuxContainerUser represents user identity information in Linux containers-data V1LinuxContainerUser = V1LinuxContainerUser- { v1LinuxContainerUserGid :: !(Integer) -- ^ /Required/ "gid" - GID is the primary gid initially attached to the first process in the container- , v1LinuxContainerUserSupplementalGroups :: !(Maybe [Integer]) -- ^ "supplementalGroups" - SupplementalGroups are the supplemental groups initially attached to the first process in the container- , v1LinuxContainerUserUid :: !(Integer) -- ^ /Required/ "uid" - UID is the primary uid initially attached to the first process in the container- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LinuxContainerUser-instance A.FromJSON V1LinuxContainerUser where- parseJSON = A.withObject "V1LinuxContainerUser" $ \o ->- V1LinuxContainerUser- <$> (o .: "gid")- <*> (o .:? "supplementalGroups")- <*> (o .: "uid")---- | ToJSON V1LinuxContainerUser-instance A.ToJSON V1LinuxContainerUser where- toJSON V1LinuxContainerUser {..} =- _omitNulls- [ "gid" .= v1LinuxContainerUserGid- , "supplementalGroups" .= v1LinuxContainerUserSupplementalGroups- , "uid" .= v1LinuxContainerUserUid- ]----- | Construct a value of type 'V1LinuxContainerUser' (by applying it's required fields, if any)-mkV1LinuxContainerUser- :: Integer -- ^ 'v1LinuxContainerUserGid': GID is the primary gid initially attached to the first process in the container- -> Integer -- ^ 'v1LinuxContainerUserUid': UID is the primary uid initially attached to the first process in the container- -> V1LinuxContainerUser-mkV1LinuxContainerUser v1LinuxContainerUserGid v1LinuxContainerUserUid =- V1LinuxContainerUser- { v1LinuxContainerUserGid- , v1LinuxContainerUserSupplementalGroups = Nothing- , v1LinuxContainerUserUid- }---- ** V1ListMeta--- | V1ListMeta--- ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.-data V1ListMeta = V1ListMeta- { v1ListMetaContinue :: !(Maybe Text) -- ^ "continue" - continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.- , v1ListMetaRemainingItemCount :: !(Maybe Integer) -- ^ "remainingItemCount" - remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.- , v1ListMetaResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency- , v1ListMetaSelfLink :: !(Maybe Text) -- ^ "selfLink" - Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ListMeta-instance A.FromJSON V1ListMeta where- parseJSON = A.withObject "V1ListMeta" $ \o ->- V1ListMeta- <$> (o .:? "continue")- <*> (o .:? "remainingItemCount")- <*> (o .:? "resourceVersion")- <*> (o .:? "selfLink")---- | ToJSON V1ListMeta-instance A.ToJSON V1ListMeta where- toJSON V1ListMeta {..} =- _omitNulls- [ "continue" .= v1ListMetaContinue- , "remainingItemCount" .= v1ListMetaRemainingItemCount- , "resourceVersion" .= v1ListMetaResourceVersion- , "selfLink" .= v1ListMetaSelfLink- ]----- | Construct a value of type 'V1ListMeta' (by applying it's required fields, if any)-mkV1ListMeta- :: V1ListMeta-mkV1ListMeta =- V1ListMeta- { v1ListMetaContinue = Nothing- , v1ListMetaRemainingItemCount = Nothing- , v1ListMetaResourceVersion = Nothing- , v1ListMetaSelfLink = Nothing- }---- ** V1LoadBalancerIngress--- | V1LoadBalancerIngress--- LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.-data V1LoadBalancerIngress = V1LoadBalancerIngress- { v1LoadBalancerIngressHostname :: !(Maybe Text) -- ^ "hostname" - Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)- , v1LoadBalancerIngressIp :: !(Maybe Text) -- ^ "ip" - IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)- , v1LoadBalancerIngressIpMode :: !(Maybe Text) -- ^ "ipMode" - IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to \"VIP\" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to \"Proxy\" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing.- , v1LoadBalancerIngressPorts :: !(Maybe [V1PortStatus]) -- ^ "ports" - Ports is a list of records of service ports If used, every port defined in the service should have an entry in it- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LoadBalancerIngress-instance A.FromJSON V1LoadBalancerIngress where- parseJSON = A.withObject "V1LoadBalancerIngress" $ \o ->- V1LoadBalancerIngress- <$> (o .:? "hostname")- <*> (o .:? "ip")- <*> (o .:? "ipMode")- <*> (o .:? "ports")---- | ToJSON V1LoadBalancerIngress-instance A.ToJSON V1LoadBalancerIngress where- toJSON V1LoadBalancerIngress {..} =- _omitNulls- [ "hostname" .= v1LoadBalancerIngressHostname- , "ip" .= v1LoadBalancerIngressIp- , "ipMode" .= v1LoadBalancerIngressIpMode- , "ports" .= v1LoadBalancerIngressPorts- ]----- | Construct a value of type 'V1LoadBalancerIngress' (by applying it's required fields, if any)-mkV1LoadBalancerIngress- :: V1LoadBalancerIngress-mkV1LoadBalancerIngress =- V1LoadBalancerIngress- { v1LoadBalancerIngressHostname = Nothing- , v1LoadBalancerIngressIp = Nothing- , v1LoadBalancerIngressIpMode = Nothing- , v1LoadBalancerIngressPorts = Nothing- }---- ** V1LoadBalancerStatus--- | V1LoadBalancerStatus--- LoadBalancerStatus represents the status of a load-balancer.-data V1LoadBalancerStatus = V1LoadBalancerStatus- { v1LoadBalancerStatusIngress :: !(Maybe [V1LoadBalancerIngress]) -- ^ "ingress" - Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LoadBalancerStatus-instance A.FromJSON V1LoadBalancerStatus where- parseJSON = A.withObject "V1LoadBalancerStatus" $ \o ->- V1LoadBalancerStatus- <$> (o .:? "ingress")---- | ToJSON V1LoadBalancerStatus-instance A.ToJSON V1LoadBalancerStatus where- toJSON V1LoadBalancerStatus {..} =- _omitNulls- [ "ingress" .= v1LoadBalancerStatusIngress- ]----- | Construct a value of type 'V1LoadBalancerStatus' (by applying it's required fields, if any)-mkV1LoadBalancerStatus- :: V1LoadBalancerStatus-mkV1LoadBalancerStatus =- V1LoadBalancerStatus- { v1LoadBalancerStatusIngress = Nothing- }---- ** V1LocalObjectReference--- | V1LocalObjectReference--- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.-data V1LocalObjectReference = V1LocalObjectReference- { v1LocalObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LocalObjectReference-instance A.FromJSON V1LocalObjectReference where- parseJSON = A.withObject "V1LocalObjectReference" $ \o ->- V1LocalObjectReference- <$> (o .:? "name")---- | ToJSON V1LocalObjectReference-instance A.ToJSON V1LocalObjectReference where- toJSON V1LocalObjectReference {..} =- _omitNulls- [ "name" .= v1LocalObjectReferenceName- ]----- | Construct a value of type 'V1LocalObjectReference' (by applying it's required fields, if any)-mkV1LocalObjectReference- :: V1LocalObjectReference-mkV1LocalObjectReference =- V1LocalObjectReference- { v1LocalObjectReferenceName = Nothing- }---- ** V1LocalSubjectAccessReview--- | V1LocalSubjectAccessReview--- LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.-data V1LocalSubjectAccessReview = V1LocalSubjectAccessReview- { v1LocalSubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "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- , v1LocalSubjectAccessReviewKind :: !(Maybe Text) -- ^ "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- , v1LocalSubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1LocalSubjectAccessReviewSpec :: !(V1SubjectAccessReviewSpec) -- ^ /Required/ "spec"- , v1LocalSubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LocalSubjectAccessReview-instance A.FromJSON V1LocalSubjectAccessReview where- parseJSON = A.withObject "V1LocalSubjectAccessReview" $ \o ->- V1LocalSubjectAccessReview- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1LocalSubjectAccessReview-instance A.ToJSON V1LocalSubjectAccessReview where- toJSON V1LocalSubjectAccessReview {..} =- _omitNulls- [ "apiVersion" .= v1LocalSubjectAccessReviewApiVersion- , "kind" .= v1LocalSubjectAccessReviewKind- , "metadata" .= v1LocalSubjectAccessReviewMetadata- , "spec" .= v1LocalSubjectAccessReviewSpec- , "status" .= v1LocalSubjectAccessReviewStatus- ]----- | Construct a value of type 'V1LocalSubjectAccessReview' (by applying it's required fields, if any)-mkV1LocalSubjectAccessReview- :: V1SubjectAccessReviewSpec -- ^ 'v1LocalSubjectAccessReviewSpec' - -> V1LocalSubjectAccessReview-mkV1LocalSubjectAccessReview v1LocalSubjectAccessReviewSpec =- V1LocalSubjectAccessReview- { v1LocalSubjectAccessReviewApiVersion = Nothing- , v1LocalSubjectAccessReviewKind = Nothing- , v1LocalSubjectAccessReviewMetadata = Nothing- , v1LocalSubjectAccessReviewSpec- , v1LocalSubjectAccessReviewStatus = Nothing- }---- ** V1LocalVolumeSource--- | V1LocalVolumeSource--- Local represents directly-attached storage with node affinity-data V1LocalVolumeSource = V1LocalVolumeSource- { v1LocalVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - 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.- , v1LocalVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1LocalVolumeSource-instance A.FromJSON V1LocalVolumeSource where- parseJSON = A.withObject "V1LocalVolumeSource" $ \o ->- V1LocalVolumeSource- <$> (o .:? "fsType")- <*> (o .: "path")---- | ToJSON V1LocalVolumeSource-instance A.ToJSON V1LocalVolumeSource where- toJSON V1LocalVolumeSource {..} =- _omitNulls- [ "fsType" .= v1LocalVolumeSourceFsType- , "path" .= v1LocalVolumeSourcePath- ]----- | Construct a value of type 'V1LocalVolumeSource' (by applying it's required fields, if any)-mkV1LocalVolumeSource- :: Text -- ^ 'v1LocalVolumeSourcePath': path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).- -> V1LocalVolumeSource-mkV1LocalVolumeSource v1LocalVolumeSourcePath =- V1LocalVolumeSource- { v1LocalVolumeSourceFsType = Nothing- , v1LocalVolumeSourcePath- }---- ** V1ManagedFieldsEntry--- | V1ManagedFieldsEntry--- ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.-data V1ManagedFieldsEntry = V1ManagedFieldsEntry- { v1ManagedFieldsEntryApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.- , v1ManagedFieldsEntryFieldsType :: !(Maybe Text) -- ^ "fieldsType" - FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"- , v1ManagedFieldsEntryFieldsV1 :: !(Maybe A.Value) -- ^ "fieldsV1" - FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.- , v1ManagedFieldsEntryManager :: !(Maybe Text) -- ^ "manager" - Manager is an identifier of the workflow managing these fields.- , v1ManagedFieldsEntryOperation :: !(Maybe Text) -- ^ "operation" - Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.- , v1ManagedFieldsEntrySubresource :: !(Maybe Text) -- ^ "subresource" - Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.- , v1ManagedFieldsEntryTime :: !(Maybe DateTime) -- ^ "time" - Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ManagedFieldsEntry-instance A.FromJSON V1ManagedFieldsEntry where- parseJSON = A.withObject "V1ManagedFieldsEntry" $ \o ->- V1ManagedFieldsEntry- <$> (o .:? "apiVersion")- <*> (o .:? "fieldsType")- <*> (o .:? "fieldsV1")- <*> (o .:? "manager")- <*> (o .:? "operation")- <*> (o .:? "subresource")- <*> (o .:? "time")---- | ToJSON V1ManagedFieldsEntry-instance A.ToJSON V1ManagedFieldsEntry where- toJSON V1ManagedFieldsEntry {..} =- _omitNulls- [ "apiVersion" .= v1ManagedFieldsEntryApiVersion- , "fieldsType" .= v1ManagedFieldsEntryFieldsType- , "fieldsV1" .= v1ManagedFieldsEntryFieldsV1- , "manager" .= v1ManagedFieldsEntryManager- , "operation" .= v1ManagedFieldsEntryOperation- , "subresource" .= v1ManagedFieldsEntrySubresource- , "time" .= v1ManagedFieldsEntryTime- ]----- | Construct a value of type 'V1ManagedFieldsEntry' (by applying it's required fields, if any)-mkV1ManagedFieldsEntry- :: V1ManagedFieldsEntry-mkV1ManagedFieldsEntry =- V1ManagedFieldsEntry- { v1ManagedFieldsEntryApiVersion = Nothing- , v1ManagedFieldsEntryFieldsType = Nothing- , v1ManagedFieldsEntryFieldsV1 = Nothing- , v1ManagedFieldsEntryManager = Nothing- , v1ManagedFieldsEntryOperation = Nothing- , v1ManagedFieldsEntrySubresource = Nothing- , v1ManagedFieldsEntryTime = Nothing- }---- ** V1MatchCondition--- | V1MatchCondition--- MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.-data V1MatchCondition = V1MatchCondition- { v1MatchConditionExpression :: !(Text) -- ^ /Required/ "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.- , v1MatchConditionName :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1MatchCondition-instance A.FromJSON V1MatchCondition where- parseJSON = A.withObject "V1MatchCondition" $ \o ->- V1MatchCondition- <$> (o .: "expression")- <*> (o .: "name")---- | ToJSON V1MatchCondition-instance A.ToJSON V1MatchCondition where- toJSON V1MatchCondition {..} =- _omitNulls- [ "expression" .= v1MatchConditionExpression- , "name" .= v1MatchConditionName- ]----- | Construct a value of type 'V1MatchCondition' (by applying it's required fields, if any)-mkV1MatchCondition- :: Text -- ^ 'v1MatchConditionExpression': 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.- -> Text -- ^ 'v1MatchConditionName': 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.- -> V1MatchCondition-mkV1MatchCondition v1MatchConditionExpression v1MatchConditionName =- V1MatchCondition- { v1MatchConditionExpression- , v1MatchConditionName- }---- ** V1MatchResources--- | V1MatchResources--- 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)-data V1MatchResources = V1MatchResources- { v1MatchResourcesExcludeResourceRules :: !(Maybe [V1NamedRuleWithOperations]) -- ^ "excludeResourceRules" - 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)- , v1MatchResourcesMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - 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\"- , v1MatchResourcesNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"- , v1MatchResourcesObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"- , v1MatchResourcesResourceRules :: !(Maybe [V1NamedRuleWithOperations]) -- ^ "resourceRules" - ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1MatchResources-instance A.FromJSON V1MatchResources where- parseJSON = A.withObject "V1MatchResources" $ \o ->- V1MatchResources- <$> (o .:? "excludeResourceRules")- <*> (o .:? "matchPolicy")- <*> (o .:? "namespaceSelector")- <*> (o .:? "objectSelector")- <*> (o .:? "resourceRules")---- | ToJSON V1MatchResources-instance A.ToJSON V1MatchResources where- toJSON V1MatchResources {..} =- _omitNulls- [ "excludeResourceRules" .= v1MatchResourcesExcludeResourceRules- , "matchPolicy" .= v1MatchResourcesMatchPolicy- , "namespaceSelector" .= v1MatchResourcesNamespaceSelector- , "objectSelector" .= v1MatchResourcesObjectSelector- , "resourceRules" .= v1MatchResourcesResourceRules- ]----- | Construct a value of type 'V1MatchResources' (by applying it's required fields, if any)-mkV1MatchResources- :: V1MatchResources-mkV1MatchResources =- V1MatchResources- { v1MatchResourcesExcludeResourceRules = Nothing- , v1MatchResourcesMatchPolicy = Nothing- , v1MatchResourcesNamespaceSelector = Nothing- , v1MatchResourcesObjectSelector = Nothing- , v1MatchResourcesResourceRules = Nothing- }---- ** V1ModifyVolumeStatus--- | V1ModifyVolumeStatus--- ModifyVolumeStatus represents the status object of ControllerModifyVolume operation-data V1ModifyVolumeStatus = V1ModifyVolumeStatus- { v1ModifyVolumeStatusStatus :: !(Text) -- ^ /Required/ "status" - status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.- , v1ModifyVolumeStatusTargetVolumeAttributesClassName :: !(Maybe Text) -- ^ "targetVolumeAttributesClassName" - targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ModifyVolumeStatus-instance A.FromJSON V1ModifyVolumeStatus where- parseJSON = A.withObject "V1ModifyVolumeStatus" $ \o ->- V1ModifyVolumeStatus- <$> (o .: "status")- <*> (o .:? "targetVolumeAttributesClassName")---- | ToJSON V1ModifyVolumeStatus-instance A.ToJSON V1ModifyVolumeStatus where- toJSON V1ModifyVolumeStatus {..} =- _omitNulls- [ "status" .= v1ModifyVolumeStatusStatus- , "targetVolumeAttributesClassName" .= v1ModifyVolumeStatusTargetVolumeAttributesClassName- ]----- | Construct a value of type 'V1ModifyVolumeStatus' (by applying it's required fields, if any)-mkV1ModifyVolumeStatus- :: Text -- ^ 'v1ModifyVolumeStatusStatus': status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.- -> V1ModifyVolumeStatus-mkV1ModifyVolumeStatus v1ModifyVolumeStatusStatus =- V1ModifyVolumeStatus- { v1ModifyVolumeStatusStatus- , v1ModifyVolumeStatusTargetVolumeAttributesClassName = Nothing- }---- ** V1MutatingWebhook--- | V1MutatingWebhook--- MutatingWebhook describes an admission webhook and the resources and operations it applies to.-data V1MutatingWebhook = V1MutatingWebhook- { v1MutatingWebhookAdmissionReviewVersions :: !([Text]) -- ^ /Required/ "admissionReviewVersions" - AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.- , v1MutatingWebhookClientConfig :: !(AdmissionregistrationV1WebhookClientConfig) -- ^ /Required/ "clientConfig"- , v1MutatingWebhookFailurePolicy :: !(Maybe Text) -- ^ "failurePolicy" - FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.- , v1MutatingWebhookMatchConditions :: !(Maybe [V1MatchCondition]) -- ^ "matchConditions" - MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. 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. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped. 2. If ALL matchConditions evaluate to TRUE, the webhook is called. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the error is ignored and the webhook is skipped- , v1MutatingWebhookMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - matchPolicy defines how the \"rules\" 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 webhook. - 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 webhook. Defaults to \"Equivalent\"- , v1MutatingWebhookName :: !(Text) -- ^ /Required/ "name" - The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.- , v1MutatingWebhookNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"- , v1MutatingWebhookObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"- , v1MutatingWebhookReinvocationPolicy :: !(Maybe Text) -- ^ "reinvocationPolicy" - reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\". Never: the webhook will not be called more than once in a single admission evaluation. IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead. Defaults to \"Never\".- , v1MutatingWebhookRules :: !(Maybe [V1RuleWithOperations]) -- ^ "rules" - Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.- , v1MutatingWebhookSideEffects :: !(Text) -- ^ /Required/ "sideEffects" - SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.- , v1MutatingWebhookTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1MutatingWebhook-instance A.FromJSON V1MutatingWebhook where- parseJSON = A.withObject "V1MutatingWebhook" $ \o ->- V1MutatingWebhook- <$> (o .: "admissionReviewVersions")- <*> (o .: "clientConfig")- <*> (o .:? "failurePolicy")- <*> (o .:? "matchConditions")- <*> (o .:? "matchPolicy")- <*> (o .: "name")- <*> (o .:? "namespaceSelector")- <*> (o .:? "objectSelector")- <*> (o .:? "reinvocationPolicy")- <*> (o .:? "rules")- <*> (o .: "sideEffects")- <*> (o .:? "timeoutSeconds")---- | ToJSON V1MutatingWebhook-instance A.ToJSON V1MutatingWebhook where- toJSON V1MutatingWebhook {..} =- _omitNulls- [ "admissionReviewVersions" .= v1MutatingWebhookAdmissionReviewVersions- , "clientConfig" .= v1MutatingWebhookClientConfig- , "failurePolicy" .= v1MutatingWebhookFailurePolicy- , "matchConditions" .= v1MutatingWebhookMatchConditions- , "matchPolicy" .= v1MutatingWebhookMatchPolicy- , "name" .= v1MutatingWebhookName- , "namespaceSelector" .= v1MutatingWebhookNamespaceSelector- , "objectSelector" .= v1MutatingWebhookObjectSelector- , "reinvocationPolicy" .= v1MutatingWebhookReinvocationPolicy- , "rules" .= v1MutatingWebhookRules- , "sideEffects" .= v1MutatingWebhookSideEffects- , "timeoutSeconds" .= v1MutatingWebhookTimeoutSeconds- ]----- | Construct a value of type 'V1MutatingWebhook' (by applying it's required fields, if any)-mkV1MutatingWebhook- :: [Text] -- ^ 'v1MutatingWebhookAdmissionReviewVersions': AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.- -> AdmissionregistrationV1WebhookClientConfig -- ^ 'v1MutatingWebhookClientConfig' - -> Text -- ^ 'v1MutatingWebhookName': The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.- -> Text -- ^ 'v1MutatingWebhookSideEffects': SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.- -> V1MutatingWebhook-mkV1MutatingWebhook v1MutatingWebhookAdmissionReviewVersions v1MutatingWebhookClientConfig v1MutatingWebhookName v1MutatingWebhookSideEffects =- V1MutatingWebhook- { v1MutatingWebhookAdmissionReviewVersions- , v1MutatingWebhookClientConfig- , v1MutatingWebhookFailurePolicy = Nothing- , v1MutatingWebhookMatchConditions = Nothing- , v1MutatingWebhookMatchPolicy = Nothing- , v1MutatingWebhookName- , v1MutatingWebhookNamespaceSelector = Nothing- , v1MutatingWebhookObjectSelector = Nothing- , v1MutatingWebhookReinvocationPolicy = Nothing- , v1MutatingWebhookRules = Nothing- , v1MutatingWebhookSideEffects- , v1MutatingWebhookTimeoutSeconds = Nothing- }---- ** V1MutatingWebhookConfiguration--- | V1MutatingWebhookConfiguration--- MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.-data V1MutatingWebhookConfiguration = V1MutatingWebhookConfiguration- { v1MutatingWebhookConfigurationApiVersion :: !(Maybe Text) -- ^ "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- , v1MutatingWebhookConfigurationKind :: !(Maybe Text) -- ^ "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- , v1MutatingWebhookConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1MutatingWebhookConfigurationWebhooks :: !(Maybe [V1MutatingWebhook]) -- ^ "webhooks" - Webhooks is a list of webhooks and the affected resources and operations.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1MutatingWebhookConfiguration-instance A.FromJSON V1MutatingWebhookConfiguration where- parseJSON = A.withObject "V1MutatingWebhookConfiguration" $ \o ->- V1MutatingWebhookConfiguration- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "webhooks")---- | ToJSON V1MutatingWebhookConfiguration-instance A.ToJSON V1MutatingWebhookConfiguration where- toJSON V1MutatingWebhookConfiguration {..} =- _omitNulls- [ "apiVersion" .= v1MutatingWebhookConfigurationApiVersion- , "kind" .= v1MutatingWebhookConfigurationKind- , "metadata" .= v1MutatingWebhookConfigurationMetadata- , "webhooks" .= v1MutatingWebhookConfigurationWebhooks- ]----- | Construct a value of type 'V1MutatingWebhookConfiguration' (by applying it's required fields, if any)-mkV1MutatingWebhookConfiguration- :: V1MutatingWebhookConfiguration-mkV1MutatingWebhookConfiguration =- V1MutatingWebhookConfiguration- { v1MutatingWebhookConfigurationApiVersion = Nothing- , v1MutatingWebhookConfigurationKind = Nothing- , v1MutatingWebhookConfigurationMetadata = Nothing- , v1MutatingWebhookConfigurationWebhooks = Nothing- }---- ** V1MutatingWebhookConfigurationList--- | V1MutatingWebhookConfigurationList--- MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.-data V1MutatingWebhookConfigurationList = V1MutatingWebhookConfigurationList- { v1MutatingWebhookConfigurationListApiVersion :: !(Maybe Text) -- ^ "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- , v1MutatingWebhookConfigurationListItems :: !([V1MutatingWebhookConfiguration]) -- ^ /Required/ "items" - List of MutatingWebhookConfiguration.- , v1MutatingWebhookConfigurationListKind :: !(Maybe Text) -- ^ "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- , v1MutatingWebhookConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1MutatingWebhookConfigurationList-instance A.FromJSON V1MutatingWebhookConfigurationList where- parseJSON = A.withObject "V1MutatingWebhookConfigurationList" $ \o ->- V1MutatingWebhookConfigurationList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1MutatingWebhookConfigurationList-instance A.ToJSON V1MutatingWebhookConfigurationList where- toJSON V1MutatingWebhookConfigurationList {..} =- _omitNulls- [ "apiVersion" .= v1MutatingWebhookConfigurationListApiVersion- , "items" .= v1MutatingWebhookConfigurationListItems- , "kind" .= v1MutatingWebhookConfigurationListKind- , "metadata" .= v1MutatingWebhookConfigurationListMetadata- ]----- | Construct a value of type 'V1MutatingWebhookConfigurationList' (by applying it's required fields, if any)-mkV1MutatingWebhookConfigurationList- :: [V1MutatingWebhookConfiguration] -- ^ 'v1MutatingWebhookConfigurationListItems': List of MutatingWebhookConfiguration.- -> V1MutatingWebhookConfigurationList-mkV1MutatingWebhookConfigurationList v1MutatingWebhookConfigurationListItems =- V1MutatingWebhookConfigurationList- { v1MutatingWebhookConfigurationListApiVersion = Nothing- , v1MutatingWebhookConfigurationListItems- , v1MutatingWebhookConfigurationListKind = Nothing- , v1MutatingWebhookConfigurationListMetadata = Nothing- }---- ** V1NFSVolumeSource--- | V1NFSVolumeSource--- Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.-data V1NFSVolumeSource = V1NFSVolumeSource- { v1NFSVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs- , v1NFSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs- , v1NFSVolumeSourceServer :: !(Text) -- ^ /Required/ "server" - server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NFSVolumeSource-instance A.FromJSON V1NFSVolumeSource where- parseJSON = A.withObject "V1NFSVolumeSource" $ \o ->- V1NFSVolumeSource- <$> (o .: "path")- <*> (o .:? "readOnly")- <*> (o .: "server")---- | ToJSON V1NFSVolumeSource-instance A.ToJSON V1NFSVolumeSource where- toJSON V1NFSVolumeSource {..} =- _omitNulls- [ "path" .= v1NFSVolumeSourcePath- , "readOnly" .= v1NFSVolumeSourceReadOnly- , "server" .= v1NFSVolumeSourceServer- ]----- | Construct a value of type 'V1NFSVolumeSource' (by applying it's required fields, if any)-mkV1NFSVolumeSource- :: Text -- ^ 'v1NFSVolumeSourcePath': path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs- -> Text -- ^ 'v1NFSVolumeSourceServer': server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs- -> V1NFSVolumeSource-mkV1NFSVolumeSource v1NFSVolumeSourcePath v1NFSVolumeSourceServer =- V1NFSVolumeSource- { v1NFSVolumeSourcePath- , v1NFSVolumeSourceReadOnly = Nothing- , v1NFSVolumeSourceServer- }---- ** V1NamedRuleWithOperations--- | V1NamedRuleWithOperations--- NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.-data V1NamedRuleWithOperations = V1NamedRuleWithOperations- { v1NamedRuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.- , v1NamedRuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.- , v1NamedRuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - 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.- , v1NamedRuleWithOperationsResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.- , v1NamedRuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - 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.- , v1NamedRuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - 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 \"*\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NamedRuleWithOperations-instance A.FromJSON V1NamedRuleWithOperations where- parseJSON = A.withObject "V1NamedRuleWithOperations" $ \o ->- V1NamedRuleWithOperations- <$> (o .:? "apiGroups")- <*> (o .:? "apiVersions")- <*> (o .:? "operations")- <*> (o .:? "resourceNames")- <*> (o .:? "resources")- <*> (o .:? "scope")---- | ToJSON V1NamedRuleWithOperations-instance A.ToJSON V1NamedRuleWithOperations where- toJSON V1NamedRuleWithOperations {..} =- _omitNulls- [ "apiGroups" .= v1NamedRuleWithOperationsApiGroups- , "apiVersions" .= v1NamedRuleWithOperationsApiVersions- , "operations" .= v1NamedRuleWithOperationsOperations- , "resourceNames" .= v1NamedRuleWithOperationsResourceNames- , "resources" .= v1NamedRuleWithOperationsResources- , "scope" .= v1NamedRuleWithOperationsScope- ]----- | Construct a value of type 'V1NamedRuleWithOperations' (by applying it's required fields, if any)-mkV1NamedRuleWithOperations- :: V1NamedRuleWithOperations-mkV1NamedRuleWithOperations =- V1NamedRuleWithOperations- { v1NamedRuleWithOperationsApiGroups = Nothing- , v1NamedRuleWithOperationsApiVersions = Nothing- , v1NamedRuleWithOperationsOperations = Nothing- , v1NamedRuleWithOperationsResourceNames = Nothing- , v1NamedRuleWithOperationsResources = Nothing- , v1NamedRuleWithOperationsScope = Nothing- }---- ** V1Namespace--- | V1Namespace--- Namespace provides a scope for Names. Use of multiple namespaces is optional.-data V1Namespace = V1Namespace- { v1NamespaceApiVersion :: !(Maybe Text) -- ^ "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- , v1NamespaceKind :: !(Maybe Text) -- ^ "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- , v1NamespaceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1NamespaceSpec :: !(Maybe V1NamespaceSpec) -- ^ "spec"- , v1NamespaceStatus :: !(Maybe V1NamespaceStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Namespace-instance A.FromJSON V1Namespace where- parseJSON = A.withObject "V1Namespace" $ \o ->- V1Namespace- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1Namespace-instance A.ToJSON V1Namespace where- toJSON V1Namespace {..} =- _omitNulls- [ "apiVersion" .= v1NamespaceApiVersion- , "kind" .= v1NamespaceKind- , "metadata" .= v1NamespaceMetadata- , "spec" .= v1NamespaceSpec- , "status" .= v1NamespaceStatus- ]----- | Construct a value of type 'V1Namespace' (by applying it's required fields, if any)-mkV1Namespace- :: V1Namespace-mkV1Namespace =- V1Namespace- { v1NamespaceApiVersion = Nothing- , v1NamespaceKind = Nothing- , v1NamespaceMetadata = Nothing- , v1NamespaceSpec = Nothing- , v1NamespaceStatus = Nothing- }---- ** V1NamespaceCondition--- | V1NamespaceCondition--- NamespaceCondition contains details about state of namespace.-data V1NamespaceCondition = V1NamespaceCondition- { v1NamespaceConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.- , v1NamespaceConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.- , v1NamespaceConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition's last transition.- , v1NamespaceConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1NamespaceConditionType :: !(Text) -- ^ /Required/ "type" - Type of namespace controller condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NamespaceCondition-instance A.FromJSON V1NamespaceCondition where- parseJSON = A.withObject "V1NamespaceCondition" $ \o ->- V1NamespaceCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1NamespaceCondition-instance A.ToJSON V1NamespaceCondition where- toJSON V1NamespaceCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1NamespaceConditionLastTransitionTime- , "message" .= v1NamespaceConditionMessage- , "reason" .= v1NamespaceConditionReason- , "status" .= v1NamespaceConditionStatus- , "type" .= v1NamespaceConditionType- ]----- | Construct a value of type 'V1NamespaceCondition' (by applying it's required fields, if any)-mkV1NamespaceCondition- :: Text -- ^ 'v1NamespaceConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1NamespaceConditionType': Type of namespace controller condition.- -> V1NamespaceCondition-mkV1NamespaceCondition v1NamespaceConditionStatus v1NamespaceConditionType =- V1NamespaceCondition- { v1NamespaceConditionLastTransitionTime = Nothing- , v1NamespaceConditionMessage = Nothing- , v1NamespaceConditionReason = Nothing- , v1NamespaceConditionStatus- , v1NamespaceConditionType- }---- ** V1NamespaceList--- | V1NamespaceList--- NamespaceList is a list of Namespaces.-data V1NamespaceList = V1NamespaceList- { v1NamespaceListApiVersion :: !(Maybe Text) -- ^ "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- , v1NamespaceListItems :: !([V1Namespace]) -- ^ /Required/ "items" - Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/- , v1NamespaceListKind :: !(Maybe Text) -- ^ "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- , v1NamespaceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NamespaceList-instance A.FromJSON V1NamespaceList where- parseJSON = A.withObject "V1NamespaceList" $ \o ->- V1NamespaceList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1NamespaceList-instance A.ToJSON V1NamespaceList where- toJSON V1NamespaceList {..} =- _omitNulls- [ "apiVersion" .= v1NamespaceListApiVersion- , "items" .= v1NamespaceListItems- , "kind" .= v1NamespaceListKind- , "metadata" .= v1NamespaceListMetadata- ]----- | Construct a value of type 'V1NamespaceList' (by applying it's required fields, if any)-mkV1NamespaceList- :: [V1Namespace] -- ^ 'v1NamespaceListItems': Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/- -> V1NamespaceList-mkV1NamespaceList v1NamespaceListItems =- V1NamespaceList- { v1NamespaceListApiVersion = Nothing- , v1NamespaceListItems- , v1NamespaceListKind = Nothing- , v1NamespaceListMetadata = Nothing- }---- ** V1NamespaceSpec--- | V1NamespaceSpec--- NamespaceSpec describes the attributes on a Namespace.-data V1NamespaceSpec = V1NamespaceSpec- { v1NamespaceSpecFinalizers :: !(Maybe [Text]) -- ^ "finalizers" - Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NamespaceSpec-instance A.FromJSON V1NamespaceSpec where- parseJSON = A.withObject "V1NamespaceSpec" $ \o ->- V1NamespaceSpec- <$> (o .:? "finalizers")---- | ToJSON V1NamespaceSpec-instance A.ToJSON V1NamespaceSpec where- toJSON V1NamespaceSpec {..} =- _omitNulls- [ "finalizers" .= v1NamespaceSpecFinalizers- ]----- | Construct a value of type 'V1NamespaceSpec' (by applying it's required fields, if any)-mkV1NamespaceSpec- :: V1NamespaceSpec-mkV1NamespaceSpec =- V1NamespaceSpec- { v1NamespaceSpecFinalizers = Nothing- }---- ** V1NamespaceStatus--- | V1NamespaceStatus--- NamespaceStatus is information about the current status of a Namespace.-data V1NamespaceStatus = V1NamespaceStatus- { v1NamespaceStatusConditions :: !(Maybe [V1NamespaceCondition]) -- ^ "conditions" - Represents the latest available observations of a namespace's current state.- , v1NamespaceStatusPhase :: !(Maybe Text) -- ^ "phase" - Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NamespaceStatus-instance A.FromJSON V1NamespaceStatus where- parseJSON = A.withObject "V1NamespaceStatus" $ \o ->- V1NamespaceStatus- <$> (o .:? "conditions")- <*> (o .:? "phase")---- | ToJSON V1NamespaceStatus-instance A.ToJSON V1NamespaceStatus where- toJSON V1NamespaceStatus {..} =- _omitNulls- [ "conditions" .= v1NamespaceStatusConditions- , "phase" .= v1NamespaceStatusPhase- ]----- | Construct a value of type 'V1NamespaceStatus' (by applying it's required fields, if any)-mkV1NamespaceStatus- :: V1NamespaceStatus-mkV1NamespaceStatus =- V1NamespaceStatus- { v1NamespaceStatusConditions = Nothing- , v1NamespaceStatusPhase = Nothing- }---- ** V1NetworkDeviceData--- | V1NetworkDeviceData--- 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.-data V1NetworkDeviceData = V1NetworkDeviceData- { v1NetworkDeviceDataHardwareAddress :: !(Maybe Text) -- ^ "hardwareAddress" - HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. Must not be longer than 128 characters.- , v1NetworkDeviceDataInterfaceName :: !(Maybe Text) -- ^ "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.- , v1NetworkDeviceDataIps :: !(Maybe [Text]) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NetworkDeviceData-instance A.FromJSON V1NetworkDeviceData where- parseJSON = A.withObject "V1NetworkDeviceData" $ \o ->- V1NetworkDeviceData- <$> (o .:? "hardwareAddress")- <*> (o .:? "interfaceName")- <*> (o .:? "ips")---- | ToJSON V1NetworkDeviceData-instance A.ToJSON V1NetworkDeviceData where- toJSON V1NetworkDeviceData {..} =- _omitNulls- [ "hardwareAddress" .= v1NetworkDeviceDataHardwareAddress- , "interfaceName" .= v1NetworkDeviceDataInterfaceName- , "ips" .= v1NetworkDeviceDataIps- ]----- | Construct a value of type 'V1NetworkDeviceData' (by applying it's required fields, if any)-mkV1NetworkDeviceData- :: V1NetworkDeviceData-mkV1NetworkDeviceData =- V1NetworkDeviceData- { v1NetworkDeviceDataHardwareAddress = Nothing- , v1NetworkDeviceDataInterfaceName = Nothing- , v1NetworkDeviceDataIps = Nothing- }---- ** V1NetworkPolicy--- | V1NetworkPolicy--- NetworkPolicy describes what network traffic is allowed for a set of Pods-data V1NetworkPolicy = V1NetworkPolicy- { v1NetworkPolicyApiVersion :: !(Maybe Text) -- ^ "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- , v1NetworkPolicyKind :: !(Maybe Text) -- ^ "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- , v1NetworkPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1NetworkPolicySpec :: !(Maybe V1NetworkPolicySpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NetworkPolicy-instance A.FromJSON V1NetworkPolicy where- parseJSON = A.withObject "V1NetworkPolicy" $ \o ->- V1NetworkPolicy- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1NetworkPolicy-instance A.ToJSON V1NetworkPolicy where- toJSON V1NetworkPolicy {..} =- _omitNulls- [ "apiVersion" .= v1NetworkPolicyApiVersion- , "kind" .= v1NetworkPolicyKind- , "metadata" .= v1NetworkPolicyMetadata- , "spec" .= v1NetworkPolicySpec- ]----- | Construct a value of type 'V1NetworkPolicy' (by applying it's required fields, if any)-mkV1NetworkPolicy- :: V1NetworkPolicy-mkV1NetworkPolicy =- V1NetworkPolicy- { v1NetworkPolicyApiVersion = Nothing- , v1NetworkPolicyKind = Nothing- , v1NetworkPolicyMetadata = Nothing- , v1NetworkPolicySpec = Nothing- }---- ** V1NetworkPolicyEgressRule--- | V1NetworkPolicyEgressRule--- NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8-data V1NetworkPolicyEgressRule = V1NetworkPolicyEgressRule- { v1NetworkPolicyEgressRulePorts :: !(Maybe [V1NetworkPolicyPort]) -- ^ "ports" - ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.- , v1NetworkPolicyEgressRuleTo :: !(Maybe [V1NetworkPolicyPeer]) -- ^ "to" - to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NetworkPolicyEgressRule-instance A.FromJSON V1NetworkPolicyEgressRule where- parseJSON = A.withObject "V1NetworkPolicyEgressRule" $ \o ->- V1NetworkPolicyEgressRule- <$> (o .:? "ports")- <*> (o .:? "to")---- | ToJSON V1NetworkPolicyEgressRule-instance A.ToJSON V1NetworkPolicyEgressRule where- toJSON V1NetworkPolicyEgressRule {..} =- _omitNulls- [ "ports" .= v1NetworkPolicyEgressRulePorts- , "to" .= v1NetworkPolicyEgressRuleTo- ]----- | Construct a value of type 'V1NetworkPolicyEgressRule' (by applying it's required fields, if any)-mkV1NetworkPolicyEgressRule- :: V1NetworkPolicyEgressRule-mkV1NetworkPolicyEgressRule =- V1NetworkPolicyEgressRule- { v1NetworkPolicyEgressRulePorts = Nothing- , v1NetworkPolicyEgressRuleTo = Nothing- }---- ** V1NetworkPolicyIngressRule--- | V1NetworkPolicyIngressRule--- NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.-data V1NetworkPolicyIngressRule = V1NetworkPolicyIngressRule- { v1NetworkPolicyIngressRuleFrom :: !(Maybe [V1NetworkPolicyPeer]) -- ^ "from" - from is a list of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.- , v1NetworkPolicyIngressRulePorts :: !(Maybe [V1NetworkPolicyPort]) -- ^ "ports" - ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NetworkPolicyIngressRule-instance A.FromJSON V1NetworkPolicyIngressRule where- parseJSON = A.withObject "V1NetworkPolicyIngressRule" $ \o ->- V1NetworkPolicyIngressRule- <$> (o .:? "from")- <*> (o .:? "ports")---- | ToJSON V1NetworkPolicyIngressRule-instance A.ToJSON V1NetworkPolicyIngressRule where- toJSON V1NetworkPolicyIngressRule {..} =- _omitNulls- [ "from" .= v1NetworkPolicyIngressRuleFrom- , "ports" .= v1NetworkPolicyIngressRulePorts- ]----- | Construct a value of type 'V1NetworkPolicyIngressRule' (by applying it's required fields, if any)-mkV1NetworkPolicyIngressRule- :: V1NetworkPolicyIngressRule-mkV1NetworkPolicyIngressRule =- V1NetworkPolicyIngressRule- { v1NetworkPolicyIngressRuleFrom = Nothing- , v1NetworkPolicyIngressRulePorts = Nothing- }---- ** V1NetworkPolicyList--- | V1NetworkPolicyList--- NetworkPolicyList is a list of NetworkPolicy objects.-data V1NetworkPolicyList = V1NetworkPolicyList- { v1NetworkPolicyListApiVersion :: !(Maybe Text) -- ^ "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- , v1NetworkPolicyListItems :: !([V1NetworkPolicy]) -- ^ /Required/ "items" - items is a list of schema objects.- , v1NetworkPolicyListKind :: !(Maybe Text) -- ^ "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- , v1NetworkPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NetworkPolicyList-instance A.FromJSON V1NetworkPolicyList where- parseJSON = A.withObject "V1NetworkPolicyList" $ \o ->- V1NetworkPolicyList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1NetworkPolicyList-instance A.ToJSON V1NetworkPolicyList where- toJSON V1NetworkPolicyList {..} =- _omitNulls- [ "apiVersion" .= v1NetworkPolicyListApiVersion- , "items" .= v1NetworkPolicyListItems- , "kind" .= v1NetworkPolicyListKind- , "metadata" .= v1NetworkPolicyListMetadata- ]----- | Construct a value of type 'V1NetworkPolicyList' (by applying it's required fields, if any)-mkV1NetworkPolicyList- :: [V1NetworkPolicy] -- ^ 'v1NetworkPolicyListItems': items is a list of schema objects.- -> V1NetworkPolicyList-mkV1NetworkPolicyList v1NetworkPolicyListItems =- V1NetworkPolicyList- { v1NetworkPolicyListApiVersion = Nothing- , v1NetworkPolicyListItems- , v1NetworkPolicyListKind = Nothing- , v1NetworkPolicyListMetadata = Nothing- }---- ** V1NetworkPolicyPeer--- | V1NetworkPolicyPeer--- NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed-data V1NetworkPolicyPeer = V1NetworkPolicyPeer- { v1NetworkPolicyPeerIpBlock :: !(Maybe V1IPBlock) -- ^ "ipBlock"- , v1NetworkPolicyPeerNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"- , v1NetworkPolicyPeerPodSelector :: !(Maybe V1LabelSelector) -- ^ "podSelector"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NetworkPolicyPeer-instance A.FromJSON V1NetworkPolicyPeer where- parseJSON = A.withObject "V1NetworkPolicyPeer" $ \o ->- V1NetworkPolicyPeer- <$> (o .:? "ipBlock")- <*> (o .:? "namespaceSelector")- <*> (o .:? "podSelector")---- | ToJSON V1NetworkPolicyPeer-instance A.ToJSON V1NetworkPolicyPeer where- toJSON V1NetworkPolicyPeer {..} =- _omitNulls- [ "ipBlock" .= v1NetworkPolicyPeerIpBlock- , "namespaceSelector" .= v1NetworkPolicyPeerNamespaceSelector- , "podSelector" .= v1NetworkPolicyPeerPodSelector- ]----- | Construct a value of type 'V1NetworkPolicyPeer' (by applying it's required fields, if any)-mkV1NetworkPolicyPeer- :: V1NetworkPolicyPeer-mkV1NetworkPolicyPeer =- V1NetworkPolicyPeer- { v1NetworkPolicyPeerIpBlock = Nothing- , v1NetworkPolicyPeerNamespaceSelector = Nothing- , v1NetworkPolicyPeerPodSelector = Nothing- }---- ** V1NetworkPolicyPort--- | V1NetworkPolicyPort--- NetworkPolicyPort describes a port to allow traffic on-data V1NetworkPolicyPort = V1NetworkPolicyPort- { v1NetworkPolicyPortEndPort :: !(Maybe Int) -- ^ "endPort" - endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.- , v1NetworkPolicyPortPort :: !(Maybe IntOrString) -- ^ "port"- , v1NetworkPolicyPortProtocol :: !(Maybe Text) -- ^ "protocol" - protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NetworkPolicyPort-instance A.FromJSON V1NetworkPolicyPort where- parseJSON = A.withObject "V1NetworkPolicyPort" $ \o ->- V1NetworkPolicyPort- <$> (o .:? "endPort")- <*> (o .:? "port")- <*> (o .:? "protocol")---- | ToJSON V1NetworkPolicyPort-instance A.ToJSON V1NetworkPolicyPort where- toJSON V1NetworkPolicyPort {..} =- _omitNulls- [ "endPort" .= v1NetworkPolicyPortEndPort- , "port" .= v1NetworkPolicyPortPort- , "protocol" .= v1NetworkPolicyPortProtocol- ]----- | Construct a value of type 'V1NetworkPolicyPort' (by applying it's required fields, if any)-mkV1NetworkPolicyPort- :: V1NetworkPolicyPort-mkV1NetworkPolicyPort =- V1NetworkPolicyPort- { v1NetworkPolicyPortEndPort = Nothing- , v1NetworkPolicyPortPort = Nothing- , v1NetworkPolicyPortProtocol = Nothing- }---- ** V1NetworkPolicySpec--- | V1NetworkPolicySpec--- NetworkPolicySpec provides the specification of a NetworkPolicy-data V1NetworkPolicySpec = V1NetworkPolicySpec- { v1NetworkPolicySpecEgress :: !(Maybe [V1NetworkPolicyEgressRule]) -- ^ "egress" - egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8- , v1NetworkPolicySpecIngress :: !(Maybe [V1NetworkPolicyIngressRule]) -- ^ "ingress" - ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)- , v1NetworkPolicySpecPodSelector :: !(Maybe V1LabelSelector) -- ^ "podSelector"- , v1NetworkPolicySpecPolicyTypes :: !(Maybe [Text]) -- ^ "policyTypes" - policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NetworkPolicySpec-instance A.FromJSON V1NetworkPolicySpec where- parseJSON = A.withObject "V1NetworkPolicySpec" $ \o ->- V1NetworkPolicySpec- <$> (o .:? "egress")- <*> (o .:? "ingress")- <*> (o .:? "podSelector")- <*> (o .:? "policyTypes")---- | ToJSON V1NetworkPolicySpec-instance A.ToJSON V1NetworkPolicySpec where- toJSON V1NetworkPolicySpec {..} =- _omitNulls- [ "egress" .= v1NetworkPolicySpecEgress- , "ingress" .= v1NetworkPolicySpecIngress- , "podSelector" .= v1NetworkPolicySpecPodSelector- , "policyTypes" .= v1NetworkPolicySpecPolicyTypes- ]----- | Construct a value of type 'V1NetworkPolicySpec' (by applying it's required fields, if any)-mkV1NetworkPolicySpec- :: V1NetworkPolicySpec-mkV1NetworkPolicySpec =- V1NetworkPolicySpec- { v1NetworkPolicySpecEgress = Nothing- , v1NetworkPolicySpecIngress = Nothing- , v1NetworkPolicySpecPodSelector = Nothing- , v1NetworkPolicySpecPolicyTypes = Nothing- }---- ** V1Node--- | V1Node--- Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).-data V1Node = V1Node- { v1NodeApiVersion :: !(Maybe Text) -- ^ "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- , v1NodeKind :: !(Maybe Text) -- ^ "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- , v1NodeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1NodeSpec :: !(Maybe V1NodeSpec) -- ^ "spec"- , v1NodeStatus :: !(Maybe V1NodeStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Node-instance A.FromJSON V1Node where- parseJSON = A.withObject "V1Node" $ \o ->- V1Node- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1Node-instance A.ToJSON V1Node where- toJSON V1Node {..} =- _omitNulls- [ "apiVersion" .= v1NodeApiVersion- , "kind" .= v1NodeKind- , "metadata" .= v1NodeMetadata- , "spec" .= v1NodeSpec- , "status" .= v1NodeStatus- ]----- | Construct a value of type 'V1Node' (by applying it's required fields, if any)-mkV1Node- :: V1Node-mkV1Node =- V1Node- { v1NodeApiVersion = Nothing- , v1NodeKind = Nothing- , v1NodeMetadata = Nothing- , v1NodeSpec = Nothing- , v1NodeStatus = Nothing- }---- ** V1NodeAddress--- | V1NodeAddress--- NodeAddress contains information for the node's address.-data V1NodeAddress = V1NodeAddress- { v1NodeAddressAddress :: !(Text) -- ^ /Required/ "address" - The node address.- , v1NodeAddressType :: !(Text) -- ^ /Required/ "type" - Node address type, one of Hostname, ExternalIP or InternalIP.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeAddress-instance A.FromJSON V1NodeAddress where- parseJSON = A.withObject "V1NodeAddress" $ \o ->- V1NodeAddress- <$> (o .: "address")- <*> (o .: "type")---- | ToJSON V1NodeAddress-instance A.ToJSON V1NodeAddress where- toJSON V1NodeAddress {..} =- _omitNulls- [ "address" .= v1NodeAddressAddress- , "type" .= v1NodeAddressType- ]----- | Construct a value of type 'V1NodeAddress' (by applying it's required fields, if any)-mkV1NodeAddress- :: Text -- ^ 'v1NodeAddressAddress': The node address.- -> Text -- ^ 'v1NodeAddressType': Node address type, one of Hostname, ExternalIP or InternalIP.- -> V1NodeAddress-mkV1NodeAddress v1NodeAddressAddress v1NodeAddressType =- V1NodeAddress- { v1NodeAddressAddress- , v1NodeAddressType- }---- ** V1NodeAffinity--- | V1NodeAffinity--- Node affinity is a group of node affinity scheduling rules.-data V1NodeAffinity = V1NodeAffinity- { v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PreferredSchedulingTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.- , v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe V1NodeSelector) -- ^ "requiredDuringSchedulingIgnoredDuringExecution"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeAffinity-instance A.FromJSON V1NodeAffinity where- parseJSON = A.withObject "V1NodeAffinity" $ \o ->- V1NodeAffinity- <$> (o .:? "preferredDuringSchedulingIgnoredDuringExecution")- <*> (o .:? "requiredDuringSchedulingIgnoredDuringExecution")---- | ToJSON V1NodeAffinity-instance A.ToJSON V1NodeAffinity where- toJSON V1NodeAffinity {..} =- _omitNulls- [ "preferredDuringSchedulingIgnoredDuringExecution" .= v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution- , "requiredDuringSchedulingIgnoredDuringExecution" .= v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution- ]----- | Construct a value of type 'V1NodeAffinity' (by applying it's required fields, if any)-mkV1NodeAffinity- :: V1NodeAffinity-mkV1NodeAffinity =- V1NodeAffinity- { v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution = Nothing- , v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution = Nothing- }---- ** V1NodeCondition--- | V1NodeCondition--- NodeCondition contains condition information for a node.-data V1NodeCondition = V1NodeCondition- { v1NodeConditionLastHeartbeatTime :: !(Maybe DateTime) -- ^ "lastHeartbeatTime" - Last time we got an update on a given condition.- , v1NodeConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transit from one status to another.- , v1NodeConditionMessage :: !(Maybe Text) -- ^ "message" - Human readable message indicating details about last transition.- , v1NodeConditionReason :: !(Maybe Text) -- ^ "reason" - (brief) reason for the condition's last transition.- , v1NodeConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1NodeConditionType :: !(Text) -- ^ /Required/ "type" - Type of node condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeCondition-instance A.FromJSON V1NodeCondition where- parseJSON = A.withObject "V1NodeCondition" $ \o ->- V1NodeCondition- <$> (o .:? "lastHeartbeatTime")- <*> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1NodeCondition-instance A.ToJSON V1NodeCondition where- toJSON V1NodeCondition {..} =- _omitNulls- [ "lastHeartbeatTime" .= v1NodeConditionLastHeartbeatTime- , "lastTransitionTime" .= v1NodeConditionLastTransitionTime- , "message" .= v1NodeConditionMessage- , "reason" .= v1NodeConditionReason- , "status" .= v1NodeConditionStatus- , "type" .= v1NodeConditionType- ]----- | Construct a value of type 'V1NodeCondition' (by applying it's required fields, if any)-mkV1NodeCondition- :: Text -- ^ 'v1NodeConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1NodeConditionType': Type of node condition.- -> V1NodeCondition-mkV1NodeCondition v1NodeConditionStatus v1NodeConditionType =- V1NodeCondition- { v1NodeConditionLastHeartbeatTime = Nothing- , v1NodeConditionLastTransitionTime = Nothing- , v1NodeConditionMessage = Nothing- , v1NodeConditionReason = Nothing- , v1NodeConditionStatus- , v1NodeConditionType- }---- ** V1NodeConfigSource--- | V1NodeConfigSource--- NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22-data V1NodeConfigSource = V1NodeConfigSource- { v1NodeConfigSourceConfigMap :: !(Maybe V1ConfigMapNodeConfigSource) -- ^ "configMap"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeConfigSource-instance A.FromJSON V1NodeConfigSource where- parseJSON = A.withObject "V1NodeConfigSource" $ \o ->- V1NodeConfigSource- <$> (o .:? "configMap")---- | ToJSON V1NodeConfigSource-instance A.ToJSON V1NodeConfigSource where- toJSON V1NodeConfigSource {..} =- _omitNulls- [ "configMap" .= v1NodeConfigSourceConfigMap- ]----- | Construct a value of type 'V1NodeConfigSource' (by applying it's required fields, if any)-mkV1NodeConfigSource- :: V1NodeConfigSource-mkV1NodeConfigSource =- V1NodeConfigSource- { v1NodeConfigSourceConfigMap = Nothing- }---- ** V1NodeConfigStatus--- | V1NodeConfigStatus--- NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.-data V1NodeConfigStatus = V1NodeConfigStatus- { v1NodeConfigStatusActive :: !(Maybe V1NodeConfigSource) -- ^ "active"- , v1NodeConfigStatusAssigned :: !(Maybe V1NodeConfigSource) -- ^ "assigned"- , v1NodeConfigStatusError :: !(Maybe Text) -- ^ "error" - Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.- , v1NodeConfigStatusLastKnownGood :: !(Maybe V1NodeConfigSource) -- ^ "lastKnownGood"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeConfigStatus-instance A.FromJSON V1NodeConfigStatus where- parseJSON = A.withObject "V1NodeConfigStatus" $ \o ->- V1NodeConfigStatus- <$> (o .:? "active")- <*> (o .:? "assigned")- <*> (o .:? "error")- <*> (o .:? "lastKnownGood")---- | ToJSON V1NodeConfigStatus-instance A.ToJSON V1NodeConfigStatus where- toJSON V1NodeConfigStatus {..} =- _omitNulls- [ "active" .= v1NodeConfigStatusActive- , "assigned" .= v1NodeConfigStatusAssigned- , "error" .= v1NodeConfigStatusError- , "lastKnownGood" .= v1NodeConfigStatusLastKnownGood- ]----- | Construct a value of type 'V1NodeConfigStatus' (by applying it's required fields, if any)-mkV1NodeConfigStatus- :: V1NodeConfigStatus-mkV1NodeConfigStatus =- V1NodeConfigStatus- { v1NodeConfigStatusActive = Nothing- , v1NodeConfigStatusAssigned = Nothing- , v1NodeConfigStatusError = Nothing- , v1NodeConfigStatusLastKnownGood = Nothing- }---- ** V1NodeDaemonEndpoints--- | V1NodeDaemonEndpoints--- NodeDaemonEndpoints lists ports opened by daemons running on the Node.-data V1NodeDaemonEndpoints = V1NodeDaemonEndpoints- { v1NodeDaemonEndpointsKubeletEndpoint :: !(Maybe V1DaemonEndpoint) -- ^ "kubeletEndpoint"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeDaemonEndpoints-instance A.FromJSON V1NodeDaemonEndpoints where- parseJSON = A.withObject "V1NodeDaemonEndpoints" $ \o ->- V1NodeDaemonEndpoints- <$> (o .:? "kubeletEndpoint")---- | ToJSON V1NodeDaemonEndpoints-instance A.ToJSON V1NodeDaemonEndpoints where- toJSON V1NodeDaemonEndpoints {..} =- _omitNulls- [ "kubeletEndpoint" .= v1NodeDaemonEndpointsKubeletEndpoint- ]----- | Construct a value of type 'V1NodeDaemonEndpoints' (by applying it's required fields, if any)-mkV1NodeDaemonEndpoints- :: V1NodeDaemonEndpoints-mkV1NodeDaemonEndpoints =- V1NodeDaemonEndpoints- { v1NodeDaemonEndpointsKubeletEndpoint = Nothing- }---- ** V1NodeFeatures--- | V1NodeFeatures--- NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.-data V1NodeFeatures = V1NodeFeatures- { v1NodeFeaturesSupplementalGroupsPolicy :: !(Maybe Bool) -- ^ "supplementalGroupsPolicy" - SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeFeatures-instance A.FromJSON V1NodeFeatures where- parseJSON = A.withObject "V1NodeFeatures" $ \o ->- V1NodeFeatures- <$> (o .:? "supplementalGroupsPolicy")---- | ToJSON V1NodeFeatures-instance A.ToJSON V1NodeFeatures where- toJSON V1NodeFeatures {..} =- _omitNulls- [ "supplementalGroupsPolicy" .= v1NodeFeaturesSupplementalGroupsPolicy- ]----- | Construct a value of type 'V1NodeFeatures' (by applying it's required fields, if any)-mkV1NodeFeatures- :: V1NodeFeatures-mkV1NodeFeatures =- V1NodeFeatures- { v1NodeFeaturesSupplementalGroupsPolicy = Nothing- }---- ** V1NodeList--- | V1NodeList--- NodeList is the whole list of all Nodes which have been registered with master.-data V1NodeList = V1NodeList- { v1NodeListApiVersion :: !(Maybe Text) -- ^ "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- , v1NodeListItems :: !([V1Node]) -- ^ /Required/ "items" - List of nodes- , v1NodeListKind :: !(Maybe Text) -- ^ "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- , v1NodeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeList-instance A.FromJSON V1NodeList where- parseJSON = A.withObject "V1NodeList" $ \o ->- V1NodeList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1NodeList-instance A.ToJSON V1NodeList where- toJSON V1NodeList {..} =- _omitNulls- [ "apiVersion" .= v1NodeListApiVersion- , "items" .= v1NodeListItems- , "kind" .= v1NodeListKind- , "metadata" .= v1NodeListMetadata- ]----- | Construct a value of type 'V1NodeList' (by applying it's required fields, if any)-mkV1NodeList- :: [V1Node] -- ^ 'v1NodeListItems': List of nodes- -> V1NodeList-mkV1NodeList v1NodeListItems =- V1NodeList- { v1NodeListApiVersion = Nothing- , v1NodeListItems- , v1NodeListKind = Nothing- , v1NodeListMetadata = Nothing- }---- ** V1NodeRuntimeHandler--- | V1NodeRuntimeHandler--- NodeRuntimeHandler is a set of runtime handler information.-data V1NodeRuntimeHandler = V1NodeRuntimeHandler- { v1NodeRuntimeHandlerFeatures :: !(Maybe V1NodeRuntimeHandlerFeatures) -- ^ "features"- , v1NodeRuntimeHandlerName :: !(Maybe Text) -- ^ "name" - Runtime handler name. Empty for the default runtime handler.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeRuntimeHandler-instance A.FromJSON V1NodeRuntimeHandler where- parseJSON = A.withObject "V1NodeRuntimeHandler" $ \o ->- V1NodeRuntimeHandler- <$> (o .:? "features")- <*> (o .:? "name")---- | ToJSON V1NodeRuntimeHandler-instance A.ToJSON V1NodeRuntimeHandler where- toJSON V1NodeRuntimeHandler {..} =- _omitNulls- [ "features" .= v1NodeRuntimeHandlerFeatures- , "name" .= v1NodeRuntimeHandlerName- ]----- | Construct a value of type 'V1NodeRuntimeHandler' (by applying it's required fields, if any)-mkV1NodeRuntimeHandler- :: V1NodeRuntimeHandler-mkV1NodeRuntimeHandler =- V1NodeRuntimeHandler- { v1NodeRuntimeHandlerFeatures = Nothing- , v1NodeRuntimeHandlerName = Nothing- }---- ** V1NodeRuntimeHandlerFeatures--- | V1NodeRuntimeHandlerFeatures--- NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.-data V1NodeRuntimeHandlerFeatures = V1NodeRuntimeHandlerFeatures- { v1NodeRuntimeHandlerFeaturesRecursiveReadOnlyMounts :: !(Maybe Bool) -- ^ "recursiveReadOnlyMounts" - RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.- , v1NodeRuntimeHandlerFeaturesUserNamespaces :: !(Maybe Bool) -- ^ "userNamespaces" - UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeRuntimeHandlerFeatures-instance A.FromJSON V1NodeRuntimeHandlerFeatures where- parseJSON = A.withObject "V1NodeRuntimeHandlerFeatures" $ \o ->- V1NodeRuntimeHandlerFeatures- <$> (o .:? "recursiveReadOnlyMounts")- <*> (o .:? "userNamespaces")---- | ToJSON V1NodeRuntimeHandlerFeatures-instance A.ToJSON V1NodeRuntimeHandlerFeatures where- toJSON V1NodeRuntimeHandlerFeatures {..} =- _omitNulls- [ "recursiveReadOnlyMounts" .= v1NodeRuntimeHandlerFeaturesRecursiveReadOnlyMounts- , "userNamespaces" .= v1NodeRuntimeHandlerFeaturesUserNamespaces- ]----- | Construct a value of type 'V1NodeRuntimeHandlerFeatures' (by applying it's required fields, if any)-mkV1NodeRuntimeHandlerFeatures- :: V1NodeRuntimeHandlerFeatures-mkV1NodeRuntimeHandlerFeatures =- V1NodeRuntimeHandlerFeatures- { v1NodeRuntimeHandlerFeaturesRecursiveReadOnlyMounts = Nothing- , v1NodeRuntimeHandlerFeaturesUserNamespaces = Nothing- }---- ** V1NodeSelector--- | V1NodeSelector--- A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.-data V1NodeSelector = V1NodeSelector- { v1NodeSelectorNodeSelectorTerms :: !([V1NodeSelectorTerm]) -- ^ /Required/ "nodeSelectorTerms" - Required. A list of node selector terms. The terms are ORed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeSelector-instance A.FromJSON V1NodeSelector where- parseJSON = A.withObject "V1NodeSelector" $ \o ->- V1NodeSelector- <$> (o .: "nodeSelectorTerms")---- | ToJSON V1NodeSelector-instance A.ToJSON V1NodeSelector where- toJSON V1NodeSelector {..} =- _omitNulls- [ "nodeSelectorTerms" .= v1NodeSelectorNodeSelectorTerms- ]----- | Construct a value of type 'V1NodeSelector' (by applying it's required fields, if any)-mkV1NodeSelector- :: [V1NodeSelectorTerm] -- ^ 'v1NodeSelectorNodeSelectorTerms': Required. A list of node selector terms. The terms are ORed.- -> V1NodeSelector-mkV1NodeSelector v1NodeSelectorNodeSelectorTerms =- V1NodeSelector- { v1NodeSelectorNodeSelectorTerms- }---- ** V1NodeSelectorRequirement--- | V1NodeSelectorRequirement--- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.-data V1NodeSelectorRequirement = V1NodeSelectorRequirement- { v1NodeSelectorRequirementKey :: !(Text) -- ^ /Required/ "key" - The label key that the selector applies to.- , v1NodeSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.- , v1NodeSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeSelectorRequirement-instance A.FromJSON V1NodeSelectorRequirement where- parseJSON = A.withObject "V1NodeSelectorRequirement" $ \o ->- V1NodeSelectorRequirement- <$> (o .: "key")- <*> (o .: "operator")- <*> (o .:? "values")---- | ToJSON V1NodeSelectorRequirement-instance A.ToJSON V1NodeSelectorRequirement where- toJSON V1NodeSelectorRequirement {..} =- _omitNulls- [ "key" .= v1NodeSelectorRequirementKey- , "operator" .= v1NodeSelectorRequirementOperator- , "values" .= v1NodeSelectorRequirementValues- ]----- | Construct a value of type 'V1NodeSelectorRequirement' (by applying it's required fields, if any)-mkV1NodeSelectorRequirement- :: Text -- ^ 'v1NodeSelectorRequirementKey': The label key that the selector applies to.- -> Text -- ^ 'v1NodeSelectorRequirementOperator': Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.- -> V1NodeSelectorRequirement-mkV1NodeSelectorRequirement v1NodeSelectorRequirementKey v1NodeSelectorRequirementOperator =- V1NodeSelectorRequirement- { v1NodeSelectorRequirementKey- , v1NodeSelectorRequirementOperator- , v1NodeSelectorRequirementValues = Nothing- }---- ** V1NodeSelectorTerm--- | V1NodeSelectorTerm--- A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.-data V1NodeSelectorTerm = V1NodeSelectorTerm- { v1NodeSelectorTermMatchExpressions :: !(Maybe [V1NodeSelectorRequirement]) -- ^ "matchExpressions" - A list of node selector requirements by node's labels.- , v1NodeSelectorTermMatchFields :: !(Maybe [V1NodeSelectorRequirement]) -- ^ "matchFields" - A list of node selector requirements by node's fields.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeSelectorTerm-instance A.FromJSON V1NodeSelectorTerm where- parseJSON = A.withObject "V1NodeSelectorTerm" $ \o ->- V1NodeSelectorTerm- <$> (o .:? "matchExpressions")- <*> (o .:? "matchFields")---- | ToJSON V1NodeSelectorTerm-instance A.ToJSON V1NodeSelectorTerm where- toJSON V1NodeSelectorTerm {..} =- _omitNulls- [ "matchExpressions" .= v1NodeSelectorTermMatchExpressions- , "matchFields" .= v1NodeSelectorTermMatchFields- ]----- | Construct a value of type 'V1NodeSelectorTerm' (by applying it's required fields, if any)-mkV1NodeSelectorTerm- :: V1NodeSelectorTerm-mkV1NodeSelectorTerm =- V1NodeSelectorTerm- { v1NodeSelectorTermMatchExpressions = Nothing- , v1NodeSelectorTermMatchFields = Nothing- }---- ** V1NodeSpec--- | V1NodeSpec--- NodeSpec describes the attributes that a node is created with.-data V1NodeSpec = V1NodeSpec- { v1NodeSpecConfigSource :: !(Maybe V1NodeConfigSource) -- ^ "configSource"- , v1NodeSpecExternalId :: !(Maybe Text) -- ^ "externalID" - Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966- , v1NodeSpecPodCidr :: !(Maybe Text) -- ^ "podCIDR" - PodCIDR represents the pod IP range assigned to the node.- , v1NodeSpecPodCidrs :: !(Maybe [Text]) -- ^ "podCIDRs" - podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.- , v1NodeSpecProviderId :: !(Maybe Text) -- ^ "providerID" - ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID>- , v1NodeSpecTaints :: !(Maybe [V1Taint]) -- ^ "taints" - If specified, the node's taints.- , v1NodeSpecUnschedulable :: !(Maybe Bool) -- ^ "unschedulable" - Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeSpec-instance A.FromJSON V1NodeSpec where- parseJSON = A.withObject "V1NodeSpec" $ \o ->- V1NodeSpec- <$> (o .:? "configSource")- <*> (o .:? "externalID")- <*> (o .:? "podCIDR")- <*> (o .:? "podCIDRs")- <*> (o .:? "providerID")- <*> (o .:? "taints")- <*> (o .:? "unschedulable")---- | ToJSON V1NodeSpec-instance A.ToJSON V1NodeSpec where- toJSON V1NodeSpec {..} =- _omitNulls- [ "configSource" .= v1NodeSpecConfigSource- , "externalID" .= v1NodeSpecExternalId- , "podCIDR" .= v1NodeSpecPodCidr- , "podCIDRs" .= v1NodeSpecPodCidrs- , "providerID" .= v1NodeSpecProviderId- , "taints" .= v1NodeSpecTaints- , "unschedulable" .= v1NodeSpecUnschedulable- ]----- | Construct a value of type 'V1NodeSpec' (by applying it's required fields, if any)-mkV1NodeSpec- :: V1NodeSpec-mkV1NodeSpec =- V1NodeSpec- { v1NodeSpecConfigSource = Nothing- , v1NodeSpecExternalId = Nothing- , v1NodeSpecPodCidr = Nothing- , v1NodeSpecPodCidrs = Nothing- , v1NodeSpecProviderId = Nothing- , v1NodeSpecTaints = Nothing- , v1NodeSpecUnschedulable = Nothing- }---- ** V1NodeStatus--- | V1NodeStatus--- NodeStatus is information about the current status of a node.-data V1NodeStatus = V1NodeStatus- { v1NodeStatusAddresses :: !(Maybe [V1NodeAddress]) -- ^ "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).- , v1NodeStatusAllocatable :: !(Maybe (Map.Map String Quantity)) -- ^ "allocatable" - Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.- , v1NodeStatusCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity- , v1NodeStatusConditions :: !(Maybe [V1NodeCondition]) -- ^ "conditions" - Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition- , v1NodeStatusConfig :: !(Maybe V1NodeConfigStatus) -- ^ "config"- , v1NodeStatusDaemonEndpoints :: !(Maybe V1NodeDaemonEndpoints) -- ^ "daemonEndpoints"- , v1NodeStatusFeatures :: !(Maybe V1NodeFeatures) -- ^ "features"- , v1NodeStatusImages :: !(Maybe [V1ContainerImage]) -- ^ "images" - List of container images on this node- , v1NodeStatusNodeInfo :: !(Maybe V1NodeSystemInfo) -- ^ "nodeInfo"- , v1NodeStatusPhase :: !(Maybe Text) -- ^ "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.- , v1NodeStatusRuntimeHandlers :: !(Maybe [V1NodeRuntimeHandler]) -- ^ "runtimeHandlers" - The available runtime handlers.- , v1NodeStatusVolumesAttached :: !(Maybe [V1AttachedVolume]) -- ^ "volumesAttached" - List of volumes that are attached to the node.- , v1NodeStatusVolumesInUse :: !(Maybe [Text]) -- ^ "volumesInUse" - List of attachable volumes in use (mounted) by the node.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeStatus-instance A.FromJSON V1NodeStatus where- parseJSON = A.withObject "V1NodeStatus" $ \o ->- V1NodeStatus- <$> (o .:? "addresses")- <*> (o .:? "allocatable")- <*> (o .:? "capacity")- <*> (o .:? "conditions")- <*> (o .:? "config")- <*> (o .:? "daemonEndpoints")- <*> (o .:? "features")- <*> (o .:? "images")- <*> (o .:? "nodeInfo")- <*> (o .:? "phase")- <*> (o .:? "runtimeHandlers")- <*> (o .:? "volumesAttached")- <*> (o .:? "volumesInUse")---- | ToJSON V1NodeStatus-instance A.ToJSON V1NodeStatus where- toJSON V1NodeStatus {..} =- _omitNulls- [ "addresses" .= v1NodeStatusAddresses- , "allocatable" .= v1NodeStatusAllocatable- , "capacity" .= v1NodeStatusCapacity- , "conditions" .= v1NodeStatusConditions- , "config" .= v1NodeStatusConfig- , "daemonEndpoints" .= v1NodeStatusDaemonEndpoints- , "features" .= v1NodeStatusFeatures- , "images" .= v1NodeStatusImages- , "nodeInfo" .= v1NodeStatusNodeInfo- , "phase" .= v1NodeStatusPhase- , "runtimeHandlers" .= v1NodeStatusRuntimeHandlers- , "volumesAttached" .= v1NodeStatusVolumesAttached- , "volumesInUse" .= v1NodeStatusVolumesInUse- ]----- | Construct a value of type 'V1NodeStatus' (by applying it's required fields, if any)-mkV1NodeStatus- :: V1NodeStatus-mkV1NodeStatus =- V1NodeStatus- { v1NodeStatusAddresses = Nothing- , v1NodeStatusAllocatable = Nothing- , v1NodeStatusCapacity = Nothing- , v1NodeStatusConditions = Nothing- , v1NodeStatusConfig = Nothing- , v1NodeStatusDaemonEndpoints = Nothing- , v1NodeStatusFeatures = Nothing- , v1NodeStatusImages = Nothing- , v1NodeStatusNodeInfo = Nothing- , v1NodeStatusPhase = Nothing- , v1NodeStatusRuntimeHandlers = Nothing- , v1NodeStatusVolumesAttached = Nothing- , v1NodeStatusVolumesInUse = Nothing- }---- ** V1NodeSwapStatus--- | V1NodeSwapStatus--- NodeSwapStatus represents swap memory information.-data V1NodeSwapStatus = V1NodeSwapStatus- { v1NodeSwapStatusCapacity :: !(Maybe Integer) -- ^ "capacity" - Total amount of swap memory in bytes.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeSwapStatus-instance A.FromJSON V1NodeSwapStatus where- parseJSON = A.withObject "V1NodeSwapStatus" $ \o ->- V1NodeSwapStatus- <$> (o .:? "capacity")---- | ToJSON V1NodeSwapStatus-instance A.ToJSON V1NodeSwapStatus where- toJSON V1NodeSwapStatus {..} =- _omitNulls- [ "capacity" .= v1NodeSwapStatusCapacity- ]----- | Construct a value of type 'V1NodeSwapStatus' (by applying it's required fields, if any)-mkV1NodeSwapStatus- :: V1NodeSwapStatus-mkV1NodeSwapStatus =- V1NodeSwapStatus- { v1NodeSwapStatusCapacity = Nothing- }---- ** V1NodeSystemInfo--- | V1NodeSystemInfo--- NodeSystemInfo is a set of ids/uuids to uniquely identify the node.-data V1NodeSystemInfo = V1NodeSystemInfo- { v1NodeSystemInfoArchitecture :: !(Text) -- ^ /Required/ "architecture" - The Architecture reported by the node- , v1NodeSystemInfoBootId :: !(Text) -- ^ /Required/ "bootID" - Boot ID reported by the node.- , v1NodeSystemInfoContainerRuntimeVersion :: !(Text) -- ^ /Required/ "containerRuntimeVersion" - ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).- , v1NodeSystemInfoKernelVersion :: !(Text) -- ^ /Required/ "kernelVersion" - Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).- , v1NodeSystemInfoKubeProxyVersion :: !(Text) -- ^ /Required/ "kubeProxyVersion" - Deprecated: KubeProxy Version reported by the node.- , v1NodeSystemInfoKubeletVersion :: !(Text) -- ^ /Required/ "kubeletVersion" - Kubelet Version reported by the node.- , v1NodeSystemInfoMachineId :: !(Text) -- ^ /Required/ "machineID" - MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html- , v1NodeSystemInfoOperatingSystem :: !(Text) -- ^ /Required/ "operatingSystem" - The Operating System reported by the node- , v1NodeSystemInfoOsImage :: !(Text) -- ^ /Required/ "osImage" - OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).- , v1NodeSystemInfoSwap :: !(Maybe V1NodeSwapStatus) -- ^ "swap"- , v1NodeSystemInfoSystemUuid :: !(Text) -- ^ /Required/ "systemUUID" - SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NodeSystemInfo-instance A.FromJSON V1NodeSystemInfo where- parseJSON = A.withObject "V1NodeSystemInfo" $ \o ->- V1NodeSystemInfo- <$> (o .: "architecture")- <*> (o .: "bootID")- <*> (o .: "containerRuntimeVersion")- <*> (o .: "kernelVersion")- <*> (o .: "kubeProxyVersion")- <*> (o .: "kubeletVersion")- <*> (o .: "machineID")- <*> (o .: "operatingSystem")- <*> (o .: "osImage")- <*> (o .:? "swap")- <*> (o .: "systemUUID")---- | ToJSON V1NodeSystemInfo-instance A.ToJSON V1NodeSystemInfo where- toJSON V1NodeSystemInfo {..} =- _omitNulls- [ "architecture" .= v1NodeSystemInfoArchitecture- , "bootID" .= v1NodeSystemInfoBootId- , "containerRuntimeVersion" .= v1NodeSystemInfoContainerRuntimeVersion- , "kernelVersion" .= v1NodeSystemInfoKernelVersion- , "kubeProxyVersion" .= v1NodeSystemInfoKubeProxyVersion- , "kubeletVersion" .= v1NodeSystemInfoKubeletVersion- , "machineID" .= v1NodeSystemInfoMachineId- , "operatingSystem" .= v1NodeSystemInfoOperatingSystem- , "osImage" .= v1NodeSystemInfoOsImage- , "swap" .= v1NodeSystemInfoSwap- , "systemUUID" .= v1NodeSystemInfoSystemUuid- ]----- | Construct a value of type 'V1NodeSystemInfo' (by applying it's required fields, if any)-mkV1NodeSystemInfo- :: Text -- ^ 'v1NodeSystemInfoArchitecture': The Architecture reported by the node- -> Text -- ^ 'v1NodeSystemInfoBootId': Boot ID reported by the node.- -> Text -- ^ 'v1NodeSystemInfoContainerRuntimeVersion': ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).- -> Text -- ^ 'v1NodeSystemInfoKernelVersion': Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).- -> Text -- ^ 'v1NodeSystemInfoKubeProxyVersion': Deprecated: KubeProxy Version reported by the node.- -> Text -- ^ 'v1NodeSystemInfoKubeletVersion': Kubelet Version reported by the node.- -> Text -- ^ 'v1NodeSystemInfoMachineId': MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html- -> Text -- ^ 'v1NodeSystemInfoOperatingSystem': The Operating System reported by the node- -> Text -- ^ 'v1NodeSystemInfoOsImage': OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).- -> Text -- ^ 'v1NodeSystemInfoSystemUuid': SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid- -> V1NodeSystemInfo-mkV1NodeSystemInfo v1NodeSystemInfoArchitecture v1NodeSystemInfoBootId v1NodeSystemInfoContainerRuntimeVersion v1NodeSystemInfoKernelVersion v1NodeSystemInfoKubeProxyVersion v1NodeSystemInfoKubeletVersion v1NodeSystemInfoMachineId v1NodeSystemInfoOperatingSystem v1NodeSystemInfoOsImage v1NodeSystemInfoSystemUuid =- V1NodeSystemInfo- { v1NodeSystemInfoArchitecture- , v1NodeSystemInfoBootId- , v1NodeSystemInfoContainerRuntimeVersion- , v1NodeSystemInfoKernelVersion- , v1NodeSystemInfoKubeProxyVersion- , v1NodeSystemInfoKubeletVersion- , v1NodeSystemInfoMachineId- , v1NodeSystemInfoOperatingSystem- , v1NodeSystemInfoOsImage- , v1NodeSystemInfoSwap = Nothing- , v1NodeSystemInfoSystemUuid- }---- ** V1NonResourceAttributes--- | V1NonResourceAttributes--- NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface-data V1NonResourceAttributes = V1NonResourceAttributes- { v1NonResourceAttributesPath :: !(Maybe Text) -- ^ "path" - Path is the URL path of the request- , v1NonResourceAttributesVerb :: !(Maybe Text) -- ^ "verb" - Verb is the standard HTTP verb- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NonResourceAttributes-instance A.FromJSON V1NonResourceAttributes where- parseJSON = A.withObject "V1NonResourceAttributes" $ \o ->- V1NonResourceAttributes- <$> (o .:? "path")- <*> (o .:? "verb")---- | ToJSON V1NonResourceAttributes-instance A.ToJSON V1NonResourceAttributes where- toJSON V1NonResourceAttributes {..} =- _omitNulls- [ "path" .= v1NonResourceAttributesPath- , "verb" .= v1NonResourceAttributesVerb- ]----- | Construct a value of type 'V1NonResourceAttributes' (by applying it's required fields, if any)-mkV1NonResourceAttributes- :: V1NonResourceAttributes-mkV1NonResourceAttributes =- V1NonResourceAttributes- { v1NonResourceAttributesPath = Nothing- , v1NonResourceAttributesVerb = Nothing- }---- ** V1NonResourcePolicyRule--- | V1NonResourcePolicyRule--- NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.-data V1NonResourcePolicyRule = V1NonResourcePolicyRule- { v1NonResourcePolicyRuleNonResourceUrls :: !([Text]) -- ^ /Required/ "nonResourceURLs" - `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example: - \"/healthz\" is legal - \"/hea*\" is illegal - \"/hea\" is legal but matches nothing - \"/hea/*\" also matches nothing - \"/healthz/*\" matches all per-component health checks. \"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.- , v1NonResourcePolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - `verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NonResourcePolicyRule-instance A.FromJSON V1NonResourcePolicyRule where- parseJSON = A.withObject "V1NonResourcePolicyRule" $ \o ->- V1NonResourcePolicyRule- <$> (o .: "nonResourceURLs")- <*> (o .: "verbs")---- | ToJSON V1NonResourcePolicyRule-instance A.ToJSON V1NonResourcePolicyRule where- toJSON V1NonResourcePolicyRule {..} =- _omitNulls- [ "nonResourceURLs" .= v1NonResourcePolicyRuleNonResourceUrls- , "verbs" .= v1NonResourcePolicyRuleVerbs- ]----- | Construct a value of type 'V1NonResourcePolicyRule' (by applying it's required fields, if any)-mkV1NonResourcePolicyRule- :: [Text] -- ^ 'v1NonResourcePolicyRuleNonResourceUrls': `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example: - \"/healthz\" is legal - \"/hea*\" is illegal - \"/hea\" is legal but matches nothing - \"/hea/*\" also matches nothing - \"/healthz/*\" matches all per-component health checks. \"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.- -> [Text] -- ^ 'v1NonResourcePolicyRuleVerbs': `verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.- -> V1NonResourcePolicyRule-mkV1NonResourcePolicyRule v1NonResourcePolicyRuleNonResourceUrls v1NonResourcePolicyRuleVerbs =- V1NonResourcePolicyRule- { v1NonResourcePolicyRuleNonResourceUrls- , v1NonResourcePolicyRuleVerbs- }---- ** V1NonResourceRule--- | V1NonResourceRule--- NonResourceRule holds information that describes a rule for the non-resource-data V1NonResourceRule = V1NonResourceRule- { v1NonResourceRuleNonResourceUrls :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.- , v1NonResourceRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1NonResourceRule-instance A.FromJSON V1NonResourceRule where- parseJSON = A.withObject "V1NonResourceRule" $ \o ->- V1NonResourceRule- <$> (o .:? "nonResourceURLs")- <*> (o .: "verbs")---- | ToJSON V1NonResourceRule-instance A.ToJSON V1NonResourceRule where- toJSON V1NonResourceRule {..} =- _omitNulls- [ "nonResourceURLs" .= v1NonResourceRuleNonResourceUrls- , "verbs" .= v1NonResourceRuleVerbs- ]----- | Construct a value of type 'V1NonResourceRule' (by applying it's required fields, if any)-mkV1NonResourceRule- :: [Text] -- ^ 'v1NonResourceRuleVerbs': Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.- -> V1NonResourceRule-mkV1NonResourceRule v1NonResourceRuleVerbs =- V1NonResourceRule- { v1NonResourceRuleNonResourceUrls = Nothing- , v1NonResourceRuleVerbs- }---- ** V1ObjectFieldSelector--- | V1ObjectFieldSelector--- ObjectFieldSelector selects an APIVersioned field of an object.-data V1ObjectFieldSelector = V1ObjectFieldSelector- { v1ObjectFieldSelectorApiVersion :: !(Maybe Text) -- ^ "apiVersion" - Version of the schema the FieldPath is written in terms of, defaults to \"v1\".- , v1ObjectFieldSelectorFieldPath :: !(Text) -- ^ /Required/ "fieldPath" - Path of the field to select in the specified API version.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ObjectFieldSelector-instance A.FromJSON V1ObjectFieldSelector where- parseJSON = A.withObject "V1ObjectFieldSelector" $ \o ->- V1ObjectFieldSelector- <$> (o .:? "apiVersion")- <*> (o .: "fieldPath")---- | ToJSON V1ObjectFieldSelector-instance A.ToJSON V1ObjectFieldSelector where- toJSON V1ObjectFieldSelector {..} =- _omitNulls- [ "apiVersion" .= v1ObjectFieldSelectorApiVersion- , "fieldPath" .= v1ObjectFieldSelectorFieldPath- ]----- | Construct a value of type 'V1ObjectFieldSelector' (by applying it's required fields, if any)-mkV1ObjectFieldSelector- :: Text -- ^ 'v1ObjectFieldSelectorFieldPath': Path of the field to select in the specified API version.- -> V1ObjectFieldSelector-mkV1ObjectFieldSelector v1ObjectFieldSelectorFieldPath =- V1ObjectFieldSelector- { v1ObjectFieldSelectorApiVersion = Nothing- , v1ObjectFieldSelectorFieldPath- }---- ** V1ObjectMeta--- | V1ObjectMeta--- ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.-data V1ObjectMeta = V1ObjectMeta- { v1ObjectMetaAnnotations :: !(Maybe (Map.Map String Text)) -- ^ "annotations" - Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations- , v1ObjectMetaCreationTimestamp :: !(Maybe DateTime) -- ^ "creationTimestamp" - CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata- , v1ObjectMetaDeletionGracePeriodSeconds :: !(Maybe Integer) -- ^ "deletionGracePeriodSeconds" - Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.- , v1ObjectMetaDeletionTimestamp :: !(Maybe DateTime) -- ^ "deletionTimestamp" - DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata- , v1ObjectMetaFinalizers :: !(Maybe [Text]) -- ^ "finalizers" - Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.- , v1ObjectMetaGenerateName :: !(Maybe Text) -- ^ "generateName" - GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will return a 409. Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency- , v1ObjectMetaGeneration :: !(Maybe Integer) -- ^ "generation" - A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.- , v1ObjectMetaLabels :: !(Maybe (Map.Map String Text)) -- ^ "labels" - Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels- , v1ObjectMetaManagedFields :: !(Maybe [V1ManagedFieldsEntry]) -- ^ "managedFields" - ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.- , v1ObjectMetaName :: !(Maybe Text) -- ^ "name" - Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names- , v1ObjectMetaNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces- , v1ObjectMetaOwnerReferences :: !(Maybe [V1OwnerReference]) -- ^ "ownerReferences" - List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.- , v1ObjectMetaResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency- , v1ObjectMetaSelfLink :: !(Maybe Text) -- ^ "selfLink" - Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.- , v1ObjectMetaUid :: !(Maybe Text) -- ^ "uid" - UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ObjectMeta-instance A.FromJSON V1ObjectMeta where- parseJSON = A.withObject "V1ObjectMeta" $ \o ->- V1ObjectMeta- <$> (o .:? "annotations")- <*> (o .:? "creationTimestamp")- <*> (o .:? "deletionGracePeriodSeconds")- <*> (o .:? "deletionTimestamp")- <*> (o .:? "finalizers")- <*> (o .:? "generateName")- <*> (o .:? "generation")- <*> (o .:? "labels")- <*> (o .:? "managedFields")- <*> (o .:? "name")- <*> (o .:? "namespace")- <*> (o .:? "ownerReferences")- <*> (o .:? "resourceVersion")- <*> (o .:? "selfLink")- <*> (o .:? "uid")---- | ToJSON V1ObjectMeta-instance A.ToJSON V1ObjectMeta where- toJSON V1ObjectMeta {..} =- _omitNulls- [ "annotations" .= v1ObjectMetaAnnotations- , "creationTimestamp" .= v1ObjectMetaCreationTimestamp- , "deletionGracePeriodSeconds" .= v1ObjectMetaDeletionGracePeriodSeconds- , "deletionTimestamp" .= v1ObjectMetaDeletionTimestamp- , "finalizers" .= v1ObjectMetaFinalizers- , "generateName" .= v1ObjectMetaGenerateName- , "generation" .= v1ObjectMetaGeneration- , "labels" .= v1ObjectMetaLabels- , "managedFields" .= v1ObjectMetaManagedFields- , "name" .= v1ObjectMetaName- , "namespace" .= v1ObjectMetaNamespace- , "ownerReferences" .= v1ObjectMetaOwnerReferences- , "resourceVersion" .= v1ObjectMetaResourceVersion- , "selfLink" .= v1ObjectMetaSelfLink- , "uid" .= v1ObjectMetaUid- ]----- | Construct a value of type 'V1ObjectMeta' (by applying it's required fields, if any)-mkV1ObjectMeta- :: V1ObjectMeta-mkV1ObjectMeta =- V1ObjectMeta- { v1ObjectMetaAnnotations = Nothing- , v1ObjectMetaCreationTimestamp = Nothing- , v1ObjectMetaDeletionGracePeriodSeconds = Nothing- , v1ObjectMetaDeletionTimestamp = Nothing- , v1ObjectMetaFinalizers = Nothing- , v1ObjectMetaGenerateName = Nothing- , v1ObjectMetaGeneration = Nothing- , v1ObjectMetaLabels = Nothing- , v1ObjectMetaManagedFields = Nothing- , v1ObjectMetaName = Nothing- , v1ObjectMetaNamespace = Nothing- , v1ObjectMetaOwnerReferences = Nothing- , v1ObjectMetaResourceVersion = Nothing- , v1ObjectMetaSelfLink = Nothing- , v1ObjectMetaUid = Nothing- }---- ** V1ObjectReference--- | V1ObjectReference--- ObjectReference contains enough information to let you inspect or modify the referred object.-data V1ObjectReference = V1ObjectReference- { v1ObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent.- , v1ObjectReferenceFieldPath :: !(Maybe Text) -- ^ "fieldPath" - If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.- , v1ObjectReferenceKind :: !(Maybe Text) -- ^ "kind" - Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds- , v1ObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- , v1ObjectReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/- , v1ObjectReferenceResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency- , v1ObjectReferenceUid :: !(Maybe Text) -- ^ "uid" - UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ObjectReference-instance A.FromJSON V1ObjectReference where- parseJSON = A.withObject "V1ObjectReference" $ \o ->- V1ObjectReference- <$> (o .:? "apiVersion")- <*> (o .:? "fieldPath")- <*> (o .:? "kind")- <*> (o .:? "name")- <*> (o .:? "namespace")- <*> (o .:? "resourceVersion")- <*> (o .:? "uid")---- | ToJSON V1ObjectReference-instance A.ToJSON V1ObjectReference where- toJSON V1ObjectReference {..} =- _omitNulls- [ "apiVersion" .= v1ObjectReferenceApiVersion- , "fieldPath" .= v1ObjectReferenceFieldPath- , "kind" .= v1ObjectReferenceKind- , "name" .= v1ObjectReferenceName- , "namespace" .= v1ObjectReferenceNamespace- , "resourceVersion" .= v1ObjectReferenceResourceVersion- , "uid" .= v1ObjectReferenceUid- ]----- | Construct a value of type 'V1ObjectReference' (by applying it's required fields, if any)-mkV1ObjectReference- :: V1ObjectReference-mkV1ObjectReference =- V1ObjectReference- { v1ObjectReferenceApiVersion = Nothing- , v1ObjectReferenceFieldPath = Nothing- , v1ObjectReferenceKind = Nothing- , v1ObjectReferenceName = Nothing- , v1ObjectReferenceNamespace = Nothing- , v1ObjectReferenceResourceVersion = Nothing- , v1ObjectReferenceUid = Nothing- }---- ** V1OpaqueDeviceConfiguration--- | V1OpaqueDeviceConfiguration--- OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.-data V1OpaqueDeviceConfiguration = V1OpaqueDeviceConfiguration- { v1OpaqueDeviceConfigurationDriver :: !(Text) -- ^ /Required/ "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.- , v1OpaqueDeviceConfigurationParameters :: !(A.Value) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1OpaqueDeviceConfiguration-instance A.FromJSON V1OpaqueDeviceConfiguration where- parseJSON = A.withObject "V1OpaqueDeviceConfiguration" $ \o ->- V1OpaqueDeviceConfiguration- <$> (o .: "driver")- <*> (o .: "parameters")---- | ToJSON V1OpaqueDeviceConfiguration-instance A.ToJSON V1OpaqueDeviceConfiguration where- toJSON V1OpaqueDeviceConfiguration {..} =- _omitNulls- [ "driver" .= v1OpaqueDeviceConfigurationDriver- , "parameters" .= v1OpaqueDeviceConfigurationParameters- ]----- | Construct a value of type 'V1OpaqueDeviceConfiguration' (by applying it's required fields, if any)-mkV1OpaqueDeviceConfiguration- :: Text -- ^ 'v1OpaqueDeviceConfigurationDriver': 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.- -> A.Value -- ^ 'v1OpaqueDeviceConfigurationParameters': 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.- -> V1OpaqueDeviceConfiguration-mkV1OpaqueDeviceConfiguration v1OpaqueDeviceConfigurationDriver v1OpaqueDeviceConfigurationParameters =- V1OpaqueDeviceConfiguration- { v1OpaqueDeviceConfigurationDriver- , v1OpaqueDeviceConfigurationParameters- }---- ** V1Overhead--- | V1Overhead--- Overhead structure represents the resource overhead associated with running a pod.-data V1Overhead = V1Overhead- { v1OverheadPodFixed :: !(Maybe (Map.Map String Quantity)) -- ^ "podFixed" - podFixed represents the fixed resource overhead associated with running a pod.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Overhead-instance A.FromJSON V1Overhead where- parseJSON = A.withObject "V1Overhead" $ \o ->- V1Overhead- <$> (o .:? "podFixed")---- | ToJSON V1Overhead-instance A.ToJSON V1Overhead where- toJSON V1Overhead {..} =- _omitNulls- [ "podFixed" .= v1OverheadPodFixed- ]----- | Construct a value of type 'V1Overhead' (by applying it's required fields, if any)-mkV1Overhead- :: V1Overhead-mkV1Overhead =- V1Overhead- { v1OverheadPodFixed = Nothing- }---- ** V1OwnerReference--- | V1OwnerReference--- OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.-data V1OwnerReference = V1OwnerReference- { v1OwnerReferenceApiVersion :: !(Text) -- ^ /Required/ "apiVersion" - API version of the referent.- , v1OwnerReferenceBlockOwnerDeletion :: !(Maybe Bool) -- ^ "blockOwnerDeletion" - If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.- , v1OwnerReferenceController :: !(Maybe Bool) -- ^ "controller" - If true, this reference points to the managing controller.- , v1OwnerReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds- , v1OwnerReferenceName :: !(Text) -- ^ /Required/ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names- , v1OwnerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1OwnerReference-instance A.FromJSON V1OwnerReference where- parseJSON = A.withObject "V1OwnerReference" $ \o ->- V1OwnerReference- <$> (o .: "apiVersion")- <*> (o .:? "blockOwnerDeletion")- <*> (o .:? "controller")- <*> (o .: "kind")- <*> (o .: "name")- <*> (o .: "uid")---- | ToJSON V1OwnerReference-instance A.ToJSON V1OwnerReference where- toJSON V1OwnerReference {..} =- _omitNulls- [ "apiVersion" .= v1OwnerReferenceApiVersion- , "blockOwnerDeletion" .= v1OwnerReferenceBlockOwnerDeletion- , "controller" .= v1OwnerReferenceController- , "kind" .= v1OwnerReferenceKind- , "name" .= v1OwnerReferenceName- , "uid" .= v1OwnerReferenceUid- ]----- | Construct a value of type 'V1OwnerReference' (by applying it's required fields, if any)-mkV1OwnerReference- :: Text -- ^ 'v1OwnerReferenceApiVersion': API version of the referent.- -> Text -- ^ 'v1OwnerReferenceKind': Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds- -> Text -- ^ 'v1OwnerReferenceName': Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names- -> Text -- ^ 'v1OwnerReferenceUid': UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids- -> V1OwnerReference-mkV1OwnerReference v1OwnerReferenceApiVersion v1OwnerReferenceKind v1OwnerReferenceName v1OwnerReferenceUid =- V1OwnerReference- { v1OwnerReferenceApiVersion- , v1OwnerReferenceBlockOwnerDeletion = Nothing- , v1OwnerReferenceController = Nothing- , v1OwnerReferenceKind- , v1OwnerReferenceName- , v1OwnerReferenceUid- }---- ** V1ParamKind--- | V1ParamKind--- ParamKind is a tuple of Group Kind and Version.-data V1ParamKind = V1ParamKind- { v1ParamKindApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.- , v1ParamKindKind :: !(Maybe Text) -- ^ "kind" - Kind is the API kind the resources belong to. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ParamKind-instance A.FromJSON V1ParamKind where- parseJSON = A.withObject "V1ParamKind" $ \o ->- V1ParamKind- <$> (o .:? "apiVersion")- <*> (o .:? "kind")---- | ToJSON V1ParamKind-instance A.ToJSON V1ParamKind where- toJSON V1ParamKind {..} =- _omitNulls- [ "apiVersion" .= v1ParamKindApiVersion- , "kind" .= v1ParamKindKind- ]----- | Construct a value of type 'V1ParamKind' (by applying it's required fields, if any)-mkV1ParamKind- :: V1ParamKind-mkV1ParamKind =- V1ParamKind- { v1ParamKindApiVersion = Nothing- , v1ParamKindKind = Nothing- }---- ** V1ParamRef--- | V1ParamRef--- ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.-data V1ParamRef = V1ParamRef- { v1ParamRefName :: !(Maybe Text) -- ^ "name" - name is the name of the resource being referenced. 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. A single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.- , v1ParamRefNamespace :: !(Maybe Text) -- ^ "namespace" - 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.- , v1ParamRefParameterNotFoundAction :: !(Maybe Text) -- ^ "parameterNotFoundAction" - `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` Required- , v1ParamRefSelector :: !(Maybe V1LabelSelector) -- ^ "selector"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ParamRef-instance A.FromJSON V1ParamRef where- parseJSON = A.withObject "V1ParamRef" $ \o ->- V1ParamRef- <$> (o .:? "name")- <*> (o .:? "namespace")- <*> (o .:? "parameterNotFoundAction")- <*> (o .:? "selector")---- | ToJSON V1ParamRef-instance A.ToJSON V1ParamRef where- toJSON V1ParamRef {..} =- _omitNulls- [ "name" .= v1ParamRefName- , "namespace" .= v1ParamRefNamespace- , "parameterNotFoundAction" .= v1ParamRefParameterNotFoundAction- , "selector" .= v1ParamRefSelector- ]----- | Construct a value of type 'V1ParamRef' (by applying it's required fields, if any)-mkV1ParamRef- :: V1ParamRef-mkV1ParamRef =- V1ParamRef- { v1ParamRefName = Nothing- , v1ParamRefNamespace = Nothing- , v1ParamRefParameterNotFoundAction = Nothing- , v1ParamRefSelector = Nothing- }---- ** V1ParentReference--- | V1ParentReference--- ParentReference describes a reference to a parent object.-data V1ParentReference = V1ParentReference- { v1ParentReferenceGroup :: !(Maybe Text) -- ^ "group" - Group is the group of the object being referenced.- , v1ParentReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of the object being referenced.- , v1ParentReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the object being referenced.- , v1ParentReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the resource of the object being referenced.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ParentReference-instance A.FromJSON V1ParentReference where- parseJSON = A.withObject "V1ParentReference" $ \o ->- V1ParentReference- <$> (o .:? "group")- <*> (o .: "name")- <*> (o .:? "namespace")- <*> (o .: "resource")---- | ToJSON V1ParentReference-instance A.ToJSON V1ParentReference where- toJSON V1ParentReference {..} =- _omitNulls- [ "group" .= v1ParentReferenceGroup- , "name" .= v1ParentReferenceName- , "namespace" .= v1ParentReferenceNamespace- , "resource" .= v1ParentReferenceResource- ]----- | Construct a value of type 'V1ParentReference' (by applying it's required fields, if any)-mkV1ParentReference- :: Text -- ^ 'v1ParentReferenceName': Name is the name of the object being referenced.- -> Text -- ^ 'v1ParentReferenceResource': Resource is the resource of the object being referenced.- -> V1ParentReference-mkV1ParentReference v1ParentReferenceName v1ParentReferenceResource =- V1ParentReference- { v1ParentReferenceGroup = Nothing- , v1ParentReferenceName- , v1ParentReferenceNamespace = Nothing- , v1ParentReferenceResource- }---- ** V1PersistentVolume--- | V1PersistentVolume--- PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes-data V1PersistentVolume = V1PersistentVolume- { v1PersistentVolumeApiVersion :: !(Maybe Text) -- ^ "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- , v1PersistentVolumeKind :: !(Maybe Text) -- ^ "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- , v1PersistentVolumeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PersistentVolumeSpec :: !(Maybe V1PersistentVolumeSpec) -- ^ "spec"- , v1PersistentVolumeStatus :: !(Maybe V1PersistentVolumeStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolume-instance A.FromJSON V1PersistentVolume where- parseJSON = A.withObject "V1PersistentVolume" $ \o ->- V1PersistentVolume- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1PersistentVolume-instance A.ToJSON V1PersistentVolume where- toJSON V1PersistentVolume {..} =- _omitNulls- [ "apiVersion" .= v1PersistentVolumeApiVersion- , "kind" .= v1PersistentVolumeKind- , "metadata" .= v1PersistentVolumeMetadata- , "spec" .= v1PersistentVolumeSpec- , "status" .= v1PersistentVolumeStatus- ]----- | Construct a value of type 'V1PersistentVolume' (by applying it's required fields, if any)-mkV1PersistentVolume- :: V1PersistentVolume-mkV1PersistentVolume =- V1PersistentVolume- { v1PersistentVolumeApiVersion = Nothing- , v1PersistentVolumeKind = Nothing- , v1PersistentVolumeMetadata = Nothing- , v1PersistentVolumeSpec = Nothing- , v1PersistentVolumeStatus = Nothing- }---- ** V1PersistentVolumeClaim--- | V1PersistentVolumeClaim--- PersistentVolumeClaim is a user's request for and claim to a persistent volume-data V1PersistentVolumeClaim = V1PersistentVolumeClaim- { v1PersistentVolumeClaimApiVersion :: !(Maybe Text) -- ^ "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- , v1PersistentVolumeClaimKind :: !(Maybe Text) -- ^ "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- , v1PersistentVolumeClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PersistentVolumeClaimSpec :: !(Maybe V1PersistentVolumeClaimSpec) -- ^ "spec"- , v1PersistentVolumeClaimStatus :: !(Maybe V1PersistentVolumeClaimStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeClaim-instance A.FromJSON V1PersistentVolumeClaim where- parseJSON = A.withObject "V1PersistentVolumeClaim" $ \o ->- V1PersistentVolumeClaim- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1PersistentVolumeClaim-instance A.ToJSON V1PersistentVolumeClaim where- toJSON V1PersistentVolumeClaim {..} =- _omitNulls- [ "apiVersion" .= v1PersistentVolumeClaimApiVersion- , "kind" .= v1PersistentVolumeClaimKind- , "metadata" .= v1PersistentVolumeClaimMetadata- , "spec" .= v1PersistentVolumeClaimSpec- , "status" .= v1PersistentVolumeClaimStatus- ]----- | Construct a value of type 'V1PersistentVolumeClaim' (by applying it's required fields, if any)-mkV1PersistentVolumeClaim- :: V1PersistentVolumeClaim-mkV1PersistentVolumeClaim =- V1PersistentVolumeClaim- { v1PersistentVolumeClaimApiVersion = Nothing- , v1PersistentVolumeClaimKind = Nothing- , v1PersistentVolumeClaimMetadata = Nothing- , v1PersistentVolumeClaimSpec = Nothing- , v1PersistentVolumeClaimStatus = Nothing- }---- ** V1PersistentVolumeClaimCondition--- | V1PersistentVolumeClaimCondition--- PersistentVolumeClaimCondition contains details about state of pvc-data V1PersistentVolumeClaimCondition = V1PersistentVolumeClaimCondition- { v1PersistentVolumeClaimConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - lastProbeTime is the time we probed the condition.- , v1PersistentVolumeClaimConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime is the time the condition transitioned from one status to another.- , v1PersistentVolumeClaimConditionMessage :: !(Maybe Text) -- ^ "message" - message is the human-readable message indicating details about last transition.- , v1PersistentVolumeClaimConditionReason :: !(Maybe Text) -- ^ "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.- , v1PersistentVolumeClaimConditionStatus :: !(Text) -- ^ /Required/ "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- , v1PersistentVolumeClaimConditionType :: !(Text) -- ^ /Required/ "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- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeClaimCondition-instance A.FromJSON V1PersistentVolumeClaimCondition where- parseJSON = A.withObject "V1PersistentVolumeClaimCondition" $ \o ->- V1PersistentVolumeClaimCondition- <$> (o .:? "lastProbeTime")- <*> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1PersistentVolumeClaimCondition-instance A.ToJSON V1PersistentVolumeClaimCondition where- toJSON V1PersistentVolumeClaimCondition {..} =- _omitNulls- [ "lastProbeTime" .= v1PersistentVolumeClaimConditionLastProbeTime- , "lastTransitionTime" .= v1PersistentVolumeClaimConditionLastTransitionTime- , "message" .= v1PersistentVolumeClaimConditionMessage- , "reason" .= v1PersistentVolumeClaimConditionReason- , "status" .= v1PersistentVolumeClaimConditionStatus- , "type" .= v1PersistentVolumeClaimConditionType- ]----- | Construct a value of type 'V1PersistentVolumeClaimCondition' (by applying it's required fields, if any)-mkV1PersistentVolumeClaimCondition- :: Text -- ^ 'v1PersistentVolumeClaimConditionStatus': 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- -> Text -- ^ 'v1PersistentVolumeClaimConditionType': 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- -> V1PersistentVolumeClaimCondition-mkV1PersistentVolumeClaimCondition v1PersistentVolumeClaimConditionStatus v1PersistentVolumeClaimConditionType =- V1PersistentVolumeClaimCondition- { v1PersistentVolumeClaimConditionLastProbeTime = Nothing- , v1PersistentVolumeClaimConditionLastTransitionTime = Nothing- , v1PersistentVolumeClaimConditionMessage = Nothing- , v1PersistentVolumeClaimConditionReason = Nothing- , v1PersistentVolumeClaimConditionStatus- , v1PersistentVolumeClaimConditionType- }---- ** V1PersistentVolumeClaimList--- | V1PersistentVolumeClaimList--- PersistentVolumeClaimList is a list of PersistentVolumeClaim items.-data V1PersistentVolumeClaimList = V1PersistentVolumeClaimList- { v1PersistentVolumeClaimListApiVersion :: !(Maybe Text) -- ^ "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- , v1PersistentVolumeClaimListItems :: !([V1PersistentVolumeClaim]) -- ^ /Required/ "items" - items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims- , v1PersistentVolumeClaimListKind :: !(Maybe Text) -- ^ "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- , v1PersistentVolumeClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeClaimList-instance A.FromJSON V1PersistentVolumeClaimList where- parseJSON = A.withObject "V1PersistentVolumeClaimList" $ \o ->- V1PersistentVolumeClaimList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1PersistentVolumeClaimList-instance A.ToJSON V1PersistentVolumeClaimList where- toJSON V1PersistentVolumeClaimList {..} =- _omitNulls- [ "apiVersion" .= v1PersistentVolumeClaimListApiVersion- , "items" .= v1PersistentVolumeClaimListItems- , "kind" .= v1PersistentVolumeClaimListKind- , "metadata" .= v1PersistentVolumeClaimListMetadata- ]----- | Construct a value of type 'V1PersistentVolumeClaimList' (by applying it's required fields, if any)-mkV1PersistentVolumeClaimList- :: [V1PersistentVolumeClaim] -- ^ 'v1PersistentVolumeClaimListItems': items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims- -> V1PersistentVolumeClaimList-mkV1PersistentVolumeClaimList v1PersistentVolumeClaimListItems =- V1PersistentVolumeClaimList- { v1PersistentVolumeClaimListApiVersion = Nothing- , v1PersistentVolumeClaimListItems- , v1PersistentVolumeClaimListKind = Nothing- , v1PersistentVolumeClaimListMetadata = Nothing- }---- ** V1PersistentVolumeClaimSpec--- | V1PersistentVolumeClaimSpec--- PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes-data V1PersistentVolumeClaimSpec = V1PersistentVolumeClaimSpec- { v1PersistentVolumeClaimSpecAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1- , v1PersistentVolumeClaimSpecDataSource :: !(Maybe V1TypedLocalObjectReference) -- ^ "dataSource"- , v1PersistentVolumeClaimSpecDataSourceRef :: !(Maybe V1TypedObjectReference) -- ^ "dataSourceRef"- , v1PersistentVolumeClaimSpecResources :: !(Maybe V1VolumeResourceRequirements) -- ^ "resources"- , v1PersistentVolumeClaimSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"- , v1PersistentVolumeClaimSpecStorageClassName :: !(Maybe Text) -- ^ "storageClassName" - storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1- , v1PersistentVolumeClaimSpecVolumeAttributesClassName :: !(Maybe Text) -- ^ "volumeAttributesClassName" - volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/- , v1PersistentVolumeClaimSpecVolumeMode :: !(Maybe Text) -- ^ "volumeMode" - volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.- , v1PersistentVolumeClaimSpecVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the binding reference to the PersistentVolume backing this claim.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeClaimSpec-instance A.FromJSON V1PersistentVolumeClaimSpec where- parseJSON = A.withObject "V1PersistentVolumeClaimSpec" $ \o ->- V1PersistentVolumeClaimSpec- <$> (o .:? "accessModes")- <*> (o .:? "dataSource")- <*> (o .:? "dataSourceRef")- <*> (o .:? "resources")- <*> (o .:? "selector")- <*> (o .:? "storageClassName")- <*> (o .:? "volumeAttributesClassName")- <*> (o .:? "volumeMode")- <*> (o .:? "volumeName")---- | ToJSON V1PersistentVolumeClaimSpec-instance A.ToJSON V1PersistentVolumeClaimSpec where- toJSON V1PersistentVolumeClaimSpec {..} =- _omitNulls- [ "accessModes" .= v1PersistentVolumeClaimSpecAccessModes- , "dataSource" .= v1PersistentVolumeClaimSpecDataSource- , "dataSourceRef" .= v1PersistentVolumeClaimSpecDataSourceRef- , "resources" .= v1PersistentVolumeClaimSpecResources- , "selector" .= v1PersistentVolumeClaimSpecSelector- , "storageClassName" .= v1PersistentVolumeClaimSpecStorageClassName- , "volumeAttributesClassName" .= v1PersistentVolumeClaimSpecVolumeAttributesClassName- , "volumeMode" .= v1PersistentVolumeClaimSpecVolumeMode- , "volumeName" .= v1PersistentVolumeClaimSpecVolumeName- ]----- | Construct a value of type 'V1PersistentVolumeClaimSpec' (by applying it's required fields, if any)-mkV1PersistentVolumeClaimSpec- :: V1PersistentVolumeClaimSpec-mkV1PersistentVolumeClaimSpec =- V1PersistentVolumeClaimSpec- { v1PersistentVolumeClaimSpecAccessModes = Nothing- , v1PersistentVolumeClaimSpecDataSource = Nothing- , v1PersistentVolumeClaimSpecDataSourceRef = Nothing- , v1PersistentVolumeClaimSpecResources = Nothing- , v1PersistentVolumeClaimSpecSelector = Nothing- , v1PersistentVolumeClaimSpecStorageClassName = Nothing- , v1PersistentVolumeClaimSpecVolumeAttributesClassName = Nothing- , v1PersistentVolumeClaimSpecVolumeMode = Nothing- , v1PersistentVolumeClaimSpecVolumeName = Nothing- }---- ** V1PersistentVolumeClaimStatus--- | V1PersistentVolumeClaimStatus--- PersistentVolumeClaimStatus is the current status of a persistent volume claim.-data V1PersistentVolumeClaimStatus = V1PersistentVolumeClaimStatus- { v1PersistentVolumeClaimStatusAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1- , v1PersistentVolumeClaimStatusAllocatedResourceStatuses :: !(Maybe (Map.Map String Text)) -- ^ "allocatedResourceStatuses" - allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.- , v1PersistentVolumeClaimStatusAllocatedResources :: !(Maybe (Map.Map String Quantity)) -- ^ "allocatedResources" - allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.- , v1PersistentVolumeClaimStatusCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - capacity represents the actual resources of the underlying volume.- , v1PersistentVolumeClaimStatusConditions :: !(Maybe [V1PersistentVolumeClaimCondition]) -- ^ "conditions" - conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.- , v1PersistentVolumeClaimStatusCurrentVolumeAttributesClassName :: !(Maybe Text) -- ^ "currentVolumeAttributesClassName" - currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim- , v1PersistentVolumeClaimStatusModifyVolumeStatus :: !(Maybe V1ModifyVolumeStatus) -- ^ "modifyVolumeStatus"- , v1PersistentVolumeClaimStatusPhase :: !(Maybe Text) -- ^ "phase" - phase represents the current phase of PersistentVolumeClaim.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeClaimStatus-instance A.FromJSON V1PersistentVolumeClaimStatus where- parseJSON = A.withObject "V1PersistentVolumeClaimStatus" $ \o ->- V1PersistentVolumeClaimStatus- <$> (o .:? "accessModes")- <*> (o .:? "allocatedResourceStatuses")- <*> (o .:? "allocatedResources")- <*> (o .:? "capacity")- <*> (o .:? "conditions")- <*> (o .:? "currentVolumeAttributesClassName")- <*> (o .:? "modifyVolumeStatus")- <*> (o .:? "phase")---- | ToJSON V1PersistentVolumeClaimStatus-instance A.ToJSON V1PersistentVolumeClaimStatus where- toJSON V1PersistentVolumeClaimStatus {..} =- _omitNulls- [ "accessModes" .= v1PersistentVolumeClaimStatusAccessModes- , "allocatedResourceStatuses" .= v1PersistentVolumeClaimStatusAllocatedResourceStatuses- , "allocatedResources" .= v1PersistentVolumeClaimStatusAllocatedResources- , "capacity" .= v1PersistentVolumeClaimStatusCapacity- , "conditions" .= v1PersistentVolumeClaimStatusConditions- , "currentVolumeAttributesClassName" .= v1PersistentVolumeClaimStatusCurrentVolumeAttributesClassName- , "modifyVolumeStatus" .= v1PersistentVolumeClaimStatusModifyVolumeStatus- , "phase" .= v1PersistentVolumeClaimStatusPhase- ]----- | Construct a value of type 'V1PersistentVolumeClaimStatus' (by applying it's required fields, if any)-mkV1PersistentVolumeClaimStatus- :: V1PersistentVolumeClaimStatus-mkV1PersistentVolumeClaimStatus =- V1PersistentVolumeClaimStatus- { v1PersistentVolumeClaimStatusAccessModes = Nothing- , v1PersistentVolumeClaimStatusAllocatedResourceStatuses = Nothing- , v1PersistentVolumeClaimStatusAllocatedResources = Nothing- , v1PersistentVolumeClaimStatusCapacity = Nothing- , v1PersistentVolumeClaimStatusConditions = Nothing- , v1PersistentVolumeClaimStatusCurrentVolumeAttributesClassName = Nothing- , v1PersistentVolumeClaimStatusModifyVolumeStatus = Nothing- , v1PersistentVolumeClaimStatusPhase = Nothing- }---- ** V1PersistentVolumeClaimTemplate--- | V1PersistentVolumeClaimTemplate--- PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.-data V1PersistentVolumeClaimTemplate = V1PersistentVolumeClaimTemplate- { v1PersistentVolumeClaimTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PersistentVolumeClaimTemplateSpec :: !(V1PersistentVolumeClaimSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeClaimTemplate-instance A.FromJSON V1PersistentVolumeClaimTemplate where- parseJSON = A.withObject "V1PersistentVolumeClaimTemplate" $ \o ->- V1PersistentVolumeClaimTemplate- <$> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1PersistentVolumeClaimTemplate-instance A.ToJSON V1PersistentVolumeClaimTemplate where- toJSON V1PersistentVolumeClaimTemplate {..} =- _omitNulls- [ "metadata" .= v1PersistentVolumeClaimTemplateMetadata- , "spec" .= v1PersistentVolumeClaimTemplateSpec- ]----- | Construct a value of type 'V1PersistentVolumeClaimTemplate' (by applying it's required fields, if any)-mkV1PersistentVolumeClaimTemplate- :: V1PersistentVolumeClaimSpec -- ^ 'v1PersistentVolumeClaimTemplateSpec' - -> V1PersistentVolumeClaimTemplate-mkV1PersistentVolumeClaimTemplate v1PersistentVolumeClaimTemplateSpec =- V1PersistentVolumeClaimTemplate- { v1PersistentVolumeClaimTemplateMetadata = Nothing- , v1PersistentVolumeClaimTemplateSpec- }---- ** V1PersistentVolumeClaimVolumeSource--- | V1PersistentVolumeClaimVolumeSource--- PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).-data V1PersistentVolumeClaimVolumeSource = V1PersistentVolumeClaimVolumeSource- { v1PersistentVolumeClaimVolumeSourceClaimName :: !(Text) -- ^ /Required/ "claimName" - claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims- , v1PersistentVolumeClaimVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly Will force the ReadOnly setting in VolumeMounts. Default false.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeClaimVolumeSource-instance A.FromJSON V1PersistentVolumeClaimVolumeSource where- parseJSON = A.withObject "V1PersistentVolumeClaimVolumeSource" $ \o ->- V1PersistentVolumeClaimVolumeSource- <$> (o .: "claimName")- <*> (o .:? "readOnly")---- | ToJSON V1PersistentVolumeClaimVolumeSource-instance A.ToJSON V1PersistentVolumeClaimVolumeSource where- toJSON V1PersistentVolumeClaimVolumeSource {..} =- _omitNulls- [ "claimName" .= v1PersistentVolumeClaimVolumeSourceClaimName- , "readOnly" .= v1PersistentVolumeClaimVolumeSourceReadOnly- ]----- | Construct a value of type 'V1PersistentVolumeClaimVolumeSource' (by applying it's required fields, if any)-mkV1PersistentVolumeClaimVolumeSource- :: Text -- ^ 'v1PersistentVolumeClaimVolumeSourceClaimName': claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims- -> V1PersistentVolumeClaimVolumeSource-mkV1PersistentVolumeClaimVolumeSource v1PersistentVolumeClaimVolumeSourceClaimName =- V1PersistentVolumeClaimVolumeSource- { v1PersistentVolumeClaimVolumeSourceClaimName- , v1PersistentVolumeClaimVolumeSourceReadOnly = Nothing- }---- ** V1PersistentVolumeList--- | V1PersistentVolumeList--- PersistentVolumeList is a list of PersistentVolume items.-data V1PersistentVolumeList = V1PersistentVolumeList- { v1PersistentVolumeListApiVersion :: !(Maybe Text) -- ^ "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- , v1PersistentVolumeListItems :: !([V1PersistentVolume]) -- ^ /Required/ "items" - items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes- , v1PersistentVolumeListKind :: !(Maybe Text) -- ^ "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- , v1PersistentVolumeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeList-instance A.FromJSON V1PersistentVolumeList where- parseJSON = A.withObject "V1PersistentVolumeList" $ \o ->- V1PersistentVolumeList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1PersistentVolumeList-instance A.ToJSON V1PersistentVolumeList where- toJSON V1PersistentVolumeList {..} =- _omitNulls- [ "apiVersion" .= v1PersistentVolumeListApiVersion- , "items" .= v1PersistentVolumeListItems- , "kind" .= v1PersistentVolumeListKind- , "metadata" .= v1PersistentVolumeListMetadata- ]----- | Construct a value of type 'V1PersistentVolumeList' (by applying it's required fields, if any)-mkV1PersistentVolumeList- :: [V1PersistentVolume] -- ^ 'v1PersistentVolumeListItems': items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes- -> V1PersistentVolumeList-mkV1PersistentVolumeList v1PersistentVolumeListItems =- V1PersistentVolumeList- { v1PersistentVolumeListApiVersion = Nothing- , v1PersistentVolumeListItems- , v1PersistentVolumeListKind = Nothing- , v1PersistentVolumeListMetadata = Nothing- }---- ** V1PersistentVolumeSpec--- | V1PersistentVolumeSpec--- PersistentVolumeSpec is the specification of a persistent volume.-data V1PersistentVolumeSpec = V1PersistentVolumeSpec- { v1PersistentVolumeSpecAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes- , v1PersistentVolumeSpecAwsElasticBlockStore :: !(Maybe V1AWSElasticBlockStoreVolumeSource) -- ^ "awsElasticBlockStore"- , v1PersistentVolumeSpecAzureDisk :: !(Maybe V1AzureDiskVolumeSource) -- ^ "azureDisk"- , v1PersistentVolumeSpecAzureFile :: !(Maybe V1AzureFilePersistentVolumeSource) -- ^ "azureFile"- , v1PersistentVolumeSpecCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity- , v1PersistentVolumeSpecCephfs :: !(Maybe V1CephFSPersistentVolumeSource) -- ^ "cephfs"- , v1PersistentVolumeSpecCinder :: !(Maybe V1CinderPersistentVolumeSource) -- ^ "cinder"- , v1PersistentVolumeSpecClaimRef :: !(Maybe V1ObjectReference) -- ^ "claimRef"- , v1PersistentVolumeSpecCsi :: !(Maybe V1CSIPersistentVolumeSource) -- ^ "csi"- , v1PersistentVolumeSpecFc :: !(Maybe V1FCVolumeSource) -- ^ "fc"- , v1PersistentVolumeSpecFlexVolume :: !(Maybe V1FlexPersistentVolumeSource) -- ^ "flexVolume"- , v1PersistentVolumeSpecFlocker :: !(Maybe V1FlockerVolumeSource) -- ^ "flocker"- , v1PersistentVolumeSpecGcePersistentDisk :: !(Maybe V1GCEPersistentDiskVolumeSource) -- ^ "gcePersistentDisk"- , v1PersistentVolumeSpecGlusterfs :: !(Maybe V1GlusterfsPersistentVolumeSource) -- ^ "glusterfs"- , v1PersistentVolumeSpecHostPath :: !(Maybe V1HostPathVolumeSource) -- ^ "hostPath"- , v1PersistentVolumeSpecIscsi :: !(Maybe V1ISCSIPersistentVolumeSource) -- ^ "iscsi"- , v1PersistentVolumeSpecLocal :: !(Maybe V1LocalVolumeSource) -- ^ "local"- , v1PersistentVolumeSpecMountOptions :: !(Maybe [Text]) -- ^ "mountOptions" - mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options- , v1PersistentVolumeSpecNfs :: !(Maybe V1NFSVolumeSource) -- ^ "nfs"- , v1PersistentVolumeSpecNodeAffinity :: !(Maybe V1VolumeNodeAffinity) -- ^ "nodeAffinity"- , v1PersistentVolumeSpecPersistentVolumeReclaimPolicy :: !(Maybe Text) -- ^ "persistentVolumeReclaimPolicy" - 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- , v1PersistentVolumeSpecPhotonPersistentDisk :: !(Maybe V1PhotonPersistentDiskVolumeSource) -- ^ "photonPersistentDisk"- , v1PersistentVolumeSpecPortworxVolume :: !(Maybe V1PortworxVolumeSource) -- ^ "portworxVolume"- , v1PersistentVolumeSpecQuobyte :: !(Maybe V1QuobyteVolumeSource) -- ^ "quobyte"- , v1PersistentVolumeSpecRbd :: !(Maybe V1RBDPersistentVolumeSource) -- ^ "rbd"- , v1PersistentVolumeSpecScaleIo :: !(Maybe V1ScaleIOPersistentVolumeSource) -- ^ "scaleIO"- , v1PersistentVolumeSpecStorageClassName :: !(Maybe Text) -- ^ "storageClassName" - storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.- , v1PersistentVolumeSpecStorageos :: !(Maybe V1StorageOSPersistentVolumeSource) -- ^ "storageos"- , v1PersistentVolumeSpecVolumeAttributesClassName :: !(Maybe Text) -- ^ "volumeAttributesClassName" - 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.- , v1PersistentVolumeSpecVolumeMode :: !(Maybe Text) -- ^ "volumeMode" - 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.- , v1PersistentVolumeSpecVsphereVolume :: !(Maybe V1VsphereVirtualDiskVolumeSource) -- ^ "vsphereVolume"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeSpec-instance A.FromJSON V1PersistentVolumeSpec where- parseJSON = A.withObject "V1PersistentVolumeSpec" $ \o ->- V1PersistentVolumeSpec- <$> (o .:? "accessModes")- <*> (o .:? "awsElasticBlockStore")- <*> (o .:? "azureDisk")- <*> (o .:? "azureFile")- <*> (o .:? "capacity")- <*> (o .:? "cephfs")- <*> (o .:? "cinder")- <*> (o .:? "claimRef")- <*> (o .:? "csi")- <*> (o .:? "fc")- <*> (o .:? "flexVolume")- <*> (o .:? "flocker")- <*> (o .:? "gcePersistentDisk")- <*> (o .:? "glusterfs")- <*> (o .:? "hostPath")- <*> (o .:? "iscsi")- <*> (o .:? "local")- <*> (o .:? "mountOptions")- <*> (o .:? "nfs")- <*> (o .:? "nodeAffinity")- <*> (o .:? "persistentVolumeReclaimPolicy")- <*> (o .:? "photonPersistentDisk")- <*> (o .:? "portworxVolume")- <*> (o .:? "quobyte")- <*> (o .:? "rbd")- <*> (o .:? "scaleIO")- <*> (o .:? "storageClassName")- <*> (o .:? "storageos")- <*> (o .:? "volumeAttributesClassName")- <*> (o .:? "volumeMode")- <*> (o .:? "vsphereVolume")---- | ToJSON V1PersistentVolumeSpec-instance A.ToJSON V1PersistentVolumeSpec where- toJSON V1PersistentVolumeSpec {..} =- _omitNulls- [ "accessModes" .= v1PersistentVolumeSpecAccessModes- , "awsElasticBlockStore" .= v1PersistentVolumeSpecAwsElasticBlockStore- , "azureDisk" .= v1PersistentVolumeSpecAzureDisk- , "azureFile" .= v1PersistentVolumeSpecAzureFile- , "capacity" .= v1PersistentVolumeSpecCapacity- , "cephfs" .= v1PersistentVolumeSpecCephfs- , "cinder" .= v1PersistentVolumeSpecCinder- , "claimRef" .= v1PersistentVolumeSpecClaimRef- , "csi" .= v1PersistentVolumeSpecCsi- , "fc" .= v1PersistentVolumeSpecFc- , "flexVolume" .= v1PersistentVolumeSpecFlexVolume- , "flocker" .= v1PersistentVolumeSpecFlocker- , "gcePersistentDisk" .= v1PersistentVolumeSpecGcePersistentDisk- , "glusterfs" .= v1PersistentVolumeSpecGlusterfs- , "hostPath" .= v1PersistentVolumeSpecHostPath- , "iscsi" .= v1PersistentVolumeSpecIscsi- , "local" .= v1PersistentVolumeSpecLocal- , "mountOptions" .= v1PersistentVolumeSpecMountOptions- , "nfs" .= v1PersistentVolumeSpecNfs- , "nodeAffinity" .= v1PersistentVolumeSpecNodeAffinity- , "persistentVolumeReclaimPolicy" .= v1PersistentVolumeSpecPersistentVolumeReclaimPolicy- , "photonPersistentDisk" .= v1PersistentVolumeSpecPhotonPersistentDisk- , "portworxVolume" .= v1PersistentVolumeSpecPortworxVolume- , "quobyte" .= v1PersistentVolumeSpecQuobyte- , "rbd" .= v1PersistentVolumeSpecRbd- , "scaleIO" .= v1PersistentVolumeSpecScaleIo- , "storageClassName" .= v1PersistentVolumeSpecStorageClassName- , "storageos" .= v1PersistentVolumeSpecStorageos- , "volumeAttributesClassName" .= v1PersistentVolumeSpecVolumeAttributesClassName- , "volumeMode" .= v1PersistentVolumeSpecVolumeMode- , "vsphereVolume" .= v1PersistentVolumeSpecVsphereVolume- ]----- | Construct a value of type 'V1PersistentVolumeSpec' (by applying it's required fields, if any)-mkV1PersistentVolumeSpec- :: V1PersistentVolumeSpec-mkV1PersistentVolumeSpec =- V1PersistentVolumeSpec- { v1PersistentVolumeSpecAccessModes = Nothing- , v1PersistentVolumeSpecAwsElasticBlockStore = Nothing- , v1PersistentVolumeSpecAzureDisk = Nothing- , v1PersistentVolumeSpecAzureFile = Nothing- , v1PersistentVolumeSpecCapacity = Nothing- , v1PersistentVolumeSpecCephfs = Nothing- , v1PersistentVolumeSpecCinder = Nothing- , v1PersistentVolumeSpecClaimRef = Nothing- , v1PersistentVolumeSpecCsi = Nothing- , v1PersistentVolumeSpecFc = Nothing- , v1PersistentVolumeSpecFlexVolume = Nothing- , v1PersistentVolumeSpecFlocker = Nothing- , v1PersistentVolumeSpecGcePersistentDisk = Nothing- , v1PersistentVolumeSpecGlusterfs = Nothing- , v1PersistentVolumeSpecHostPath = Nothing- , v1PersistentVolumeSpecIscsi = Nothing- , v1PersistentVolumeSpecLocal = Nothing- , v1PersistentVolumeSpecMountOptions = Nothing- , v1PersistentVolumeSpecNfs = Nothing- , v1PersistentVolumeSpecNodeAffinity = Nothing- , v1PersistentVolumeSpecPersistentVolumeReclaimPolicy = Nothing- , v1PersistentVolumeSpecPhotonPersistentDisk = Nothing- , v1PersistentVolumeSpecPortworxVolume = Nothing- , v1PersistentVolumeSpecQuobyte = Nothing- , v1PersistentVolumeSpecRbd = Nothing- , v1PersistentVolumeSpecScaleIo = Nothing- , v1PersistentVolumeSpecStorageClassName = Nothing- , v1PersistentVolumeSpecStorageos = Nothing- , v1PersistentVolumeSpecVolumeAttributesClassName = Nothing- , v1PersistentVolumeSpecVolumeMode = Nothing- , v1PersistentVolumeSpecVsphereVolume = Nothing- }---- ** V1PersistentVolumeStatus--- | V1PersistentVolumeStatus--- PersistentVolumeStatus is the current status of a persistent volume.-data V1PersistentVolumeStatus = V1PersistentVolumeStatus- { v1PersistentVolumeStatusLastPhaseTransitionTime :: !(Maybe DateTime) -- ^ "lastPhaseTransitionTime" - lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions.- , v1PersistentVolumeStatusMessage :: !(Maybe Text) -- ^ "message" - message is a human-readable message indicating details about why the volume is in this state.- , v1PersistentVolumeStatusPhase :: !(Maybe Text) -- ^ "phase" - phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase- , v1PersistentVolumeStatusReason :: !(Maybe Text) -- ^ "reason" - reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PersistentVolumeStatus-instance A.FromJSON V1PersistentVolumeStatus where- parseJSON = A.withObject "V1PersistentVolumeStatus" $ \o ->- V1PersistentVolumeStatus- <$> (o .:? "lastPhaseTransitionTime")- <*> (o .:? "message")- <*> (o .:? "phase")- <*> (o .:? "reason")---- | ToJSON V1PersistentVolumeStatus-instance A.ToJSON V1PersistentVolumeStatus where- toJSON V1PersistentVolumeStatus {..} =- _omitNulls- [ "lastPhaseTransitionTime" .= v1PersistentVolumeStatusLastPhaseTransitionTime- , "message" .= v1PersistentVolumeStatusMessage- , "phase" .= v1PersistentVolumeStatusPhase- , "reason" .= v1PersistentVolumeStatusReason- ]----- | Construct a value of type 'V1PersistentVolumeStatus' (by applying it's required fields, if any)-mkV1PersistentVolumeStatus- :: V1PersistentVolumeStatus-mkV1PersistentVolumeStatus =- V1PersistentVolumeStatus- { v1PersistentVolumeStatusLastPhaseTransitionTime = Nothing- , v1PersistentVolumeStatusMessage = Nothing- , v1PersistentVolumeStatusPhase = Nothing- , v1PersistentVolumeStatusReason = Nothing- }---- ** V1PhotonPersistentDiskVolumeSource--- | V1PhotonPersistentDiskVolumeSource--- Represents a Photon Controller persistent disk resource.-data V1PhotonPersistentDiskVolumeSource = V1PhotonPersistentDiskVolumeSource- { v1PhotonPersistentDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.- , v1PhotonPersistentDiskVolumeSourcePdId :: !(Text) -- ^ /Required/ "pdID" - pdID is the ID that identifies Photon Controller persistent disk- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PhotonPersistentDiskVolumeSource-instance A.FromJSON V1PhotonPersistentDiskVolumeSource where- parseJSON = A.withObject "V1PhotonPersistentDiskVolumeSource" $ \o ->- V1PhotonPersistentDiskVolumeSource- <$> (o .:? "fsType")- <*> (o .: "pdID")---- | ToJSON V1PhotonPersistentDiskVolumeSource-instance A.ToJSON V1PhotonPersistentDiskVolumeSource where- toJSON V1PhotonPersistentDiskVolumeSource {..} =- _omitNulls- [ "fsType" .= v1PhotonPersistentDiskVolumeSourceFsType- , "pdID" .= v1PhotonPersistentDiskVolumeSourcePdId- ]----- | Construct a value of type 'V1PhotonPersistentDiskVolumeSource' (by applying it's required fields, if any)-mkV1PhotonPersistentDiskVolumeSource- :: Text -- ^ 'v1PhotonPersistentDiskVolumeSourcePdId': pdID is the ID that identifies Photon Controller persistent disk- -> V1PhotonPersistentDiskVolumeSource-mkV1PhotonPersistentDiskVolumeSource v1PhotonPersistentDiskVolumeSourcePdId =- V1PhotonPersistentDiskVolumeSource- { v1PhotonPersistentDiskVolumeSourceFsType = Nothing- , v1PhotonPersistentDiskVolumeSourcePdId- }---- ** V1Pod--- | V1Pod--- Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.-data V1Pod = V1Pod- { v1PodApiVersion :: !(Maybe Text) -- ^ "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- , v1PodKind :: !(Maybe Text) -- ^ "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- , v1PodMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PodSpec :: !(Maybe V1PodSpec) -- ^ "spec"- , v1PodStatus :: !(Maybe V1PodStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Pod-instance A.FromJSON V1Pod where- parseJSON = A.withObject "V1Pod" $ \o ->- V1Pod- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1Pod-instance A.ToJSON V1Pod where- toJSON V1Pod {..} =- _omitNulls- [ "apiVersion" .= v1PodApiVersion- , "kind" .= v1PodKind- , "metadata" .= v1PodMetadata- , "spec" .= v1PodSpec- , "status" .= v1PodStatus- ]----- | Construct a value of type 'V1Pod' (by applying it's required fields, if any)-mkV1Pod- :: V1Pod-mkV1Pod =- V1Pod- { v1PodApiVersion = Nothing- , v1PodKind = Nothing- , v1PodMetadata = Nothing- , v1PodSpec = Nothing- , v1PodStatus = Nothing- }---- ** V1PodAffinity--- | V1PodAffinity--- Pod affinity is a group of inter pod affinity scheduling rules.-data V1PodAffinity = V1PodAffinity- { v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1WeightedPodAffinityTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.- , v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PodAffinityTerm]) -- ^ "requiredDuringSchedulingIgnoredDuringExecution" - If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodAffinity-instance A.FromJSON V1PodAffinity where- parseJSON = A.withObject "V1PodAffinity" $ \o ->- V1PodAffinity- <$> (o .:? "preferredDuringSchedulingIgnoredDuringExecution")- <*> (o .:? "requiredDuringSchedulingIgnoredDuringExecution")---- | ToJSON V1PodAffinity-instance A.ToJSON V1PodAffinity where- toJSON V1PodAffinity {..} =- _omitNulls- [ "preferredDuringSchedulingIgnoredDuringExecution" .= v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution- , "requiredDuringSchedulingIgnoredDuringExecution" .= v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution- ]----- | Construct a value of type 'V1PodAffinity' (by applying it's required fields, if any)-mkV1PodAffinity- :: V1PodAffinity-mkV1PodAffinity =- V1PodAffinity- { v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution = Nothing- , v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution = Nothing- }---- ** V1PodAffinityTerm--- | V1PodAffinityTerm--- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running-data V1PodAffinityTerm = V1PodAffinityTerm- { v1PodAffinityTermLabelSelector :: !(Maybe V1LabelSelector) -- ^ "labelSelector"- , v1PodAffinityTermMatchLabelKeys :: !(Maybe [Text]) -- ^ "matchLabelKeys" - MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.- , v1PodAffinityTermMismatchLabelKeys :: !(Maybe [Text]) -- ^ "mismatchLabelKeys" - MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.- , v1PodAffinityTermNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"- , v1PodAffinityTermNamespaces :: !(Maybe [Text]) -- ^ "namespaces" - namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".- , v1PodAffinityTermTopologyKey :: !(Text) -- ^ /Required/ "topologyKey" - This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodAffinityTerm-instance A.FromJSON V1PodAffinityTerm where- parseJSON = A.withObject "V1PodAffinityTerm" $ \o ->- V1PodAffinityTerm- <$> (o .:? "labelSelector")- <*> (o .:? "matchLabelKeys")- <*> (o .:? "mismatchLabelKeys")- <*> (o .:? "namespaceSelector")- <*> (o .:? "namespaces")- <*> (o .: "topologyKey")---- | ToJSON V1PodAffinityTerm-instance A.ToJSON V1PodAffinityTerm where- toJSON V1PodAffinityTerm {..} =- _omitNulls- [ "labelSelector" .= v1PodAffinityTermLabelSelector- , "matchLabelKeys" .= v1PodAffinityTermMatchLabelKeys- , "mismatchLabelKeys" .= v1PodAffinityTermMismatchLabelKeys- , "namespaceSelector" .= v1PodAffinityTermNamespaceSelector- , "namespaces" .= v1PodAffinityTermNamespaces- , "topologyKey" .= v1PodAffinityTermTopologyKey- ]----- | Construct a value of type 'V1PodAffinityTerm' (by applying it's required fields, if any)-mkV1PodAffinityTerm- :: Text -- ^ 'v1PodAffinityTermTopologyKey': This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.- -> V1PodAffinityTerm-mkV1PodAffinityTerm v1PodAffinityTermTopologyKey =- V1PodAffinityTerm- { v1PodAffinityTermLabelSelector = Nothing- , v1PodAffinityTermMatchLabelKeys = Nothing- , v1PodAffinityTermMismatchLabelKeys = Nothing- , v1PodAffinityTermNamespaceSelector = Nothing- , v1PodAffinityTermNamespaces = Nothing- , v1PodAffinityTermTopologyKey- }---- ** V1PodAntiAffinity--- | V1PodAntiAffinity--- Pod anti affinity is a group of inter pod anti affinity scheduling rules.-data V1PodAntiAffinity = V1PodAntiAffinity- { v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1WeightedPodAffinityTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting \"weight\" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.- , v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PodAffinityTerm]) -- ^ "requiredDuringSchedulingIgnoredDuringExecution" - If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodAntiAffinity-instance A.FromJSON V1PodAntiAffinity where- parseJSON = A.withObject "V1PodAntiAffinity" $ \o ->- V1PodAntiAffinity- <$> (o .:? "preferredDuringSchedulingIgnoredDuringExecution")- <*> (o .:? "requiredDuringSchedulingIgnoredDuringExecution")---- | ToJSON V1PodAntiAffinity-instance A.ToJSON V1PodAntiAffinity where- toJSON V1PodAntiAffinity {..} =- _omitNulls- [ "preferredDuringSchedulingIgnoredDuringExecution" .= v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution- , "requiredDuringSchedulingIgnoredDuringExecution" .= v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution- ]----- | Construct a value of type 'V1PodAntiAffinity' (by applying it's required fields, if any)-mkV1PodAntiAffinity- :: V1PodAntiAffinity-mkV1PodAntiAffinity =- V1PodAntiAffinity- { v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution = Nothing- , v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution = Nothing- }---- ** V1PodCertificateProjection--- | V1PodCertificateProjection--- PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem.-data V1PodCertificateProjection = V1PodCertificateProjection- { v1PodCertificateProjectionCertificateChainPath :: !(Maybe Text) -- ^ "certificateChainPath" - Write the certificate chain at this path in the projected volume. Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.- , v1PodCertificateProjectionCredentialBundlePath :: !(Maybe Text) -- ^ "credentialBundlePath" - Write the credential bundle at this path in the projected volume. The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key.- , v1PodCertificateProjectionKeyPath :: !(Maybe Text) -- ^ "keyPath" - Write the key at this path in the projected volume. Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.- , v1PodCertificateProjectionKeyType :: !(Text) -- ^ /Required/ "keyType" - The type of keypair Kubelet will generate for the pod. Valid values are \"RSA3072\", \"RSA4096\", \"ECDSAP256\", \"ECDSAP384\", \"ECDSAP521\", and \"ED25519\".- , v1PodCertificateProjectionMaxExpirationSeconds :: !(Maybe Int) -- ^ "maxExpirationSeconds" - maxExpirationSeconds is the maximum lifetime permitted for the certificate. Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.- , v1PodCertificateProjectionSignerName :: !(Text) -- ^ /Required/ "signerName" - Kubelet's generated CSRs will be addressed to this signer.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodCertificateProjection-instance A.FromJSON V1PodCertificateProjection where- parseJSON = A.withObject "V1PodCertificateProjection" $ \o ->- V1PodCertificateProjection- <$> (o .:? "certificateChainPath")- <*> (o .:? "credentialBundlePath")- <*> (o .:? "keyPath")- <*> (o .: "keyType")- <*> (o .:? "maxExpirationSeconds")- <*> (o .: "signerName")---- | ToJSON V1PodCertificateProjection-instance A.ToJSON V1PodCertificateProjection where- toJSON V1PodCertificateProjection {..} =- _omitNulls- [ "certificateChainPath" .= v1PodCertificateProjectionCertificateChainPath- , "credentialBundlePath" .= v1PodCertificateProjectionCredentialBundlePath- , "keyPath" .= v1PodCertificateProjectionKeyPath- , "keyType" .= v1PodCertificateProjectionKeyType- , "maxExpirationSeconds" .= v1PodCertificateProjectionMaxExpirationSeconds- , "signerName" .= v1PodCertificateProjectionSignerName- ]----- | Construct a value of type 'V1PodCertificateProjection' (by applying it's required fields, if any)-mkV1PodCertificateProjection- :: Text -- ^ 'v1PodCertificateProjectionKeyType': The type of keypair Kubelet will generate for the pod. Valid values are \"RSA3072\", \"RSA4096\", \"ECDSAP256\", \"ECDSAP384\", \"ECDSAP521\", and \"ED25519\".- -> Text -- ^ 'v1PodCertificateProjectionSignerName': Kubelet's generated CSRs will be addressed to this signer.- -> V1PodCertificateProjection-mkV1PodCertificateProjection v1PodCertificateProjectionKeyType v1PodCertificateProjectionSignerName =- V1PodCertificateProjection- { v1PodCertificateProjectionCertificateChainPath = Nothing- , v1PodCertificateProjectionCredentialBundlePath = Nothing- , v1PodCertificateProjectionKeyPath = Nothing- , v1PodCertificateProjectionKeyType- , v1PodCertificateProjectionMaxExpirationSeconds = Nothing- , v1PodCertificateProjectionSignerName- }---- ** V1PodCondition--- | V1PodCondition--- PodCondition contains details for the current condition of this pod.-data V1PodCondition = V1PodCondition- { v1PodConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - Last time we probed the condition.- , v1PodConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.- , v1PodConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.- , v1PodConditionObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.- , v1PodConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition's last transition.- , v1PodConditionStatus :: !(Text) -- ^ /Required/ "status" - Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions- , v1PodConditionType :: !(Text) -- ^ /Required/ "type" - Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodCondition-instance A.FromJSON V1PodCondition where- parseJSON = A.withObject "V1PodCondition" $ \o ->- V1PodCondition- <$> (o .:? "lastProbeTime")- <*> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "observedGeneration")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1PodCondition-instance A.ToJSON V1PodCondition where- toJSON V1PodCondition {..} =- _omitNulls- [ "lastProbeTime" .= v1PodConditionLastProbeTime- , "lastTransitionTime" .= v1PodConditionLastTransitionTime- , "message" .= v1PodConditionMessage- , "observedGeneration" .= v1PodConditionObservedGeneration- , "reason" .= v1PodConditionReason- , "status" .= v1PodConditionStatus- , "type" .= v1PodConditionType- ]----- | Construct a value of type 'V1PodCondition' (by applying it's required fields, if any)-mkV1PodCondition- :: Text -- ^ 'v1PodConditionStatus': Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions- -> Text -- ^ 'v1PodConditionType': Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions- -> V1PodCondition-mkV1PodCondition v1PodConditionStatus v1PodConditionType =- V1PodCondition- { v1PodConditionLastProbeTime = Nothing- , v1PodConditionLastTransitionTime = Nothing- , v1PodConditionMessage = Nothing- , v1PodConditionObservedGeneration = Nothing- , v1PodConditionReason = Nothing- , v1PodConditionStatus- , v1PodConditionType- }---- ** V1PodDNSConfig--- | V1PodDNSConfig--- PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.-data V1PodDNSConfig = V1PodDNSConfig- { v1PodDNSConfigNameservers :: !(Maybe [Text]) -- ^ "nameservers" - A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.- , v1PodDNSConfigOptions :: !(Maybe [V1PodDNSConfigOption]) -- ^ "options" - A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.- , v1PodDNSConfigSearches :: !(Maybe [Text]) -- ^ "searches" - A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodDNSConfig-instance A.FromJSON V1PodDNSConfig where- parseJSON = A.withObject "V1PodDNSConfig" $ \o ->- V1PodDNSConfig- <$> (o .:? "nameservers")- <*> (o .:? "options")- <*> (o .:? "searches")---- | ToJSON V1PodDNSConfig-instance A.ToJSON V1PodDNSConfig where- toJSON V1PodDNSConfig {..} =- _omitNulls- [ "nameservers" .= v1PodDNSConfigNameservers- , "options" .= v1PodDNSConfigOptions- , "searches" .= v1PodDNSConfigSearches- ]----- | Construct a value of type 'V1PodDNSConfig' (by applying it's required fields, if any)-mkV1PodDNSConfig- :: V1PodDNSConfig-mkV1PodDNSConfig =- V1PodDNSConfig- { v1PodDNSConfigNameservers = Nothing- , v1PodDNSConfigOptions = Nothing- , v1PodDNSConfigSearches = Nothing- }---- ** V1PodDNSConfigOption--- | V1PodDNSConfigOption--- PodDNSConfigOption defines DNS resolver options of a pod.-data V1PodDNSConfigOption = V1PodDNSConfigOption- { v1PodDNSConfigOptionName :: !(Maybe Text) -- ^ "name" - Name is this DNS resolver option's name. Required.- , v1PodDNSConfigOptionValue :: !(Maybe Text) -- ^ "value" - Value is this DNS resolver option's value.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodDNSConfigOption-instance A.FromJSON V1PodDNSConfigOption where- parseJSON = A.withObject "V1PodDNSConfigOption" $ \o ->- V1PodDNSConfigOption- <$> (o .:? "name")- <*> (o .:? "value")---- | ToJSON V1PodDNSConfigOption-instance A.ToJSON V1PodDNSConfigOption where- toJSON V1PodDNSConfigOption {..} =- _omitNulls- [ "name" .= v1PodDNSConfigOptionName- , "value" .= v1PodDNSConfigOptionValue- ]----- | Construct a value of type 'V1PodDNSConfigOption' (by applying it's required fields, if any)-mkV1PodDNSConfigOption- :: V1PodDNSConfigOption-mkV1PodDNSConfigOption =- V1PodDNSConfigOption- { v1PodDNSConfigOptionName = Nothing- , v1PodDNSConfigOptionValue = Nothing- }---- ** V1PodDisruptionBudget--- | V1PodDisruptionBudget--- PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods-data V1PodDisruptionBudget = V1PodDisruptionBudget- { v1PodDisruptionBudgetApiVersion :: !(Maybe Text) -- ^ "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- , v1PodDisruptionBudgetKind :: !(Maybe Text) -- ^ "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- , v1PodDisruptionBudgetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PodDisruptionBudgetSpec :: !(Maybe V1PodDisruptionBudgetSpec) -- ^ "spec"- , v1PodDisruptionBudgetStatus :: !(Maybe V1PodDisruptionBudgetStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodDisruptionBudget-instance A.FromJSON V1PodDisruptionBudget where- parseJSON = A.withObject "V1PodDisruptionBudget" $ \o ->- V1PodDisruptionBudget- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1PodDisruptionBudget-instance A.ToJSON V1PodDisruptionBudget where- toJSON V1PodDisruptionBudget {..} =- _omitNulls- [ "apiVersion" .= v1PodDisruptionBudgetApiVersion- , "kind" .= v1PodDisruptionBudgetKind- , "metadata" .= v1PodDisruptionBudgetMetadata- , "spec" .= v1PodDisruptionBudgetSpec- , "status" .= v1PodDisruptionBudgetStatus- ]----- | Construct a value of type 'V1PodDisruptionBudget' (by applying it's required fields, if any)-mkV1PodDisruptionBudget- :: V1PodDisruptionBudget-mkV1PodDisruptionBudget =- V1PodDisruptionBudget- { v1PodDisruptionBudgetApiVersion = Nothing- , v1PodDisruptionBudgetKind = Nothing- , v1PodDisruptionBudgetMetadata = Nothing- , v1PodDisruptionBudgetSpec = Nothing- , v1PodDisruptionBudgetStatus = Nothing- }---- ** V1PodDisruptionBudgetList--- | V1PodDisruptionBudgetList--- PodDisruptionBudgetList is a collection of PodDisruptionBudgets.-data V1PodDisruptionBudgetList = V1PodDisruptionBudgetList- { v1PodDisruptionBudgetListApiVersion :: !(Maybe Text) -- ^ "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- , v1PodDisruptionBudgetListItems :: !([V1PodDisruptionBudget]) -- ^ /Required/ "items" - Items is a list of PodDisruptionBudgets- , v1PodDisruptionBudgetListKind :: !(Maybe Text) -- ^ "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- , v1PodDisruptionBudgetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodDisruptionBudgetList-instance A.FromJSON V1PodDisruptionBudgetList where- parseJSON = A.withObject "V1PodDisruptionBudgetList" $ \o ->- V1PodDisruptionBudgetList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1PodDisruptionBudgetList-instance A.ToJSON V1PodDisruptionBudgetList where- toJSON V1PodDisruptionBudgetList {..} =- _omitNulls- [ "apiVersion" .= v1PodDisruptionBudgetListApiVersion- , "items" .= v1PodDisruptionBudgetListItems- , "kind" .= v1PodDisruptionBudgetListKind- , "metadata" .= v1PodDisruptionBudgetListMetadata- ]----- | Construct a value of type 'V1PodDisruptionBudgetList' (by applying it's required fields, if any)-mkV1PodDisruptionBudgetList- :: [V1PodDisruptionBudget] -- ^ 'v1PodDisruptionBudgetListItems': Items is a list of PodDisruptionBudgets- -> V1PodDisruptionBudgetList-mkV1PodDisruptionBudgetList v1PodDisruptionBudgetListItems =- V1PodDisruptionBudgetList- { v1PodDisruptionBudgetListApiVersion = Nothing- , v1PodDisruptionBudgetListItems- , v1PodDisruptionBudgetListKind = Nothing- , v1PodDisruptionBudgetListMetadata = Nothing- }---- ** V1PodDisruptionBudgetSpec--- | V1PodDisruptionBudgetSpec--- PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.-data V1PodDisruptionBudgetSpec = V1PodDisruptionBudgetSpec- { v1PodDisruptionBudgetSpecMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"- , v1PodDisruptionBudgetSpecMinAvailable :: !(Maybe IntOrString) -- ^ "minAvailable"- , v1PodDisruptionBudgetSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"- , v1PodDisruptionBudgetSpecUnhealthyPodEvictionPolicy :: !(Maybe Text) -- ^ "unhealthyPodEvictionPolicy" - UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\"Ready\",status=\"True\". Valid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy. IfHealthyBudget policy means that running pods (status.phase=\"Running\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction. AlwaysAllow policy means that all running pods (status.phase=\"Running\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction. Additional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodDisruptionBudgetSpec-instance A.FromJSON V1PodDisruptionBudgetSpec where- parseJSON = A.withObject "V1PodDisruptionBudgetSpec" $ \o ->- V1PodDisruptionBudgetSpec- <$> (o .:? "maxUnavailable")- <*> (o .:? "minAvailable")- <*> (o .:? "selector")- <*> (o .:? "unhealthyPodEvictionPolicy")---- | ToJSON V1PodDisruptionBudgetSpec-instance A.ToJSON V1PodDisruptionBudgetSpec where- toJSON V1PodDisruptionBudgetSpec {..} =- _omitNulls- [ "maxUnavailable" .= v1PodDisruptionBudgetSpecMaxUnavailable- , "minAvailable" .= v1PodDisruptionBudgetSpecMinAvailable- , "selector" .= v1PodDisruptionBudgetSpecSelector- , "unhealthyPodEvictionPolicy" .= v1PodDisruptionBudgetSpecUnhealthyPodEvictionPolicy- ]----- | Construct a value of type 'V1PodDisruptionBudgetSpec' (by applying it's required fields, if any)-mkV1PodDisruptionBudgetSpec- :: V1PodDisruptionBudgetSpec-mkV1PodDisruptionBudgetSpec =- V1PodDisruptionBudgetSpec- { v1PodDisruptionBudgetSpecMaxUnavailable = Nothing- , v1PodDisruptionBudgetSpecMinAvailable = Nothing- , v1PodDisruptionBudgetSpecSelector = Nothing- , v1PodDisruptionBudgetSpecUnhealthyPodEvictionPolicy = Nothing- }---- ** V1PodDisruptionBudgetStatus--- | V1PodDisruptionBudgetStatus--- PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.-data V1PodDisruptionBudgetStatus = V1PodDisruptionBudgetStatus- { v1PodDisruptionBudgetStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute the number of allowed disruptions. Therefore no disruptions are allowed and the status of the condition will be False. - InsufficientPods: The number of pods are either at or below the number required by the PodDisruptionBudget. No disruptions are allowed and the status of the condition will be False. - SufficientPods: There are more pods than required by the PodDisruptionBudget. The condition will be True, and the number of allowed disruptions are provided by the disruptionsAllowed property.- , v1PodDisruptionBudgetStatusCurrentHealthy :: !(Int) -- ^ /Required/ "currentHealthy" - current number of healthy pods- , v1PodDisruptionBudgetStatusDesiredHealthy :: !(Int) -- ^ /Required/ "desiredHealthy" - minimum desired number of healthy pods- , v1PodDisruptionBudgetStatusDisruptedPods :: !(Maybe (Map.Map String DateTime)) -- ^ "disruptedPods" - DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.- , v1PodDisruptionBudgetStatusDisruptionsAllowed :: !(Int) -- ^ /Required/ "disruptionsAllowed" - Number of pod disruptions that are currently allowed.- , v1PodDisruptionBudgetStatusExpectedPods :: !(Int) -- ^ /Required/ "expectedPods" - total number of pods counted by this disruption budget- , v1PodDisruptionBudgetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodDisruptionBudgetStatus-instance A.FromJSON V1PodDisruptionBudgetStatus where- parseJSON = A.withObject "V1PodDisruptionBudgetStatus" $ \o ->- V1PodDisruptionBudgetStatus- <$> (o .:? "conditions")- <*> (o .: "currentHealthy")- <*> (o .: "desiredHealthy")- <*> (o .:? "disruptedPods")- <*> (o .: "disruptionsAllowed")- <*> (o .: "expectedPods")- <*> (o .:? "observedGeneration")---- | ToJSON V1PodDisruptionBudgetStatus-instance A.ToJSON V1PodDisruptionBudgetStatus where- toJSON V1PodDisruptionBudgetStatus {..} =- _omitNulls- [ "conditions" .= v1PodDisruptionBudgetStatusConditions- , "currentHealthy" .= v1PodDisruptionBudgetStatusCurrentHealthy- , "desiredHealthy" .= v1PodDisruptionBudgetStatusDesiredHealthy- , "disruptedPods" .= v1PodDisruptionBudgetStatusDisruptedPods- , "disruptionsAllowed" .= v1PodDisruptionBudgetStatusDisruptionsAllowed- , "expectedPods" .= v1PodDisruptionBudgetStatusExpectedPods- , "observedGeneration" .= v1PodDisruptionBudgetStatusObservedGeneration- ]----- | Construct a value of type 'V1PodDisruptionBudgetStatus' (by applying it's required fields, if any)-mkV1PodDisruptionBudgetStatus- :: Int -- ^ 'v1PodDisruptionBudgetStatusCurrentHealthy': current number of healthy pods- -> Int -- ^ 'v1PodDisruptionBudgetStatusDesiredHealthy': minimum desired number of healthy pods- -> Int -- ^ 'v1PodDisruptionBudgetStatusDisruptionsAllowed': Number of pod disruptions that are currently allowed.- -> Int -- ^ 'v1PodDisruptionBudgetStatusExpectedPods': total number of pods counted by this disruption budget- -> V1PodDisruptionBudgetStatus-mkV1PodDisruptionBudgetStatus v1PodDisruptionBudgetStatusCurrentHealthy v1PodDisruptionBudgetStatusDesiredHealthy v1PodDisruptionBudgetStatusDisruptionsAllowed v1PodDisruptionBudgetStatusExpectedPods =- V1PodDisruptionBudgetStatus- { v1PodDisruptionBudgetStatusConditions = Nothing- , v1PodDisruptionBudgetStatusCurrentHealthy- , v1PodDisruptionBudgetStatusDesiredHealthy- , v1PodDisruptionBudgetStatusDisruptedPods = Nothing- , v1PodDisruptionBudgetStatusDisruptionsAllowed- , v1PodDisruptionBudgetStatusExpectedPods- , v1PodDisruptionBudgetStatusObservedGeneration = Nothing- }---- ** V1PodExtendedResourceClaimStatus--- | V1PodExtendedResourceClaimStatus--- PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler.-data V1PodExtendedResourceClaimStatus = V1PodExtendedResourceClaimStatus- { v1PodExtendedResourceClaimStatusRequestMappings :: !([V1ContainerExtendedResourceRequest]) -- ^ /Required/ "requestMappings" - RequestMappings identifies the mapping of <container, extended resource backed by DRA> to device request in the generated ResourceClaim.- , v1PodExtendedResourceClaimStatusResourceClaimName :: !(Text) -- ^ /Required/ "resourceClaimName" - ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodExtendedResourceClaimStatus-instance A.FromJSON V1PodExtendedResourceClaimStatus where- parseJSON = A.withObject "V1PodExtendedResourceClaimStatus" $ \o ->- V1PodExtendedResourceClaimStatus- <$> (o .: "requestMappings")- <*> (o .: "resourceClaimName")---- | ToJSON V1PodExtendedResourceClaimStatus-instance A.ToJSON V1PodExtendedResourceClaimStatus where- toJSON V1PodExtendedResourceClaimStatus {..} =- _omitNulls- [ "requestMappings" .= v1PodExtendedResourceClaimStatusRequestMappings- , "resourceClaimName" .= v1PodExtendedResourceClaimStatusResourceClaimName- ]----- | Construct a value of type 'V1PodExtendedResourceClaimStatus' (by applying it's required fields, if any)-mkV1PodExtendedResourceClaimStatus- :: [V1ContainerExtendedResourceRequest] -- ^ 'v1PodExtendedResourceClaimStatusRequestMappings': RequestMappings identifies the mapping of <container, extended resource backed by DRA> to device request in the generated ResourceClaim.- -> Text -- ^ 'v1PodExtendedResourceClaimStatusResourceClaimName': ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod.- -> V1PodExtendedResourceClaimStatus-mkV1PodExtendedResourceClaimStatus v1PodExtendedResourceClaimStatusRequestMappings v1PodExtendedResourceClaimStatusResourceClaimName =- V1PodExtendedResourceClaimStatus- { v1PodExtendedResourceClaimStatusRequestMappings- , v1PodExtendedResourceClaimStatusResourceClaimName- }---- ** V1PodFailurePolicy--- | V1PodFailurePolicy--- PodFailurePolicy describes how failed pods influence the backoffLimit.-data V1PodFailurePolicy = V1PodFailurePolicy- { v1PodFailurePolicyRules :: !([V1PodFailurePolicyRule]) -- ^ /Required/ "rules" - A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodFailurePolicy-instance A.FromJSON V1PodFailurePolicy where- parseJSON = A.withObject "V1PodFailurePolicy" $ \o ->- V1PodFailurePolicy- <$> (o .: "rules")---- | ToJSON V1PodFailurePolicy-instance A.ToJSON V1PodFailurePolicy where- toJSON V1PodFailurePolicy {..} =- _omitNulls- [ "rules" .= v1PodFailurePolicyRules- ]----- | Construct a value of type 'V1PodFailurePolicy' (by applying it's required fields, if any)-mkV1PodFailurePolicy- :: [V1PodFailurePolicyRule] -- ^ 'v1PodFailurePolicyRules': A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.- -> V1PodFailurePolicy-mkV1PodFailurePolicy v1PodFailurePolicyRules =- V1PodFailurePolicy- { v1PodFailurePolicyRules- }---- ** V1PodFailurePolicyOnExitCodesRequirement--- | V1PodFailurePolicyOnExitCodesRequirement--- PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.-data V1PodFailurePolicyOnExitCodesRequirement = V1PodFailurePolicyOnExitCodesRequirement- { v1PodFailurePolicyOnExitCodesRequirementContainerName :: !(Maybe Text) -- ^ "containerName" - Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template.- , v1PodFailurePolicyOnExitCodesRequirementOperator :: !(Text) -- ^ /Required/ "operator" - Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. - NotIn: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is not in the set of specified values. Additional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.- , v1PodFailurePolicyOnExitCodesRequirementValues :: !([Int]) -- ^ /Required/ "values" - Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodFailurePolicyOnExitCodesRequirement-instance A.FromJSON V1PodFailurePolicyOnExitCodesRequirement where- parseJSON = A.withObject "V1PodFailurePolicyOnExitCodesRequirement" $ \o ->- V1PodFailurePolicyOnExitCodesRequirement- <$> (o .:? "containerName")- <*> (o .: "operator")- <*> (o .: "values")---- | ToJSON V1PodFailurePolicyOnExitCodesRequirement-instance A.ToJSON V1PodFailurePolicyOnExitCodesRequirement where- toJSON V1PodFailurePolicyOnExitCodesRequirement {..} =- _omitNulls- [ "containerName" .= v1PodFailurePolicyOnExitCodesRequirementContainerName- , "operator" .= v1PodFailurePolicyOnExitCodesRequirementOperator- , "values" .= v1PodFailurePolicyOnExitCodesRequirementValues- ]----- | Construct a value of type 'V1PodFailurePolicyOnExitCodesRequirement' (by applying it's required fields, if any)-mkV1PodFailurePolicyOnExitCodesRequirement- :: Text -- ^ 'v1PodFailurePolicyOnExitCodesRequirementOperator': Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. - NotIn: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is not in the set of specified values. Additional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.- -> [Int] -- ^ 'v1PodFailurePolicyOnExitCodesRequirementValues': Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.- -> V1PodFailurePolicyOnExitCodesRequirement-mkV1PodFailurePolicyOnExitCodesRequirement v1PodFailurePolicyOnExitCodesRequirementOperator v1PodFailurePolicyOnExitCodesRequirementValues =- V1PodFailurePolicyOnExitCodesRequirement- { v1PodFailurePolicyOnExitCodesRequirementContainerName = Nothing- , v1PodFailurePolicyOnExitCodesRequirementOperator- , v1PodFailurePolicyOnExitCodesRequirementValues- }---- ** V1PodFailurePolicyOnPodConditionsPattern--- | V1PodFailurePolicyOnPodConditionsPattern--- PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.-data V1PodFailurePolicyOnPodConditionsPattern = V1PodFailurePolicyOnPodConditionsPattern- { v1PodFailurePolicyOnPodConditionsPatternStatus :: !(Text) -- ^ /Required/ "status" - Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.- , v1PodFailurePolicyOnPodConditionsPatternType :: !(Text) -- ^ /Required/ "type" - Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodFailurePolicyOnPodConditionsPattern-instance A.FromJSON V1PodFailurePolicyOnPodConditionsPattern where- parseJSON = A.withObject "V1PodFailurePolicyOnPodConditionsPattern" $ \o ->- V1PodFailurePolicyOnPodConditionsPattern- <$> (o .: "status")- <*> (o .: "type")---- | ToJSON V1PodFailurePolicyOnPodConditionsPattern-instance A.ToJSON V1PodFailurePolicyOnPodConditionsPattern where- toJSON V1PodFailurePolicyOnPodConditionsPattern {..} =- _omitNulls- [ "status" .= v1PodFailurePolicyOnPodConditionsPatternStatus- , "type" .= v1PodFailurePolicyOnPodConditionsPatternType- ]----- | Construct a value of type 'V1PodFailurePolicyOnPodConditionsPattern' (by applying it's required fields, if any)-mkV1PodFailurePolicyOnPodConditionsPattern- :: Text -- ^ 'v1PodFailurePolicyOnPodConditionsPatternStatus': Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.- -> Text -- ^ 'v1PodFailurePolicyOnPodConditionsPatternType': Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.- -> V1PodFailurePolicyOnPodConditionsPattern-mkV1PodFailurePolicyOnPodConditionsPattern v1PodFailurePolicyOnPodConditionsPatternStatus v1PodFailurePolicyOnPodConditionsPatternType =- V1PodFailurePolicyOnPodConditionsPattern- { v1PodFailurePolicyOnPodConditionsPatternStatus- , v1PodFailurePolicyOnPodConditionsPatternType- }---- ** V1PodFailurePolicyRule--- | V1PodFailurePolicyRule--- PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of onExitCodes and onPodConditions, but not both, can be used in each rule.-data V1PodFailurePolicyRule = V1PodFailurePolicyRule- { v1PodFailurePolicyRuleAction :: !(Text) -- ^ /Required/ "action" - Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will not be restarted. - Ignore: indicates that the counter towards the .backoffLimit is not incremented and a replacement pod is created. - Count: indicates that the pod is handled in the default way - the counter towards the .backoffLimit is incremented. Additional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.- , v1PodFailurePolicyRuleOnExitCodes :: !(Maybe V1PodFailurePolicyOnExitCodesRequirement) -- ^ "onExitCodes"- , v1PodFailurePolicyRuleOnPodConditions :: !(Maybe [V1PodFailurePolicyOnPodConditionsPattern]) -- ^ "onPodConditions" - Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodFailurePolicyRule-instance A.FromJSON V1PodFailurePolicyRule where- parseJSON = A.withObject "V1PodFailurePolicyRule" $ \o ->- V1PodFailurePolicyRule- <$> (o .: "action")- <*> (o .:? "onExitCodes")- <*> (o .:? "onPodConditions")---- | ToJSON V1PodFailurePolicyRule-instance A.ToJSON V1PodFailurePolicyRule where- toJSON V1PodFailurePolicyRule {..} =- _omitNulls- [ "action" .= v1PodFailurePolicyRuleAction- , "onExitCodes" .= v1PodFailurePolicyRuleOnExitCodes- , "onPodConditions" .= v1PodFailurePolicyRuleOnPodConditions- ]----- | Construct a value of type 'V1PodFailurePolicyRule' (by applying it's required fields, if any)-mkV1PodFailurePolicyRule- :: Text -- ^ 'v1PodFailurePolicyRuleAction': Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will not be restarted. - Ignore: indicates that the counter towards the .backoffLimit is not incremented and a replacement pod is created. - Count: indicates that the pod is handled in the default way - the counter towards the .backoffLimit is incremented. Additional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.- -> V1PodFailurePolicyRule-mkV1PodFailurePolicyRule v1PodFailurePolicyRuleAction =- V1PodFailurePolicyRule- { v1PodFailurePolicyRuleAction- , v1PodFailurePolicyRuleOnExitCodes = Nothing- , v1PodFailurePolicyRuleOnPodConditions = Nothing- }---- ** V1PodIP--- | V1PodIP--- PodIP represents a single IP address allocated to the pod.-data V1PodIP = V1PodIP- { v1PodIPIp :: !(Text) -- ^ /Required/ "ip" - IP is the IP address assigned to the pod- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodIP-instance A.FromJSON V1PodIP where- parseJSON = A.withObject "V1PodIP" $ \o ->- V1PodIP- <$> (o .: "ip")---- | ToJSON V1PodIP-instance A.ToJSON V1PodIP where- toJSON V1PodIP {..} =- _omitNulls- [ "ip" .= v1PodIPIp- ]----- | Construct a value of type 'V1PodIP' (by applying it's required fields, if any)-mkV1PodIP- :: Text -- ^ 'v1PodIPIp': IP is the IP address assigned to the pod- -> V1PodIP-mkV1PodIP v1PodIPIp =- V1PodIP- { v1PodIPIp- }---- ** V1PodList--- | V1PodList--- PodList is a list of Pods.-data V1PodList = V1PodList- { v1PodListApiVersion :: !(Maybe Text) -- ^ "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- , v1PodListItems :: !([V1Pod]) -- ^ /Required/ "items" - List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md- , v1PodListKind :: !(Maybe Text) -- ^ "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- , v1PodListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodList-instance A.FromJSON V1PodList where- parseJSON = A.withObject "V1PodList" $ \o ->- V1PodList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1PodList-instance A.ToJSON V1PodList where- toJSON V1PodList {..} =- _omitNulls- [ "apiVersion" .= v1PodListApiVersion- , "items" .= v1PodListItems- , "kind" .= v1PodListKind- , "metadata" .= v1PodListMetadata- ]----- | Construct a value of type 'V1PodList' (by applying it's required fields, if any)-mkV1PodList- :: [V1Pod] -- ^ 'v1PodListItems': List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md- -> V1PodList-mkV1PodList v1PodListItems =- V1PodList- { v1PodListApiVersion = Nothing- , v1PodListItems- , v1PodListKind = Nothing- , v1PodListMetadata = Nothing- }---- ** V1PodOS--- | V1PodOS--- PodOS defines the OS parameters of a pod.-data V1PodOS = V1PodOS- { v1PodOSName :: !(Text) -- ^ /Required/ "name" - Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodOS-instance A.FromJSON V1PodOS where- parseJSON = A.withObject "V1PodOS" $ \o ->- V1PodOS- <$> (o .: "name")---- | ToJSON V1PodOS-instance A.ToJSON V1PodOS where- toJSON V1PodOS {..} =- _omitNulls- [ "name" .= v1PodOSName- ]----- | Construct a value of type 'V1PodOS' (by applying it's required fields, if any)-mkV1PodOS- :: Text -- ^ 'v1PodOSName': Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null- -> V1PodOS-mkV1PodOS v1PodOSName =- V1PodOS- { v1PodOSName- }---- ** V1PodReadinessGate--- | V1PodReadinessGate--- PodReadinessGate contains the reference to a pod condition-data V1PodReadinessGate = V1PodReadinessGate- { v1PodReadinessGateConditionType :: !(Text) -- ^ /Required/ "conditionType" - ConditionType refers to a condition in the pod's condition list with matching type.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodReadinessGate-instance A.FromJSON V1PodReadinessGate where- parseJSON = A.withObject "V1PodReadinessGate" $ \o ->- V1PodReadinessGate- <$> (o .: "conditionType")---- | ToJSON V1PodReadinessGate-instance A.ToJSON V1PodReadinessGate where- toJSON V1PodReadinessGate {..} =- _omitNulls- [ "conditionType" .= v1PodReadinessGateConditionType- ]----- | Construct a value of type 'V1PodReadinessGate' (by applying it's required fields, if any)-mkV1PodReadinessGate- :: Text -- ^ 'v1PodReadinessGateConditionType': ConditionType refers to a condition in the pod's condition list with matching type.- -> V1PodReadinessGate-mkV1PodReadinessGate v1PodReadinessGateConditionType =- V1PodReadinessGate- { v1PodReadinessGateConditionType- }---- ** V1PodResourceClaim--- | V1PodResourceClaim--- PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod. It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.-data V1PodResourceClaim = V1PodResourceClaim- { v1PodResourceClaimName :: !(Text) -- ^ /Required/ "name" - Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.- , v1PodResourceClaimResourceClaimName :: !(Maybe Text) -- ^ "resourceClaimName" - ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod. Exactly one of ResourceClaimName and ResourceClaimTemplateName must be set.- , v1PodResourceClaimResourceClaimTemplateName :: !(Maybe Text) -- ^ "resourceClaimTemplateName" - ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. Exactly one of ResourceClaimName and ResourceClaimTemplateName must be set.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodResourceClaim-instance A.FromJSON V1PodResourceClaim where- parseJSON = A.withObject "V1PodResourceClaim" $ \o ->- V1PodResourceClaim- <$> (o .: "name")- <*> (o .:? "resourceClaimName")- <*> (o .:? "resourceClaimTemplateName")---- | ToJSON V1PodResourceClaim-instance A.ToJSON V1PodResourceClaim where- toJSON V1PodResourceClaim {..} =- _omitNulls- [ "name" .= v1PodResourceClaimName- , "resourceClaimName" .= v1PodResourceClaimResourceClaimName- , "resourceClaimTemplateName" .= v1PodResourceClaimResourceClaimTemplateName- ]----- | Construct a value of type 'V1PodResourceClaim' (by applying it's required fields, if any)-mkV1PodResourceClaim- :: Text -- ^ 'v1PodResourceClaimName': Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.- -> V1PodResourceClaim-mkV1PodResourceClaim v1PodResourceClaimName =- V1PodResourceClaim- { v1PodResourceClaimName- , v1PodResourceClaimResourceClaimName = Nothing- , v1PodResourceClaimResourceClaimTemplateName = Nothing- }---- ** V1PodResourceClaimStatus--- | V1PodResourceClaimStatus--- PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim.-data V1PodResourceClaimStatus = V1PodResourceClaimStatus- { v1PodResourceClaimStatusName :: !(Text) -- ^ /Required/ "name" - Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.- , v1PodResourceClaimStatusResourceClaimName :: !(Maybe Text) -- ^ "resourceClaimName" - ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. If this is unset, then generating a ResourceClaim was not necessary. The pod.spec.resourceClaims entry can be ignored in this case.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodResourceClaimStatus-instance A.FromJSON V1PodResourceClaimStatus where- parseJSON = A.withObject "V1PodResourceClaimStatus" $ \o ->- V1PodResourceClaimStatus- <$> (o .: "name")- <*> (o .:? "resourceClaimName")---- | ToJSON V1PodResourceClaimStatus-instance A.ToJSON V1PodResourceClaimStatus where- toJSON V1PodResourceClaimStatus {..} =- _omitNulls- [ "name" .= v1PodResourceClaimStatusName- , "resourceClaimName" .= v1PodResourceClaimStatusResourceClaimName- ]----- | Construct a value of type 'V1PodResourceClaimStatus' (by applying it's required fields, if any)-mkV1PodResourceClaimStatus- :: Text -- ^ 'v1PodResourceClaimStatusName': Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.- -> V1PodResourceClaimStatus-mkV1PodResourceClaimStatus v1PodResourceClaimStatusName =- V1PodResourceClaimStatus- { v1PodResourceClaimStatusName- , v1PodResourceClaimStatusResourceClaimName = Nothing- }---- ** V1PodSchedulingGate--- | V1PodSchedulingGate--- PodSchedulingGate is associated to a Pod to guard its scheduling.-data V1PodSchedulingGate = V1PodSchedulingGate- { v1PodSchedulingGateName :: !(Text) -- ^ /Required/ "name" - Name of the scheduling gate. Each scheduling gate must have a unique name field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodSchedulingGate-instance A.FromJSON V1PodSchedulingGate where- parseJSON = A.withObject "V1PodSchedulingGate" $ \o ->- V1PodSchedulingGate- <$> (o .: "name")---- | ToJSON V1PodSchedulingGate-instance A.ToJSON V1PodSchedulingGate where- toJSON V1PodSchedulingGate {..} =- _omitNulls- [ "name" .= v1PodSchedulingGateName- ]----- | Construct a value of type 'V1PodSchedulingGate' (by applying it's required fields, if any)-mkV1PodSchedulingGate- :: Text -- ^ 'v1PodSchedulingGateName': Name of the scheduling gate. Each scheduling gate must have a unique name field.- -> V1PodSchedulingGate-mkV1PodSchedulingGate v1PodSchedulingGateName =- V1PodSchedulingGate- { v1PodSchedulingGateName- }---- ** V1PodSecurityContext--- | V1PodSecurityContext--- PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.-data V1PodSecurityContext = V1PodSecurityContext- { v1PodSecurityContextAppArmorProfile :: !(Maybe V1AppArmorProfile) -- ^ "appArmorProfile"- , v1PodSecurityContextFsGroup :: !(Maybe Integer) -- ^ "fsGroup" - A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.- , v1PodSecurityContextFsGroupChangePolicy :: !(Maybe Text) -- ^ "fsGroupChangePolicy" - fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.- , v1PodSecurityContextRunAsGroup :: !(Maybe Integer) -- ^ "runAsGroup" - 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.- , v1PodSecurityContextRunAsNonRoot :: !(Maybe Bool) -- ^ "runAsNonRoot" - 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.- , v1PodSecurityContextRunAsUser :: !(Maybe Integer) -- ^ "runAsUser" - 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.- , v1PodSecurityContextSeLinuxChangePolicy :: !(Maybe Text) -- ^ "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.- , v1PodSecurityContextSeLinuxOptions :: !(Maybe V1SELinuxOptions) -- ^ "seLinuxOptions"- , v1PodSecurityContextSeccompProfile :: !(Maybe V1SeccompProfile) -- ^ "seccompProfile"- , v1PodSecurityContextSupplementalGroups :: !(Maybe [Integer]) -- ^ "supplementalGroups" - 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.- , v1PodSecurityContextSupplementalGroupsPolicy :: !(Maybe Text) -- ^ "supplementalGroupsPolicy" - Defines how supplemental groups of the first container processes are calculated. Valid values are \"Merge\" and \"Strict\". If not specified, \"Merge\" is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.- , v1PodSecurityContextSysctls :: !(Maybe [V1Sysctl]) -- ^ "sysctls" - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.- , v1PodSecurityContextWindowsOptions :: !(Maybe V1WindowsSecurityContextOptions) -- ^ "windowsOptions"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodSecurityContext-instance A.FromJSON V1PodSecurityContext where- parseJSON = A.withObject "V1PodSecurityContext" $ \o ->- V1PodSecurityContext- <$> (o .:? "appArmorProfile")- <*> (o .:? "fsGroup")- <*> (o .:? "fsGroupChangePolicy")- <*> (o .:? "runAsGroup")- <*> (o .:? "runAsNonRoot")- <*> (o .:? "runAsUser")- <*> (o .:? "seLinuxChangePolicy")- <*> (o .:? "seLinuxOptions")- <*> (o .:? "seccompProfile")- <*> (o .:? "supplementalGroups")- <*> (o .:? "supplementalGroupsPolicy")- <*> (o .:? "sysctls")- <*> (o .:? "windowsOptions")---- | ToJSON V1PodSecurityContext-instance A.ToJSON V1PodSecurityContext where- toJSON V1PodSecurityContext {..} =- _omitNulls- [ "appArmorProfile" .= v1PodSecurityContextAppArmorProfile- , "fsGroup" .= v1PodSecurityContextFsGroup- , "fsGroupChangePolicy" .= v1PodSecurityContextFsGroupChangePolicy- , "runAsGroup" .= v1PodSecurityContextRunAsGroup- , "runAsNonRoot" .= v1PodSecurityContextRunAsNonRoot- , "runAsUser" .= v1PodSecurityContextRunAsUser- , "seLinuxChangePolicy" .= v1PodSecurityContextSeLinuxChangePolicy- , "seLinuxOptions" .= v1PodSecurityContextSeLinuxOptions- , "seccompProfile" .= v1PodSecurityContextSeccompProfile- , "supplementalGroups" .= v1PodSecurityContextSupplementalGroups- , "supplementalGroupsPolicy" .= v1PodSecurityContextSupplementalGroupsPolicy- , "sysctls" .= v1PodSecurityContextSysctls- , "windowsOptions" .= v1PodSecurityContextWindowsOptions- ]----- | Construct a value of type 'V1PodSecurityContext' (by applying it's required fields, if any)-mkV1PodSecurityContext- :: V1PodSecurityContext-mkV1PodSecurityContext =- V1PodSecurityContext- { v1PodSecurityContextAppArmorProfile = Nothing- , v1PodSecurityContextFsGroup = Nothing- , v1PodSecurityContextFsGroupChangePolicy = Nothing- , v1PodSecurityContextRunAsGroup = Nothing- , v1PodSecurityContextRunAsNonRoot = Nothing- , v1PodSecurityContextRunAsUser = Nothing- , v1PodSecurityContextSeLinuxChangePolicy = Nothing- , v1PodSecurityContextSeLinuxOptions = Nothing- , v1PodSecurityContextSeccompProfile = Nothing- , v1PodSecurityContextSupplementalGroups = Nothing- , v1PodSecurityContextSupplementalGroupsPolicy = Nothing- , v1PodSecurityContextSysctls = Nothing- , v1PodSecurityContextWindowsOptions = Nothing- }---- ** V1PodSpec--- | V1PodSpec--- PodSpec is a description of a pod.-data V1PodSpec = V1PodSpec- { v1PodSpecActiveDeadlineSeconds :: !(Maybe Integer) -- ^ "activeDeadlineSeconds" - 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.- , v1PodSpecAffinity :: !(Maybe V1Affinity) -- ^ "affinity"- , v1PodSpecAutomountServiceAccountToken :: !(Maybe Bool) -- ^ "automountServiceAccountToken" - AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.- , v1PodSpecContainers :: !([V1Container]) -- ^ /Required/ "containers" - 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.- , v1PodSpecDnsConfig :: !(Maybe V1PodDNSConfig) -- ^ "dnsConfig"- , v1PodSpecDnsPolicy :: !(Maybe Text) -- ^ "dnsPolicy" - 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'.- , v1PodSpecEnableServiceLinks :: !(Maybe Bool) -- ^ "enableServiceLinks" - EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.- , v1PodSpecEphemeralContainers :: !(Maybe [V1EphemeralContainer]) -- ^ "ephemeralContainers" - 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.- , v1PodSpecHostAliases :: !(Maybe [V1HostAlias]) -- ^ "hostAliases" - HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.- , v1PodSpecHostIpc :: !(Maybe Bool) -- ^ "hostIPC" - Use the host's ipc namespace. Optional: Default to false.- , v1PodSpecHostNetwork :: !(Maybe Bool) -- ^ "hostNetwork" - Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.- , v1PodSpecHostPid :: !(Maybe Bool) -- ^ "hostPID" - Use the host's pid namespace. Optional: Default to false.- , v1PodSpecHostUsers :: !(Maybe Bool) -- ^ "hostUsers" - 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.- , v1PodSpecHostname :: !(Maybe Text) -- ^ "hostname" - Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.- , v1PodSpecHostnameOverride :: !(Maybe Text) -- ^ "hostnameOverride" - HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.- , v1PodSpecImagePullSecrets :: !(Maybe [V1LocalObjectReference]) -- ^ "imagePullSecrets" - 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- , v1PodSpecInitContainers :: !(Maybe [V1Container]) -- ^ "initContainers" - 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 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/- , v1PodSpecNodeName :: !(Maybe Text) -- ^ "nodeName" - 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- , v1PodSpecNodeSelector :: !(Maybe (Map.Map String Text)) -- ^ "nodeSelector" - 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/- , v1PodSpecOs :: !(Maybe V1PodOS) -- ^ "os"- , v1PodSpecOverhead :: !(Maybe (Map.Map String Quantity)) -- ^ "overhead" - 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- , v1PodSpecPreemptionPolicy :: !(Maybe Text) -- ^ "preemptionPolicy" - PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.- , v1PodSpecPriority :: !(Maybe Int) -- ^ "priority" - 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.- , v1PodSpecPriorityClassName :: !(Maybe Text) -- ^ "priorityClassName" - 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.- , v1PodSpecReadinessGates :: !(Maybe [V1PodReadinessGate]) -- ^ "readinessGates" - 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- , v1PodSpecResourceClaims :: !(Maybe [V1PodResourceClaim]) -- ^ "resourceClaims" - 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.- , v1PodSpecResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"- , v1PodSpecRestartPolicy :: !(Maybe Text) -- ^ "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- , v1PodSpecRuntimeClassName :: !(Maybe Text) -- ^ "runtimeClassName" - 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- , v1PodSpecSchedulerName :: !(Maybe Text) -- ^ "schedulerName" - If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.- , v1PodSpecSchedulingGates :: !(Maybe [V1PodSchedulingGate]) -- ^ "schedulingGates" - 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.- , v1PodSpecSecurityContext :: !(Maybe V1PodSecurityContext) -- ^ "securityContext"- , v1PodSpecServiceAccount :: !(Maybe Text) -- ^ "serviceAccount" - DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.- , v1PodSpecServiceAccountName :: !(Maybe Text) -- ^ "serviceAccountName" - 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/- , v1PodSpecSetHostnameAsFqdn :: !(Maybe Bool) -- ^ "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.- , v1PodSpecShareProcessNamespace :: !(Maybe Bool) -- ^ "shareProcessNamespace" - 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.- , v1PodSpecSubdomain :: !(Maybe Text) -- ^ "subdomain" - If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.- , v1PodSpecTerminationGracePeriodSeconds :: !(Maybe Integer) -- ^ "terminationGracePeriodSeconds" - 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.- , v1PodSpecTolerations :: !(Maybe [V1Toleration]) -- ^ "tolerations" - If specified, the pod's tolerations.- , v1PodSpecTopologySpreadConstraints :: !(Maybe [V1TopologySpreadConstraint]) -- ^ "topologySpreadConstraints" - 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.- , v1PodSpecVolumes :: !(Maybe [V1Volume]) -- ^ "volumes" - List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodSpec-instance A.FromJSON V1PodSpec where- parseJSON = A.withObject "V1PodSpec" $ \o ->- V1PodSpec- <$> (o .:? "activeDeadlineSeconds")- <*> (o .:? "affinity")- <*> (o .:? "automountServiceAccountToken")- <*> (o .: "containers")- <*> (o .:? "dnsConfig")- <*> (o .:? "dnsPolicy")- <*> (o .:? "enableServiceLinks")- <*> (o .:? "ephemeralContainers")- <*> (o .:? "hostAliases")- <*> (o .:? "hostIPC")- <*> (o .:? "hostNetwork")- <*> (o .:? "hostPID")- <*> (o .:? "hostUsers")- <*> (o .:? "hostname")- <*> (o .:? "hostnameOverride")- <*> (o .:? "imagePullSecrets")- <*> (o .:? "initContainers")- <*> (o .:? "nodeName")- <*> (o .:? "nodeSelector")- <*> (o .:? "os")- <*> (o .:? "overhead")- <*> (o .:? "preemptionPolicy")- <*> (o .:? "priority")- <*> (o .:? "priorityClassName")- <*> (o .:? "readinessGates")- <*> (o .:? "resourceClaims")- <*> (o .:? "resources")- <*> (o .:? "restartPolicy")- <*> (o .:? "runtimeClassName")- <*> (o .:? "schedulerName")- <*> (o .:? "schedulingGates")- <*> (o .:? "securityContext")- <*> (o .:? "serviceAccount")- <*> (o .:? "serviceAccountName")- <*> (o .:? "setHostnameAsFQDN")- <*> (o .:? "shareProcessNamespace")- <*> (o .:? "subdomain")- <*> (o .:? "terminationGracePeriodSeconds")- <*> (o .:? "tolerations")- <*> (o .:? "topologySpreadConstraints")- <*> (o .:? "volumes")---- | ToJSON V1PodSpec-instance A.ToJSON V1PodSpec where- toJSON V1PodSpec {..} =- _omitNulls- [ "activeDeadlineSeconds" .= v1PodSpecActiveDeadlineSeconds- , "affinity" .= v1PodSpecAffinity- , "automountServiceAccountToken" .= v1PodSpecAutomountServiceAccountToken- , "containers" .= v1PodSpecContainers- , "dnsConfig" .= v1PodSpecDnsConfig- , "dnsPolicy" .= v1PodSpecDnsPolicy- , "enableServiceLinks" .= v1PodSpecEnableServiceLinks- , "ephemeralContainers" .= v1PodSpecEphemeralContainers- , "hostAliases" .= v1PodSpecHostAliases- , "hostIPC" .= v1PodSpecHostIpc- , "hostNetwork" .= v1PodSpecHostNetwork- , "hostPID" .= v1PodSpecHostPid- , "hostUsers" .= v1PodSpecHostUsers- , "hostname" .= v1PodSpecHostname- , "hostnameOverride" .= v1PodSpecHostnameOverride- , "imagePullSecrets" .= v1PodSpecImagePullSecrets- , "initContainers" .= v1PodSpecInitContainers- , "nodeName" .= v1PodSpecNodeName- , "nodeSelector" .= v1PodSpecNodeSelector- , "os" .= v1PodSpecOs- , "overhead" .= v1PodSpecOverhead- , "preemptionPolicy" .= v1PodSpecPreemptionPolicy- , "priority" .= v1PodSpecPriority- , "priorityClassName" .= v1PodSpecPriorityClassName- , "readinessGates" .= v1PodSpecReadinessGates- , "resourceClaims" .= v1PodSpecResourceClaims- , "resources" .= v1PodSpecResources- , "restartPolicy" .= v1PodSpecRestartPolicy- , "runtimeClassName" .= v1PodSpecRuntimeClassName- , "schedulerName" .= v1PodSpecSchedulerName- , "schedulingGates" .= v1PodSpecSchedulingGates- , "securityContext" .= v1PodSpecSecurityContext- , "serviceAccount" .= v1PodSpecServiceAccount- , "serviceAccountName" .= v1PodSpecServiceAccountName- , "setHostnameAsFQDN" .= v1PodSpecSetHostnameAsFqdn- , "shareProcessNamespace" .= v1PodSpecShareProcessNamespace- , "subdomain" .= v1PodSpecSubdomain- , "terminationGracePeriodSeconds" .= v1PodSpecTerminationGracePeriodSeconds- , "tolerations" .= v1PodSpecTolerations- , "topologySpreadConstraints" .= v1PodSpecTopologySpreadConstraints- , "volumes" .= v1PodSpecVolumes- ]----- | Construct a value of type 'V1PodSpec' (by applying it's required fields, if any)-mkV1PodSpec- :: [V1Container] -- ^ 'v1PodSpecContainers': 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.- -> V1PodSpec-mkV1PodSpec v1PodSpecContainers =- V1PodSpec- { v1PodSpecActiveDeadlineSeconds = Nothing- , v1PodSpecAffinity = Nothing- , v1PodSpecAutomountServiceAccountToken = Nothing- , v1PodSpecContainers- , v1PodSpecDnsConfig = Nothing- , v1PodSpecDnsPolicy = Nothing- , v1PodSpecEnableServiceLinks = Nothing- , v1PodSpecEphemeralContainers = Nothing- , v1PodSpecHostAliases = Nothing- , v1PodSpecHostIpc = Nothing- , v1PodSpecHostNetwork = Nothing- , v1PodSpecHostPid = Nothing- , v1PodSpecHostUsers = Nothing- , v1PodSpecHostname = Nothing- , v1PodSpecHostnameOverride = Nothing- , v1PodSpecImagePullSecrets = Nothing- , v1PodSpecInitContainers = Nothing- , v1PodSpecNodeName = Nothing- , v1PodSpecNodeSelector = Nothing- , v1PodSpecOs = Nothing- , v1PodSpecOverhead = Nothing- , v1PodSpecPreemptionPolicy = Nothing- , v1PodSpecPriority = Nothing- , v1PodSpecPriorityClassName = Nothing- , v1PodSpecReadinessGates = Nothing- , v1PodSpecResourceClaims = Nothing- , v1PodSpecResources = Nothing- , v1PodSpecRestartPolicy = Nothing- , v1PodSpecRuntimeClassName = Nothing- , v1PodSpecSchedulerName = Nothing- , v1PodSpecSchedulingGates = Nothing- , v1PodSpecSecurityContext = Nothing- , v1PodSpecServiceAccount = Nothing- , v1PodSpecServiceAccountName = Nothing- , v1PodSpecSetHostnameAsFqdn = Nothing- , v1PodSpecShareProcessNamespace = Nothing- , v1PodSpecSubdomain = Nothing- , v1PodSpecTerminationGracePeriodSeconds = Nothing- , v1PodSpecTolerations = Nothing- , v1PodSpecTopologySpreadConstraints = Nothing- , v1PodSpecVolumes = Nothing- }---- ** V1PodStatus--- | V1PodStatus--- 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.-data V1PodStatus = V1PodStatus- { v1PodStatusConditions :: !(Maybe [V1PodCondition]) -- ^ "conditions" - Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions- , v1PodStatusContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "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- , v1PodStatusEphemeralContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "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- , v1PodStatusExtendedResourceClaimStatus :: !(Maybe V1PodExtendedResourceClaimStatus) -- ^ "extendedResourceClaimStatus"- , v1PodStatusHostIp :: !(Maybe Text) -- ^ "hostIP" - 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- , v1PodStatusHostIps :: !(Maybe [V1HostIP]) -- ^ "hostIPs" - 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.- , v1PodStatusInitContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "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- , v1PodStatusMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about why the pod is in this condition.- , v1PodStatusNominatedNodeName :: !(Maybe Text) -- ^ "nominatedNodeName" - 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.- , v1PodStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.- , v1PodStatusPhase :: !(Maybe Text) -- ^ "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: Pending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase- , v1PodStatusPodIp :: !(Maybe Text) -- ^ "podIP" - podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.- , v1PodStatusPodIps :: !(Maybe [V1PodIP]) -- ^ "podIPs" - podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.- , v1PodStatusQosClass :: !(Maybe Text) -- ^ "qosClass" - The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes- , v1PodStatusReason :: !(Maybe Text) -- ^ "reason" - A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'- , v1PodStatusResize :: !(Maybe Text) -- ^ "resize" - Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \"Proposed\" Deprecated: Resize status is moved to two pod conditions PodResizePending and PodResizeInProgress. PodResizePending will track states where the spec has been resized, but the Kubelet has not yet allocated the resources. PodResizeInProgress will track in-progress resizes, and should be present whenever allocated resources != acknowledged resources.- , v1PodStatusResourceClaimStatuses :: !(Maybe [V1PodResourceClaimStatus]) -- ^ "resourceClaimStatuses" - Status of resource claims.- , v1PodStatusStartTime :: !(Maybe DateTime) -- ^ "startTime" - RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodStatus-instance A.FromJSON V1PodStatus where- parseJSON = A.withObject "V1PodStatus" $ \o ->- V1PodStatus- <$> (o .:? "conditions")- <*> (o .:? "containerStatuses")- <*> (o .:? "ephemeralContainerStatuses")- <*> (o .:? "extendedResourceClaimStatus")- <*> (o .:? "hostIP")- <*> (o .:? "hostIPs")- <*> (o .:? "initContainerStatuses")- <*> (o .:? "message")- <*> (o .:? "nominatedNodeName")- <*> (o .:? "observedGeneration")- <*> (o .:? "phase")- <*> (o .:? "podIP")- <*> (o .:? "podIPs")- <*> (o .:? "qosClass")- <*> (o .:? "reason")- <*> (o .:? "resize")- <*> (o .:? "resourceClaimStatuses")- <*> (o .:? "startTime")---- | ToJSON V1PodStatus-instance A.ToJSON V1PodStatus where- toJSON V1PodStatus {..} =- _omitNulls- [ "conditions" .= v1PodStatusConditions- , "containerStatuses" .= v1PodStatusContainerStatuses- , "ephemeralContainerStatuses" .= v1PodStatusEphemeralContainerStatuses- , "extendedResourceClaimStatus" .= v1PodStatusExtendedResourceClaimStatus- , "hostIP" .= v1PodStatusHostIp- , "hostIPs" .= v1PodStatusHostIps- , "initContainerStatuses" .= v1PodStatusInitContainerStatuses- , "message" .= v1PodStatusMessage- , "nominatedNodeName" .= v1PodStatusNominatedNodeName- , "observedGeneration" .= v1PodStatusObservedGeneration- , "phase" .= v1PodStatusPhase- , "podIP" .= v1PodStatusPodIp- , "podIPs" .= v1PodStatusPodIps- , "qosClass" .= v1PodStatusQosClass- , "reason" .= v1PodStatusReason- , "resize" .= v1PodStatusResize- , "resourceClaimStatuses" .= v1PodStatusResourceClaimStatuses- , "startTime" .= v1PodStatusStartTime- ]----- | Construct a value of type 'V1PodStatus' (by applying it's required fields, if any)-mkV1PodStatus- :: V1PodStatus-mkV1PodStatus =- V1PodStatus- { v1PodStatusConditions = Nothing- , v1PodStatusContainerStatuses = Nothing- , v1PodStatusEphemeralContainerStatuses = Nothing- , v1PodStatusExtendedResourceClaimStatus = Nothing- , v1PodStatusHostIp = Nothing- , v1PodStatusHostIps = Nothing- , v1PodStatusInitContainerStatuses = Nothing- , v1PodStatusMessage = Nothing- , v1PodStatusNominatedNodeName = Nothing- , v1PodStatusObservedGeneration = Nothing- , v1PodStatusPhase = Nothing- , v1PodStatusPodIp = Nothing- , v1PodStatusPodIps = Nothing- , v1PodStatusQosClass = Nothing- , v1PodStatusReason = Nothing- , v1PodStatusResize = Nothing- , v1PodStatusResourceClaimStatuses = Nothing- , v1PodStatusStartTime = Nothing- }---- ** V1PodTemplate--- | V1PodTemplate--- PodTemplate describes a template for creating copies of a predefined pod.-data V1PodTemplate = V1PodTemplate- { v1PodTemplateApiVersion :: !(Maybe Text) -- ^ "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- , v1PodTemplateKind :: !(Maybe Text) -- ^ "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- , v1PodTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PodTemplateTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodTemplate-instance A.FromJSON V1PodTemplate where- parseJSON = A.withObject "V1PodTemplate" $ \o ->- V1PodTemplate- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "template")---- | ToJSON V1PodTemplate-instance A.ToJSON V1PodTemplate where- toJSON V1PodTemplate {..} =- _omitNulls- [ "apiVersion" .= v1PodTemplateApiVersion- , "kind" .= v1PodTemplateKind- , "metadata" .= v1PodTemplateMetadata- , "template" .= v1PodTemplateTemplate- ]----- | Construct a value of type 'V1PodTemplate' (by applying it's required fields, if any)-mkV1PodTemplate- :: V1PodTemplate-mkV1PodTemplate =- V1PodTemplate- { v1PodTemplateApiVersion = Nothing- , v1PodTemplateKind = Nothing- , v1PodTemplateMetadata = Nothing- , v1PodTemplateTemplate = Nothing- }---- ** V1PodTemplateList--- | V1PodTemplateList--- PodTemplateList is a list of PodTemplates.-data V1PodTemplateList = V1PodTemplateList- { v1PodTemplateListApiVersion :: !(Maybe Text) -- ^ "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- , v1PodTemplateListItems :: !([V1PodTemplate]) -- ^ /Required/ "items" - List of pod templates- , v1PodTemplateListKind :: !(Maybe Text) -- ^ "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- , v1PodTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodTemplateList-instance A.FromJSON V1PodTemplateList where- parseJSON = A.withObject "V1PodTemplateList" $ \o ->- V1PodTemplateList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1PodTemplateList-instance A.ToJSON V1PodTemplateList where- toJSON V1PodTemplateList {..} =- _omitNulls- [ "apiVersion" .= v1PodTemplateListApiVersion- , "items" .= v1PodTemplateListItems- , "kind" .= v1PodTemplateListKind- , "metadata" .= v1PodTemplateListMetadata- ]----- | Construct a value of type 'V1PodTemplateList' (by applying it's required fields, if any)-mkV1PodTemplateList- :: [V1PodTemplate] -- ^ 'v1PodTemplateListItems': List of pod templates- -> V1PodTemplateList-mkV1PodTemplateList v1PodTemplateListItems =- V1PodTemplateList- { v1PodTemplateListApiVersion = Nothing- , v1PodTemplateListItems- , v1PodTemplateListKind = Nothing- , v1PodTemplateListMetadata = Nothing- }---- ** V1PodTemplateSpec--- | V1PodTemplateSpec--- PodTemplateSpec describes the data a pod should have when created from a template-data V1PodTemplateSpec = V1PodTemplateSpec- { v1PodTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PodTemplateSpecSpec :: !(Maybe V1PodSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PodTemplateSpec-instance A.FromJSON V1PodTemplateSpec where- parseJSON = A.withObject "V1PodTemplateSpec" $ \o ->- V1PodTemplateSpec- <$> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1PodTemplateSpec-instance A.ToJSON V1PodTemplateSpec where- toJSON V1PodTemplateSpec {..} =- _omitNulls- [ "metadata" .= v1PodTemplateSpecMetadata- , "spec" .= v1PodTemplateSpecSpec- ]----- | Construct a value of type 'V1PodTemplateSpec' (by applying it's required fields, if any)-mkV1PodTemplateSpec- :: V1PodTemplateSpec-mkV1PodTemplateSpec =- V1PodTemplateSpec- { v1PodTemplateSpecMetadata = Nothing- , v1PodTemplateSpecSpec = Nothing- }---- ** V1PolicyRule--- | V1PolicyRule--- PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.-data V1PolicyRule = V1PolicyRule- { v1PolicyRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.- , v1PolicyRuleNonResourceUrls :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.- , v1PolicyRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.- , v1PolicyRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to. '*' represents all resources.- , v1PolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PolicyRule-instance A.FromJSON V1PolicyRule where- parseJSON = A.withObject "V1PolicyRule" $ \o ->- V1PolicyRule- <$> (o .:? "apiGroups")- <*> (o .:? "nonResourceURLs")- <*> (o .:? "resourceNames")- <*> (o .:? "resources")- <*> (o .: "verbs")---- | ToJSON V1PolicyRule-instance A.ToJSON V1PolicyRule where- toJSON V1PolicyRule {..} =- _omitNulls- [ "apiGroups" .= v1PolicyRuleApiGroups- , "nonResourceURLs" .= v1PolicyRuleNonResourceUrls- , "resourceNames" .= v1PolicyRuleResourceNames- , "resources" .= v1PolicyRuleResources- , "verbs" .= v1PolicyRuleVerbs- ]----- | Construct a value of type 'V1PolicyRule' (by applying it's required fields, if any)-mkV1PolicyRule- :: [Text] -- ^ 'v1PolicyRuleVerbs': Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.- -> V1PolicyRule-mkV1PolicyRule v1PolicyRuleVerbs =- V1PolicyRule- { v1PolicyRuleApiGroups = Nothing- , v1PolicyRuleNonResourceUrls = Nothing- , v1PolicyRuleResourceNames = Nothing- , v1PolicyRuleResources = Nothing- , v1PolicyRuleVerbs- }---- ** V1PolicyRulesWithSubjects--- | V1PolicyRulesWithSubjects--- PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.-data V1PolicyRulesWithSubjects = V1PolicyRulesWithSubjects- { v1PolicyRulesWithSubjectsNonResourceRules :: !(Maybe [V1NonResourcePolicyRule]) -- ^ "nonResourceRules" - `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.- , v1PolicyRulesWithSubjectsResourceRules :: !(Maybe [V1ResourcePolicyRule]) -- ^ "resourceRules" - `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.- , v1PolicyRulesWithSubjectsSubjects :: !([FlowcontrolV1Subject]) -- ^ /Required/ "subjects" - subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PolicyRulesWithSubjects-instance A.FromJSON V1PolicyRulesWithSubjects where- parseJSON = A.withObject "V1PolicyRulesWithSubjects" $ \o ->- V1PolicyRulesWithSubjects- <$> (o .:? "nonResourceRules")- <*> (o .:? "resourceRules")- <*> (o .: "subjects")---- | ToJSON V1PolicyRulesWithSubjects-instance A.ToJSON V1PolicyRulesWithSubjects where- toJSON V1PolicyRulesWithSubjects {..} =- _omitNulls- [ "nonResourceRules" .= v1PolicyRulesWithSubjectsNonResourceRules- , "resourceRules" .= v1PolicyRulesWithSubjectsResourceRules- , "subjects" .= v1PolicyRulesWithSubjectsSubjects- ]----- | Construct a value of type 'V1PolicyRulesWithSubjects' (by applying it's required fields, if any)-mkV1PolicyRulesWithSubjects- :: [FlowcontrolV1Subject] -- ^ 'v1PolicyRulesWithSubjectsSubjects': subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.- -> V1PolicyRulesWithSubjects-mkV1PolicyRulesWithSubjects v1PolicyRulesWithSubjectsSubjects =- V1PolicyRulesWithSubjects- { v1PolicyRulesWithSubjectsNonResourceRules = Nothing- , v1PolicyRulesWithSubjectsResourceRules = Nothing- , v1PolicyRulesWithSubjectsSubjects- }---- ** V1PortStatus--- | V1PortStatus--- PortStatus represents the error condition of a service port-data V1PortStatus = V1PortStatus- { v1PortStatusError :: !(Maybe Text) -- ^ "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 format foo.example.com/CamelCase.- , v1PortStatusPort :: !(Int) -- ^ /Required/ "port" - Port is the port number of the service port of which status is recorded here- , v1PortStatusProtocol :: !(Text) -- ^ /Required/ "protocol" - Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PortStatus-instance A.FromJSON V1PortStatus where- parseJSON = A.withObject "V1PortStatus" $ \o ->- V1PortStatus- <$> (o .:? "error")- <*> (o .: "port")- <*> (o .: "protocol")---- | ToJSON V1PortStatus-instance A.ToJSON V1PortStatus where- toJSON V1PortStatus {..} =- _omitNulls- [ "error" .= v1PortStatusError- , "port" .= v1PortStatusPort- , "protocol" .= v1PortStatusProtocol- ]----- | Construct a value of type 'V1PortStatus' (by applying it's required fields, if any)-mkV1PortStatus- :: Int -- ^ 'v1PortStatusPort': Port is the port number of the service port of which status is recorded here- -> Text -- ^ 'v1PortStatusProtocol': Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"- -> V1PortStatus-mkV1PortStatus v1PortStatusPort v1PortStatusProtocol =- V1PortStatus- { v1PortStatusError = Nothing- , v1PortStatusPort- , v1PortStatusProtocol- }---- ** V1PortworxVolumeSource--- | V1PortworxVolumeSource--- PortworxVolumeSource represents a Portworx volume resource.-data V1PortworxVolumeSource = V1PortworxVolumeSource- { v1PortworxVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.- , v1PortworxVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1PortworxVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volumeID uniquely identifies a Portworx volume- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PortworxVolumeSource-instance A.FromJSON V1PortworxVolumeSource where- parseJSON = A.withObject "V1PortworxVolumeSource" $ \o ->- V1PortworxVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "readOnly")- <*> (o .: "volumeID")---- | ToJSON V1PortworxVolumeSource-instance A.ToJSON V1PortworxVolumeSource where- toJSON V1PortworxVolumeSource {..} =- _omitNulls- [ "fsType" .= v1PortworxVolumeSourceFsType- , "readOnly" .= v1PortworxVolumeSourceReadOnly- , "volumeID" .= v1PortworxVolumeSourceVolumeId- ]----- | Construct a value of type 'V1PortworxVolumeSource' (by applying it's required fields, if any)-mkV1PortworxVolumeSource- :: Text -- ^ 'v1PortworxVolumeSourceVolumeId': volumeID uniquely identifies a Portworx volume- -> V1PortworxVolumeSource-mkV1PortworxVolumeSource v1PortworxVolumeSourceVolumeId =- V1PortworxVolumeSource- { v1PortworxVolumeSourceFsType = Nothing- , v1PortworxVolumeSourceReadOnly = Nothing- , v1PortworxVolumeSourceVolumeId- }---- ** V1Preconditions--- | V1Preconditions--- Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.-data V1Preconditions = V1Preconditions- { v1PreconditionsResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - Specifies the target ResourceVersion- , v1PreconditionsUid :: !(Maybe Text) -- ^ "uid" - Specifies the target UID.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Preconditions-instance A.FromJSON V1Preconditions where- parseJSON = A.withObject "V1Preconditions" $ \o ->- V1Preconditions- <$> (o .:? "resourceVersion")- <*> (o .:? "uid")---- | ToJSON V1Preconditions-instance A.ToJSON V1Preconditions where- toJSON V1Preconditions {..} =- _omitNulls- [ "resourceVersion" .= v1PreconditionsResourceVersion- , "uid" .= v1PreconditionsUid- ]----- | Construct a value of type 'V1Preconditions' (by applying it's required fields, if any)-mkV1Preconditions- :: V1Preconditions-mkV1Preconditions =- V1Preconditions- { v1PreconditionsResourceVersion = Nothing- , v1PreconditionsUid = Nothing- }---- ** V1PreferredSchedulingTerm--- | V1PreferredSchedulingTerm--- An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).-data V1PreferredSchedulingTerm = V1PreferredSchedulingTerm- { v1PreferredSchedulingTermPreference :: !(V1NodeSelectorTerm) -- ^ /Required/ "preference"- , v1PreferredSchedulingTermWeight :: !(Int) -- ^ /Required/ "weight" - Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PreferredSchedulingTerm-instance A.FromJSON V1PreferredSchedulingTerm where- parseJSON = A.withObject "V1PreferredSchedulingTerm" $ \o ->- V1PreferredSchedulingTerm- <$> (o .: "preference")- <*> (o .: "weight")---- | ToJSON V1PreferredSchedulingTerm-instance A.ToJSON V1PreferredSchedulingTerm where- toJSON V1PreferredSchedulingTerm {..} =- _omitNulls- [ "preference" .= v1PreferredSchedulingTermPreference- , "weight" .= v1PreferredSchedulingTermWeight- ]----- | Construct a value of type 'V1PreferredSchedulingTerm' (by applying it's required fields, if any)-mkV1PreferredSchedulingTerm- :: V1NodeSelectorTerm -- ^ 'v1PreferredSchedulingTermPreference' - -> Int -- ^ 'v1PreferredSchedulingTermWeight': Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.- -> V1PreferredSchedulingTerm-mkV1PreferredSchedulingTerm v1PreferredSchedulingTermPreference v1PreferredSchedulingTermWeight =- V1PreferredSchedulingTerm- { v1PreferredSchedulingTermPreference- , v1PreferredSchedulingTermWeight- }---- ** V1PriorityClass--- | V1PriorityClass--- PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.-data V1PriorityClass = V1PriorityClass- { v1PriorityClassApiVersion :: !(Maybe Text) -- ^ "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- , v1PriorityClassDescription :: !(Maybe Text) -- ^ "description" - description is an arbitrary string that usually provides guidelines on when this priority class should be used.- , v1PriorityClassGlobalDefault :: !(Maybe Bool) -- ^ "globalDefault" - globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.- , v1PriorityClassKind :: !(Maybe Text) -- ^ "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- , v1PriorityClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PriorityClassPreemptionPolicy :: !(Maybe Text) -- ^ "preemptionPolicy" - preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.- , v1PriorityClassValue :: !(Int) -- ^ /Required/ "value" - value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PriorityClass-instance A.FromJSON V1PriorityClass where- parseJSON = A.withObject "V1PriorityClass" $ \o ->- V1PriorityClass- <$> (o .:? "apiVersion")- <*> (o .:? "description")- <*> (o .:? "globalDefault")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "preemptionPolicy")- <*> (o .: "value")---- | ToJSON V1PriorityClass-instance A.ToJSON V1PriorityClass where- toJSON V1PriorityClass {..} =- _omitNulls- [ "apiVersion" .= v1PriorityClassApiVersion- , "description" .= v1PriorityClassDescription- , "globalDefault" .= v1PriorityClassGlobalDefault- , "kind" .= v1PriorityClassKind- , "metadata" .= v1PriorityClassMetadata- , "preemptionPolicy" .= v1PriorityClassPreemptionPolicy- , "value" .= v1PriorityClassValue- ]----- | Construct a value of type 'V1PriorityClass' (by applying it's required fields, if any)-mkV1PriorityClass- :: Int -- ^ 'v1PriorityClassValue': value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.- -> V1PriorityClass-mkV1PriorityClass v1PriorityClassValue =- V1PriorityClass- { v1PriorityClassApiVersion = Nothing- , v1PriorityClassDescription = Nothing- , v1PriorityClassGlobalDefault = Nothing- , v1PriorityClassKind = Nothing- , v1PriorityClassMetadata = Nothing- , v1PriorityClassPreemptionPolicy = Nothing- , v1PriorityClassValue- }---- ** V1PriorityClassList--- | V1PriorityClassList--- PriorityClassList is a collection of priority classes.-data V1PriorityClassList = V1PriorityClassList- { v1PriorityClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1PriorityClassListItems :: !([V1PriorityClass]) -- ^ /Required/ "items" - items is the list of PriorityClasses- , v1PriorityClassListKind :: !(Maybe Text) -- ^ "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- , v1PriorityClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PriorityClassList-instance A.FromJSON V1PriorityClassList where- parseJSON = A.withObject "V1PriorityClassList" $ \o ->- V1PriorityClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1PriorityClassList-instance A.ToJSON V1PriorityClassList where- toJSON V1PriorityClassList {..} =- _omitNulls- [ "apiVersion" .= v1PriorityClassListApiVersion- , "items" .= v1PriorityClassListItems- , "kind" .= v1PriorityClassListKind- , "metadata" .= v1PriorityClassListMetadata- ]----- | Construct a value of type 'V1PriorityClassList' (by applying it's required fields, if any)-mkV1PriorityClassList- :: [V1PriorityClass] -- ^ 'v1PriorityClassListItems': items is the list of PriorityClasses- -> V1PriorityClassList-mkV1PriorityClassList v1PriorityClassListItems =- V1PriorityClassList- { v1PriorityClassListApiVersion = Nothing- , v1PriorityClassListItems- , v1PriorityClassListKind = Nothing- , v1PriorityClassListMetadata = Nothing- }---- ** V1PriorityLevelConfiguration--- | V1PriorityLevelConfiguration--- PriorityLevelConfiguration represents the configuration of a priority level.-data V1PriorityLevelConfiguration = V1PriorityLevelConfiguration- { v1PriorityLevelConfigurationApiVersion :: !(Maybe Text) -- ^ "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- , v1PriorityLevelConfigurationKind :: !(Maybe Text) -- ^ "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- , v1PriorityLevelConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1PriorityLevelConfigurationSpec :: !(Maybe V1PriorityLevelConfigurationSpec) -- ^ "spec"- , v1PriorityLevelConfigurationStatus :: !(Maybe V1PriorityLevelConfigurationStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PriorityLevelConfiguration-instance A.FromJSON V1PriorityLevelConfiguration where- parseJSON = A.withObject "V1PriorityLevelConfiguration" $ \o ->- V1PriorityLevelConfiguration- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1PriorityLevelConfiguration-instance A.ToJSON V1PriorityLevelConfiguration where- toJSON V1PriorityLevelConfiguration {..} =- _omitNulls- [ "apiVersion" .= v1PriorityLevelConfigurationApiVersion- , "kind" .= v1PriorityLevelConfigurationKind- , "metadata" .= v1PriorityLevelConfigurationMetadata- , "spec" .= v1PriorityLevelConfigurationSpec- , "status" .= v1PriorityLevelConfigurationStatus- ]----- | Construct a value of type 'V1PriorityLevelConfiguration' (by applying it's required fields, if any)-mkV1PriorityLevelConfiguration- :: V1PriorityLevelConfiguration-mkV1PriorityLevelConfiguration =- V1PriorityLevelConfiguration- { v1PriorityLevelConfigurationApiVersion = Nothing- , v1PriorityLevelConfigurationKind = Nothing- , v1PriorityLevelConfigurationMetadata = Nothing- , v1PriorityLevelConfigurationSpec = Nothing- , v1PriorityLevelConfigurationStatus = Nothing- }---- ** V1PriorityLevelConfigurationCondition--- | V1PriorityLevelConfigurationCondition--- PriorityLevelConfigurationCondition defines the condition of priority level.-data V1PriorityLevelConfigurationCondition = V1PriorityLevelConfigurationCondition- { v1PriorityLevelConfigurationConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - `lastTransitionTime` is the last time the condition transitioned from one status to another.- , v1PriorityLevelConfigurationConditionMessage :: !(Maybe Text) -- ^ "message" - `message` is a human-readable message indicating details about last transition.- , v1PriorityLevelConfigurationConditionReason :: !(Maybe Text) -- ^ "reason" - `reason` is a unique, one-word, CamelCase reason for the condition's last transition.- , v1PriorityLevelConfigurationConditionStatus :: !(Maybe Text) -- ^ "status" - `status` is the status of the condition. Can be True, False, Unknown. Required.- , v1PriorityLevelConfigurationConditionType :: !(Maybe Text) -- ^ "type" - `type` is the type of the condition. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PriorityLevelConfigurationCondition-instance A.FromJSON V1PriorityLevelConfigurationCondition where- parseJSON = A.withObject "V1PriorityLevelConfigurationCondition" $ \o ->- V1PriorityLevelConfigurationCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .:? "status")- <*> (o .:? "type")---- | ToJSON V1PriorityLevelConfigurationCondition-instance A.ToJSON V1PriorityLevelConfigurationCondition where- toJSON V1PriorityLevelConfigurationCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1PriorityLevelConfigurationConditionLastTransitionTime- , "message" .= v1PriorityLevelConfigurationConditionMessage- , "reason" .= v1PriorityLevelConfigurationConditionReason- , "status" .= v1PriorityLevelConfigurationConditionStatus- , "type" .= v1PriorityLevelConfigurationConditionType- ]----- | Construct a value of type 'V1PriorityLevelConfigurationCondition' (by applying it's required fields, if any)-mkV1PriorityLevelConfigurationCondition- :: V1PriorityLevelConfigurationCondition-mkV1PriorityLevelConfigurationCondition =- V1PriorityLevelConfigurationCondition- { v1PriorityLevelConfigurationConditionLastTransitionTime = Nothing- , v1PriorityLevelConfigurationConditionMessage = Nothing- , v1PriorityLevelConfigurationConditionReason = Nothing- , v1PriorityLevelConfigurationConditionStatus = Nothing- , v1PriorityLevelConfigurationConditionType = Nothing- }---- ** V1PriorityLevelConfigurationList--- | V1PriorityLevelConfigurationList--- PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.-data V1PriorityLevelConfigurationList = V1PriorityLevelConfigurationList- { v1PriorityLevelConfigurationListApiVersion :: !(Maybe Text) -- ^ "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- , v1PriorityLevelConfigurationListItems :: !([V1PriorityLevelConfiguration]) -- ^ /Required/ "items" - `items` is a list of request-priorities.- , v1PriorityLevelConfigurationListKind :: !(Maybe Text) -- ^ "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- , v1PriorityLevelConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PriorityLevelConfigurationList-instance A.FromJSON V1PriorityLevelConfigurationList where- parseJSON = A.withObject "V1PriorityLevelConfigurationList" $ \o ->- V1PriorityLevelConfigurationList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1PriorityLevelConfigurationList-instance A.ToJSON V1PriorityLevelConfigurationList where- toJSON V1PriorityLevelConfigurationList {..} =- _omitNulls- [ "apiVersion" .= v1PriorityLevelConfigurationListApiVersion- , "items" .= v1PriorityLevelConfigurationListItems- , "kind" .= v1PriorityLevelConfigurationListKind- , "metadata" .= v1PriorityLevelConfigurationListMetadata- ]----- | Construct a value of type 'V1PriorityLevelConfigurationList' (by applying it's required fields, if any)-mkV1PriorityLevelConfigurationList- :: [V1PriorityLevelConfiguration] -- ^ 'v1PriorityLevelConfigurationListItems': `items` is a list of request-priorities.- -> V1PriorityLevelConfigurationList-mkV1PriorityLevelConfigurationList v1PriorityLevelConfigurationListItems =- V1PriorityLevelConfigurationList- { v1PriorityLevelConfigurationListApiVersion = Nothing- , v1PriorityLevelConfigurationListItems- , v1PriorityLevelConfigurationListKind = Nothing- , v1PriorityLevelConfigurationListMetadata = Nothing- }---- ** V1PriorityLevelConfigurationReference--- | V1PriorityLevelConfigurationReference--- PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.-data V1PriorityLevelConfigurationReference = V1PriorityLevelConfigurationReference- { v1PriorityLevelConfigurationReferenceName :: !(Text) -- ^ /Required/ "name" - `name` is the name of the priority level configuration being referenced Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PriorityLevelConfigurationReference-instance A.FromJSON V1PriorityLevelConfigurationReference where- parseJSON = A.withObject "V1PriorityLevelConfigurationReference" $ \o ->- V1PriorityLevelConfigurationReference- <$> (o .: "name")---- | ToJSON V1PriorityLevelConfigurationReference-instance A.ToJSON V1PriorityLevelConfigurationReference where- toJSON V1PriorityLevelConfigurationReference {..} =- _omitNulls- [ "name" .= v1PriorityLevelConfigurationReferenceName- ]----- | Construct a value of type 'V1PriorityLevelConfigurationReference' (by applying it's required fields, if any)-mkV1PriorityLevelConfigurationReference- :: Text -- ^ 'v1PriorityLevelConfigurationReferenceName': `name` is the name of the priority level configuration being referenced Required.- -> V1PriorityLevelConfigurationReference-mkV1PriorityLevelConfigurationReference v1PriorityLevelConfigurationReferenceName =- V1PriorityLevelConfigurationReference- { v1PriorityLevelConfigurationReferenceName- }---- ** V1PriorityLevelConfigurationSpec--- | V1PriorityLevelConfigurationSpec--- PriorityLevelConfigurationSpec specifies the configuration of a priority level.-data V1PriorityLevelConfigurationSpec = V1PriorityLevelConfigurationSpec- { v1PriorityLevelConfigurationSpecExempt :: !(Maybe V1ExemptPriorityLevelConfiguration) -- ^ "exempt"- , v1PriorityLevelConfigurationSpecLimited :: !(Maybe V1LimitedPriorityLevelConfiguration) -- ^ "limited"- , v1PriorityLevelConfigurationSpecType :: !(Text) -- ^ /Required/ "type" - `type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PriorityLevelConfigurationSpec-instance A.FromJSON V1PriorityLevelConfigurationSpec where- parseJSON = A.withObject "V1PriorityLevelConfigurationSpec" $ \o ->- V1PriorityLevelConfigurationSpec- <$> (o .:? "exempt")- <*> (o .:? "limited")- <*> (o .: "type")---- | ToJSON V1PriorityLevelConfigurationSpec-instance A.ToJSON V1PriorityLevelConfigurationSpec where- toJSON V1PriorityLevelConfigurationSpec {..} =- _omitNulls- [ "exempt" .= v1PriorityLevelConfigurationSpecExempt- , "limited" .= v1PriorityLevelConfigurationSpecLimited- , "type" .= v1PriorityLevelConfigurationSpecType- ]----- | Construct a value of type 'V1PriorityLevelConfigurationSpec' (by applying it's required fields, if any)-mkV1PriorityLevelConfigurationSpec- :: Text -- ^ 'v1PriorityLevelConfigurationSpecType': `type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.- -> V1PriorityLevelConfigurationSpec-mkV1PriorityLevelConfigurationSpec v1PriorityLevelConfigurationSpecType =- V1PriorityLevelConfigurationSpec- { v1PriorityLevelConfigurationSpecExempt = Nothing- , v1PriorityLevelConfigurationSpecLimited = Nothing- , v1PriorityLevelConfigurationSpecType- }---- ** V1PriorityLevelConfigurationStatus--- | V1PriorityLevelConfigurationStatus--- PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".-data V1PriorityLevelConfigurationStatus = V1PriorityLevelConfigurationStatus- { v1PriorityLevelConfigurationStatusConditions :: !(Maybe [V1PriorityLevelConfigurationCondition]) -- ^ "conditions" - `conditions` is the current state of \"request-priority\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1PriorityLevelConfigurationStatus-instance A.FromJSON V1PriorityLevelConfigurationStatus where- parseJSON = A.withObject "V1PriorityLevelConfigurationStatus" $ \o ->- V1PriorityLevelConfigurationStatus- <$> (o .:? "conditions")---- | ToJSON V1PriorityLevelConfigurationStatus-instance A.ToJSON V1PriorityLevelConfigurationStatus where- toJSON V1PriorityLevelConfigurationStatus {..} =- _omitNulls- [ "conditions" .= v1PriorityLevelConfigurationStatusConditions- ]----- | Construct a value of type 'V1PriorityLevelConfigurationStatus' (by applying it's required fields, if any)-mkV1PriorityLevelConfigurationStatus- :: V1PriorityLevelConfigurationStatus-mkV1PriorityLevelConfigurationStatus =- V1PriorityLevelConfigurationStatus- { v1PriorityLevelConfigurationStatusConditions = Nothing- }---- ** V1Probe--- | V1Probe--- Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.-data V1Probe = V1Probe- { v1ProbeExec :: !(Maybe V1ExecAction) -- ^ "exec"- , v1ProbeFailureThreshold :: !(Maybe Int) -- ^ "failureThreshold" - Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.- , v1ProbeGrpc :: !(Maybe V1GRPCAction) -- ^ "grpc"- , v1ProbeHttpGet :: !(Maybe V1HTTPGetAction) -- ^ "httpGet"- , v1ProbeInitialDelaySeconds :: !(Maybe Int) -- ^ "initialDelaySeconds" - 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- , v1ProbePeriodSeconds :: !(Maybe Int) -- ^ "periodSeconds" - How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.- , v1ProbeSuccessThreshold :: !(Maybe Int) -- ^ "successThreshold" - 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.- , v1ProbeTcpSocket :: !(Maybe V1TCPSocketAction) -- ^ "tcpSocket"- , v1ProbeTerminationGracePeriodSeconds :: !(Maybe Integer) -- ^ "terminationGracePeriodSeconds" - 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.- , v1ProbeTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - 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- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Probe-instance A.FromJSON V1Probe where- parseJSON = A.withObject "V1Probe" $ \o ->- V1Probe- <$> (o .:? "exec")- <*> (o .:? "failureThreshold")- <*> (o .:? "grpc")- <*> (o .:? "httpGet")- <*> (o .:? "initialDelaySeconds")- <*> (o .:? "periodSeconds")- <*> (o .:? "successThreshold")- <*> (o .:? "tcpSocket")- <*> (o .:? "terminationGracePeriodSeconds")- <*> (o .:? "timeoutSeconds")---- | ToJSON V1Probe-instance A.ToJSON V1Probe where- toJSON V1Probe {..} =- _omitNulls- [ "exec" .= v1ProbeExec- , "failureThreshold" .= v1ProbeFailureThreshold- , "grpc" .= v1ProbeGrpc- , "httpGet" .= v1ProbeHttpGet- , "initialDelaySeconds" .= v1ProbeInitialDelaySeconds- , "periodSeconds" .= v1ProbePeriodSeconds- , "successThreshold" .= v1ProbeSuccessThreshold- , "tcpSocket" .= v1ProbeTcpSocket- , "terminationGracePeriodSeconds" .= v1ProbeTerminationGracePeriodSeconds- , "timeoutSeconds" .= v1ProbeTimeoutSeconds- ]----- | Construct a value of type 'V1Probe' (by applying it's required fields, if any)-mkV1Probe- :: V1Probe-mkV1Probe =- V1Probe- { v1ProbeExec = Nothing- , v1ProbeFailureThreshold = Nothing- , v1ProbeGrpc = Nothing- , v1ProbeHttpGet = Nothing- , v1ProbeInitialDelaySeconds = Nothing- , v1ProbePeriodSeconds = Nothing- , v1ProbeSuccessThreshold = Nothing- , v1ProbeTcpSocket = Nothing- , v1ProbeTerminationGracePeriodSeconds = Nothing- , v1ProbeTimeoutSeconds = Nothing- }---- ** V1ProjectedVolumeSource--- | V1ProjectedVolumeSource--- Represents a projected volume source-data V1ProjectedVolumeSource = V1ProjectedVolumeSource- { v1ProjectedVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.- , v1ProjectedVolumeSourceSources :: !(Maybe [V1VolumeProjection]) -- ^ "sources" - sources is the list of volume projections. Each entry in this list handles one source.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ProjectedVolumeSource-instance A.FromJSON V1ProjectedVolumeSource where- parseJSON = A.withObject "V1ProjectedVolumeSource" $ \o ->- V1ProjectedVolumeSource- <$> (o .:? "defaultMode")- <*> (o .:? "sources")---- | ToJSON V1ProjectedVolumeSource-instance A.ToJSON V1ProjectedVolumeSource where- toJSON V1ProjectedVolumeSource {..} =- _omitNulls- [ "defaultMode" .= v1ProjectedVolumeSourceDefaultMode- , "sources" .= v1ProjectedVolumeSourceSources- ]----- | Construct a value of type 'V1ProjectedVolumeSource' (by applying it's required fields, if any)-mkV1ProjectedVolumeSource- :: V1ProjectedVolumeSource-mkV1ProjectedVolumeSource =- V1ProjectedVolumeSource- { v1ProjectedVolumeSourceDefaultMode = Nothing- , v1ProjectedVolumeSourceSources = Nothing- }---- ** V1QueuingConfiguration--- | V1QueuingConfiguration--- QueuingConfiguration holds the configuration parameters for queuing-data V1QueuingConfiguration = V1QueuingConfiguration- { v1QueuingConfigurationHandSize :: !(Maybe Int) -- ^ "handSize" - `handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8.- , v1QueuingConfigurationQueueLengthLimit :: !(Maybe Int) -- ^ "queueLengthLimit" - `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50.- , v1QueuingConfigurationQueues :: !(Maybe Int) -- ^ "queues" - `queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1QueuingConfiguration-instance A.FromJSON V1QueuingConfiguration where- parseJSON = A.withObject "V1QueuingConfiguration" $ \o ->- V1QueuingConfiguration- <$> (o .:? "handSize")- <*> (o .:? "queueLengthLimit")- <*> (o .:? "queues")---- | ToJSON V1QueuingConfiguration-instance A.ToJSON V1QueuingConfiguration where- toJSON V1QueuingConfiguration {..} =- _omitNulls- [ "handSize" .= v1QueuingConfigurationHandSize- , "queueLengthLimit" .= v1QueuingConfigurationQueueLengthLimit- , "queues" .= v1QueuingConfigurationQueues- ]----- | Construct a value of type 'V1QueuingConfiguration' (by applying it's required fields, if any)-mkV1QueuingConfiguration- :: V1QueuingConfiguration-mkV1QueuingConfiguration =- V1QueuingConfiguration- { v1QueuingConfigurationHandSize = Nothing- , v1QueuingConfigurationQueueLengthLimit = Nothing- , v1QueuingConfigurationQueues = Nothing- }---- ** V1QuobyteVolumeSource--- | V1QuobyteVolumeSource--- Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.-data V1QuobyteVolumeSource = V1QuobyteVolumeSource- { v1QuobyteVolumeSourceGroup :: !(Maybe Text) -- ^ "group" - group to map volume access to Default is no group- , v1QuobyteVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.- , v1QuobyteVolumeSourceRegistry :: !(Text) -- ^ /Required/ "registry" - registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes- , v1QuobyteVolumeSourceTenant :: !(Maybe Text) -- ^ "tenant" - tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin- , v1QuobyteVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user to map volume access to Defaults to serivceaccount user- , v1QuobyteVolumeSourceVolume :: !(Text) -- ^ /Required/ "volume" - volume is a string that references an already created Quobyte volume by name.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1QuobyteVolumeSource-instance A.FromJSON V1QuobyteVolumeSource where- parseJSON = A.withObject "V1QuobyteVolumeSource" $ \o ->- V1QuobyteVolumeSource- <$> (o .:? "group")- <*> (o .:? "readOnly")- <*> (o .: "registry")- <*> (o .:? "tenant")- <*> (o .:? "user")- <*> (o .: "volume")---- | ToJSON V1QuobyteVolumeSource-instance A.ToJSON V1QuobyteVolumeSource where- toJSON V1QuobyteVolumeSource {..} =- _omitNulls- [ "group" .= v1QuobyteVolumeSourceGroup- , "readOnly" .= v1QuobyteVolumeSourceReadOnly- , "registry" .= v1QuobyteVolumeSourceRegistry- , "tenant" .= v1QuobyteVolumeSourceTenant- , "user" .= v1QuobyteVolumeSourceUser- , "volume" .= v1QuobyteVolumeSourceVolume- ]----- | Construct a value of type 'V1QuobyteVolumeSource' (by applying it's required fields, if any)-mkV1QuobyteVolumeSource- :: Text -- ^ 'v1QuobyteVolumeSourceRegistry': registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes- -> Text -- ^ 'v1QuobyteVolumeSourceVolume': volume is a string that references an already created Quobyte volume by name.- -> V1QuobyteVolumeSource-mkV1QuobyteVolumeSource v1QuobyteVolumeSourceRegistry v1QuobyteVolumeSourceVolume =- V1QuobyteVolumeSource- { v1QuobyteVolumeSourceGroup = Nothing- , v1QuobyteVolumeSourceReadOnly = Nothing- , v1QuobyteVolumeSourceRegistry- , v1QuobyteVolumeSourceTenant = Nothing- , v1QuobyteVolumeSourceUser = Nothing- , v1QuobyteVolumeSourceVolume- }---- ** V1RBDPersistentVolumeSource--- | V1RBDPersistentVolumeSource--- Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.-data V1RBDPersistentVolumeSource = V1RBDPersistentVolumeSource- { v1RBDPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd- , v1RBDPersistentVolumeSourceImage :: !(Text) -- ^ /Required/ "image" - image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDPersistentVolumeSourceKeyring :: !(Maybe Text) -- ^ "keyring" - keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDPersistentVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDPersistentVolumeSourcePool :: !(Maybe Text) -- ^ "pool" - pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"- , v1RBDPersistentVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RBDPersistentVolumeSource-instance A.FromJSON V1RBDPersistentVolumeSource where- parseJSON = A.withObject "V1RBDPersistentVolumeSource" $ \o ->- V1RBDPersistentVolumeSource- <$> (o .:? "fsType")- <*> (o .: "image")- <*> (o .:? "keyring")- <*> (o .: "monitors")- <*> (o .:? "pool")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")- <*> (o .:? "user")---- | ToJSON V1RBDPersistentVolumeSource-instance A.ToJSON V1RBDPersistentVolumeSource where- toJSON V1RBDPersistentVolumeSource {..} =- _omitNulls- [ "fsType" .= v1RBDPersistentVolumeSourceFsType- , "image" .= v1RBDPersistentVolumeSourceImage- , "keyring" .= v1RBDPersistentVolumeSourceKeyring- , "monitors" .= v1RBDPersistentVolumeSourceMonitors- , "pool" .= v1RBDPersistentVolumeSourcePool- , "readOnly" .= v1RBDPersistentVolumeSourceReadOnly- , "secretRef" .= v1RBDPersistentVolumeSourceSecretRef- , "user" .= v1RBDPersistentVolumeSourceUser- ]----- | Construct a value of type 'V1RBDPersistentVolumeSource' (by applying it's required fields, if any)-mkV1RBDPersistentVolumeSource- :: Text -- ^ 'v1RBDPersistentVolumeSourceImage': image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- -> [Text] -- ^ 'v1RBDPersistentVolumeSourceMonitors': monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- -> V1RBDPersistentVolumeSource-mkV1RBDPersistentVolumeSource v1RBDPersistentVolumeSourceImage v1RBDPersistentVolumeSourceMonitors =- V1RBDPersistentVolumeSource- { v1RBDPersistentVolumeSourceFsType = Nothing- , v1RBDPersistentVolumeSourceImage- , v1RBDPersistentVolumeSourceKeyring = Nothing- , v1RBDPersistentVolumeSourceMonitors- , v1RBDPersistentVolumeSourcePool = Nothing- , v1RBDPersistentVolumeSourceReadOnly = Nothing- , v1RBDPersistentVolumeSourceSecretRef = Nothing- , v1RBDPersistentVolumeSourceUser = Nothing- }---- ** V1RBDVolumeSource--- | V1RBDVolumeSource--- Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.-data V1RBDVolumeSource = V1RBDVolumeSource- { v1RBDVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd- , v1RBDVolumeSourceImage :: !(Text) -- ^ /Required/ "image" - image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDVolumeSourceKeyring :: !(Maybe Text) -- ^ "keyring" - keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDVolumeSourcePool :: !(Maybe Text) -- ^ "pool" - pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- , v1RBDVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"- , v1RBDVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RBDVolumeSource-instance A.FromJSON V1RBDVolumeSource where- parseJSON = A.withObject "V1RBDVolumeSource" $ \o ->- V1RBDVolumeSource- <$> (o .:? "fsType")- <*> (o .: "image")- <*> (o .:? "keyring")- <*> (o .: "monitors")- <*> (o .:? "pool")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")- <*> (o .:? "user")---- | ToJSON V1RBDVolumeSource-instance A.ToJSON V1RBDVolumeSource where- toJSON V1RBDVolumeSource {..} =- _omitNulls- [ "fsType" .= v1RBDVolumeSourceFsType- , "image" .= v1RBDVolumeSourceImage- , "keyring" .= v1RBDVolumeSourceKeyring- , "monitors" .= v1RBDVolumeSourceMonitors- , "pool" .= v1RBDVolumeSourcePool- , "readOnly" .= v1RBDVolumeSourceReadOnly- , "secretRef" .= v1RBDVolumeSourceSecretRef- , "user" .= v1RBDVolumeSourceUser- ]----- | Construct a value of type 'V1RBDVolumeSource' (by applying it's required fields, if any)-mkV1RBDVolumeSource- :: Text -- ^ 'v1RBDVolumeSourceImage': image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- -> [Text] -- ^ 'v1RBDVolumeSourceMonitors': monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it- -> V1RBDVolumeSource-mkV1RBDVolumeSource v1RBDVolumeSourceImage v1RBDVolumeSourceMonitors =- V1RBDVolumeSource- { v1RBDVolumeSourceFsType = Nothing- , v1RBDVolumeSourceImage- , v1RBDVolumeSourceKeyring = Nothing- , v1RBDVolumeSourceMonitors- , v1RBDVolumeSourcePool = Nothing- , v1RBDVolumeSourceReadOnly = Nothing- , v1RBDVolumeSourceSecretRef = Nothing- , v1RBDVolumeSourceUser = Nothing- }---- ** V1ReplicaSet--- | V1ReplicaSet--- ReplicaSet ensures that a specified number of pod replicas are running at any given time.-data V1ReplicaSet = V1ReplicaSet- { v1ReplicaSetApiVersion :: !(Maybe Text) -- ^ "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- , v1ReplicaSetKind :: !(Maybe Text) -- ^ "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- , v1ReplicaSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ReplicaSetSpec :: !(Maybe V1ReplicaSetSpec) -- ^ "spec"- , v1ReplicaSetStatus :: !(Maybe V1ReplicaSetStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicaSet-instance A.FromJSON V1ReplicaSet where- parseJSON = A.withObject "V1ReplicaSet" $ \o ->- V1ReplicaSet- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1ReplicaSet-instance A.ToJSON V1ReplicaSet where- toJSON V1ReplicaSet {..} =- _omitNulls- [ "apiVersion" .= v1ReplicaSetApiVersion- , "kind" .= v1ReplicaSetKind- , "metadata" .= v1ReplicaSetMetadata- , "spec" .= v1ReplicaSetSpec- , "status" .= v1ReplicaSetStatus- ]----- | Construct a value of type 'V1ReplicaSet' (by applying it's required fields, if any)-mkV1ReplicaSet- :: V1ReplicaSet-mkV1ReplicaSet =- V1ReplicaSet- { v1ReplicaSetApiVersion = Nothing- , v1ReplicaSetKind = Nothing- , v1ReplicaSetMetadata = Nothing- , v1ReplicaSetSpec = Nothing- , v1ReplicaSetStatus = Nothing- }---- ** V1ReplicaSetCondition--- | V1ReplicaSetCondition--- ReplicaSetCondition describes the state of a replica set at a certain point.-data V1ReplicaSetCondition = V1ReplicaSetCondition- { v1ReplicaSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - The last time the condition transitioned from one status to another.- , v1ReplicaSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.- , v1ReplicaSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.- , v1ReplicaSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1ReplicaSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of replica set condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicaSetCondition-instance A.FromJSON V1ReplicaSetCondition where- parseJSON = A.withObject "V1ReplicaSetCondition" $ \o ->- V1ReplicaSetCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1ReplicaSetCondition-instance A.ToJSON V1ReplicaSetCondition where- toJSON V1ReplicaSetCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1ReplicaSetConditionLastTransitionTime- , "message" .= v1ReplicaSetConditionMessage- , "reason" .= v1ReplicaSetConditionReason- , "status" .= v1ReplicaSetConditionStatus- , "type" .= v1ReplicaSetConditionType- ]----- | Construct a value of type 'V1ReplicaSetCondition' (by applying it's required fields, if any)-mkV1ReplicaSetCondition- :: Text -- ^ 'v1ReplicaSetConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1ReplicaSetConditionType': Type of replica set condition.- -> V1ReplicaSetCondition-mkV1ReplicaSetCondition v1ReplicaSetConditionStatus v1ReplicaSetConditionType =- V1ReplicaSetCondition- { v1ReplicaSetConditionLastTransitionTime = Nothing- , v1ReplicaSetConditionMessage = Nothing- , v1ReplicaSetConditionReason = Nothing- , v1ReplicaSetConditionStatus- , v1ReplicaSetConditionType- }---- ** V1ReplicaSetList--- | V1ReplicaSetList--- ReplicaSetList is a collection of ReplicaSets.-data V1ReplicaSetList = V1ReplicaSetList- { v1ReplicaSetListApiVersion :: !(Maybe Text) -- ^ "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- , v1ReplicaSetListItems :: !([V1ReplicaSet]) -- ^ /Required/ "items" - List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset- , v1ReplicaSetListKind :: !(Maybe Text) -- ^ "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- , v1ReplicaSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicaSetList-instance A.FromJSON V1ReplicaSetList where- parseJSON = A.withObject "V1ReplicaSetList" $ \o ->- V1ReplicaSetList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ReplicaSetList-instance A.ToJSON V1ReplicaSetList where- toJSON V1ReplicaSetList {..} =- _omitNulls- [ "apiVersion" .= v1ReplicaSetListApiVersion- , "items" .= v1ReplicaSetListItems- , "kind" .= v1ReplicaSetListKind- , "metadata" .= v1ReplicaSetListMetadata- ]----- | Construct a value of type 'V1ReplicaSetList' (by applying it's required fields, if any)-mkV1ReplicaSetList- :: [V1ReplicaSet] -- ^ 'v1ReplicaSetListItems': List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset- -> V1ReplicaSetList-mkV1ReplicaSetList v1ReplicaSetListItems =- V1ReplicaSetList- { v1ReplicaSetListApiVersion = Nothing- , v1ReplicaSetListItems- , v1ReplicaSetListKind = Nothing- , v1ReplicaSetListMetadata = Nothing- }---- ** V1ReplicaSetSpec--- | V1ReplicaSetSpec--- ReplicaSetSpec is the specification of a ReplicaSet.-data V1ReplicaSetSpec = V1ReplicaSetSpec- { v1ReplicaSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - 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)- , v1ReplicaSetSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Replicas is the number of desired pods. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset- , v1ReplicaSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"- , v1ReplicaSetSpecTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicaSetSpec-instance A.FromJSON V1ReplicaSetSpec where- parseJSON = A.withObject "V1ReplicaSetSpec" $ \o ->- V1ReplicaSetSpec- <$> (o .:? "minReadySeconds")- <*> (o .:? "replicas")- <*> (o .: "selector")- <*> (o .:? "template")---- | ToJSON V1ReplicaSetSpec-instance A.ToJSON V1ReplicaSetSpec where- toJSON V1ReplicaSetSpec {..} =- _omitNulls- [ "minReadySeconds" .= v1ReplicaSetSpecMinReadySeconds- , "replicas" .= v1ReplicaSetSpecReplicas- , "selector" .= v1ReplicaSetSpecSelector- , "template" .= v1ReplicaSetSpecTemplate- ]----- | Construct a value of type 'V1ReplicaSetSpec' (by applying it's required fields, if any)-mkV1ReplicaSetSpec- :: V1LabelSelector -- ^ 'v1ReplicaSetSpecSelector' - -> V1ReplicaSetSpec-mkV1ReplicaSetSpec v1ReplicaSetSpecSelector =- V1ReplicaSetSpec- { v1ReplicaSetSpecMinReadySeconds = Nothing- , v1ReplicaSetSpecReplicas = Nothing- , v1ReplicaSetSpecSelector- , v1ReplicaSetSpecTemplate = Nothing- }---- ** V1ReplicaSetStatus--- | V1ReplicaSetStatus--- ReplicaSetStatus represents the current status of a ReplicaSet.-data V1ReplicaSetStatus = V1ReplicaSetStatus- { v1ReplicaSetStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - The number of available non-terminating pods (ready for at least minReadySeconds) for this replica set.- , v1ReplicaSetStatusConditions :: !(Maybe [V1ReplicaSetCondition]) -- ^ "conditions" - Represents the latest available observations of a replica set's current state.- , v1ReplicaSetStatusFullyLabeledReplicas :: !(Maybe Int) -- ^ "fullyLabeledReplicas" - The number of non-terminating pods that have labels matching the labels of the pod template of the replicaset.- , v1ReplicaSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - ObservedGeneration reflects the generation of the most recently observed ReplicaSet.- , v1ReplicaSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - The number of non-terminating pods targeted by this ReplicaSet with a Ready Condition.- , v1ReplicaSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - Replicas is the most recently observed number of non-terminating pods. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset- , v1ReplicaSetStatusTerminatingReplicas :: !(Maybe Int) -- ^ "terminatingReplicas" - The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicaSetStatus-instance A.FromJSON V1ReplicaSetStatus where- parseJSON = A.withObject "V1ReplicaSetStatus" $ \o ->- V1ReplicaSetStatus- <$> (o .:? "availableReplicas")- <*> (o .:? "conditions")- <*> (o .:? "fullyLabeledReplicas")- <*> (o .:? "observedGeneration")- <*> (o .:? "readyReplicas")- <*> (o .: "replicas")- <*> (o .:? "terminatingReplicas")---- | ToJSON V1ReplicaSetStatus-instance A.ToJSON V1ReplicaSetStatus where- toJSON V1ReplicaSetStatus {..} =- _omitNulls- [ "availableReplicas" .= v1ReplicaSetStatusAvailableReplicas- , "conditions" .= v1ReplicaSetStatusConditions- , "fullyLabeledReplicas" .= v1ReplicaSetStatusFullyLabeledReplicas- , "observedGeneration" .= v1ReplicaSetStatusObservedGeneration- , "readyReplicas" .= v1ReplicaSetStatusReadyReplicas- , "replicas" .= v1ReplicaSetStatusReplicas- , "terminatingReplicas" .= v1ReplicaSetStatusTerminatingReplicas- ]----- | Construct a value of type 'V1ReplicaSetStatus' (by applying it's required fields, if any)-mkV1ReplicaSetStatus- :: Int -- ^ 'v1ReplicaSetStatusReplicas': Replicas is the most recently observed number of non-terminating pods. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset- -> V1ReplicaSetStatus-mkV1ReplicaSetStatus v1ReplicaSetStatusReplicas =- V1ReplicaSetStatus- { v1ReplicaSetStatusAvailableReplicas = Nothing- , v1ReplicaSetStatusConditions = Nothing- , v1ReplicaSetStatusFullyLabeledReplicas = Nothing- , v1ReplicaSetStatusObservedGeneration = Nothing- , v1ReplicaSetStatusReadyReplicas = Nothing- , v1ReplicaSetStatusReplicas- , v1ReplicaSetStatusTerminatingReplicas = Nothing- }---- ** V1ReplicationController--- | V1ReplicationController--- ReplicationController represents the configuration of a replication controller.-data V1ReplicationController = V1ReplicationController- { v1ReplicationControllerApiVersion :: !(Maybe Text) -- ^ "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- , v1ReplicationControllerKind :: !(Maybe Text) -- ^ "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- , v1ReplicationControllerMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ReplicationControllerSpec :: !(Maybe V1ReplicationControllerSpec) -- ^ "spec"- , v1ReplicationControllerStatus :: !(Maybe V1ReplicationControllerStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicationController-instance A.FromJSON V1ReplicationController where- parseJSON = A.withObject "V1ReplicationController" $ \o ->- V1ReplicationController- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1ReplicationController-instance A.ToJSON V1ReplicationController where- toJSON V1ReplicationController {..} =- _omitNulls- [ "apiVersion" .= v1ReplicationControllerApiVersion- , "kind" .= v1ReplicationControllerKind- , "metadata" .= v1ReplicationControllerMetadata- , "spec" .= v1ReplicationControllerSpec- , "status" .= v1ReplicationControllerStatus- ]----- | Construct a value of type 'V1ReplicationController' (by applying it's required fields, if any)-mkV1ReplicationController- :: V1ReplicationController-mkV1ReplicationController =- V1ReplicationController- { v1ReplicationControllerApiVersion = Nothing- , v1ReplicationControllerKind = Nothing- , v1ReplicationControllerMetadata = Nothing- , v1ReplicationControllerSpec = Nothing- , v1ReplicationControllerStatus = Nothing- }---- ** V1ReplicationControllerCondition--- | V1ReplicationControllerCondition--- ReplicationControllerCondition describes the state of a replication controller at a certain point.-data V1ReplicationControllerCondition = V1ReplicationControllerCondition- { v1ReplicationControllerConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - The last time the condition transitioned from one status to another.- , v1ReplicationControllerConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.- , v1ReplicationControllerConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.- , v1ReplicationControllerConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1ReplicationControllerConditionType :: !(Text) -- ^ /Required/ "type" - Type of replication controller condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicationControllerCondition-instance A.FromJSON V1ReplicationControllerCondition where- parseJSON = A.withObject "V1ReplicationControllerCondition" $ \o ->- V1ReplicationControllerCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1ReplicationControllerCondition-instance A.ToJSON V1ReplicationControllerCondition where- toJSON V1ReplicationControllerCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1ReplicationControllerConditionLastTransitionTime- , "message" .= v1ReplicationControllerConditionMessage- , "reason" .= v1ReplicationControllerConditionReason- , "status" .= v1ReplicationControllerConditionStatus- , "type" .= v1ReplicationControllerConditionType- ]----- | Construct a value of type 'V1ReplicationControllerCondition' (by applying it's required fields, if any)-mkV1ReplicationControllerCondition- :: Text -- ^ 'v1ReplicationControllerConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1ReplicationControllerConditionType': Type of replication controller condition.- -> V1ReplicationControllerCondition-mkV1ReplicationControllerCondition v1ReplicationControllerConditionStatus v1ReplicationControllerConditionType =- V1ReplicationControllerCondition- { v1ReplicationControllerConditionLastTransitionTime = Nothing- , v1ReplicationControllerConditionMessage = Nothing- , v1ReplicationControllerConditionReason = Nothing- , v1ReplicationControllerConditionStatus- , v1ReplicationControllerConditionType- }---- ** V1ReplicationControllerList--- | V1ReplicationControllerList--- ReplicationControllerList is a collection of replication controllers.-data V1ReplicationControllerList = V1ReplicationControllerList- { v1ReplicationControllerListApiVersion :: !(Maybe Text) -- ^ "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- , v1ReplicationControllerListItems :: !([V1ReplicationController]) -- ^ /Required/ "items" - List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller- , v1ReplicationControllerListKind :: !(Maybe Text) -- ^ "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- , v1ReplicationControllerListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicationControllerList-instance A.FromJSON V1ReplicationControllerList where- parseJSON = A.withObject "V1ReplicationControllerList" $ \o ->- V1ReplicationControllerList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ReplicationControllerList-instance A.ToJSON V1ReplicationControllerList where- toJSON V1ReplicationControllerList {..} =- _omitNulls- [ "apiVersion" .= v1ReplicationControllerListApiVersion- , "items" .= v1ReplicationControllerListItems- , "kind" .= v1ReplicationControllerListKind- , "metadata" .= v1ReplicationControllerListMetadata- ]----- | Construct a value of type 'V1ReplicationControllerList' (by applying it's required fields, if any)-mkV1ReplicationControllerList- :: [V1ReplicationController] -- ^ 'v1ReplicationControllerListItems': List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller- -> V1ReplicationControllerList-mkV1ReplicationControllerList v1ReplicationControllerListItems =- V1ReplicationControllerList- { v1ReplicationControllerListApiVersion = Nothing- , v1ReplicationControllerListItems- , v1ReplicationControllerListKind = Nothing- , v1ReplicationControllerListMetadata = Nothing- }---- ** V1ReplicationControllerSpec--- | V1ReplicationControllerSpec--- ReplicationControllerSpec is the specification of a replication controller.-data V1ReplicationControllerSpec = V1ReplicationControllerSpec- { v1ReplicationControllerSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - 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)- , v1ReplicationControllerSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller- , v1ReplicationControllerSpecSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors- , v1ReplicationControllerSpecTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicationControllerSpec-instance A.FromJSON V1ReplicationControllerSpec where- parseJSON = A.withObject "V1ReplicationControllerSpec" $ \o ->- V1ReplicationControllerSpec- <$> (o .:? "minReadySeconds")- <*> (o .:? "replicas")- <*> (o .:? "selector")- <*> (o .:? "template")---- | ToJSON V1ReplicationControllerSpec-instance A.ToJSON V1ReplicationControllerSpec where- toJSON V1ReplicationControllerSpec {..} =- _omitNulls- [ "minReadySeconds" .= v1ReplicationControllerSpecMinReadySeconds- , "replicas" .= v1ReplicationControllerSpecReplicas- , "selector" .= v1ReplicationControllerSpecSelector- , "template" .= v1ReplicationControllerSpecTemplate- ]----- | Construct a value of type 'V1ReplicationControllerSpec' (by applying it's required fields, if any)-mkV1ReplicationControllerSpec- :: V1ReplicationControllerSpec-mkV1ReplicationControllerSpec =- V1ReplicationControllerSpec- { v1ReplicationControllerSpecMinReadySeconds = Nothing- , v1ReplicationControllerSpecReplicas = Nothing- , v1ReplicationControllerSpecSelector = Nothing- , v1ReplicationControllerSpecTemplate = Nothing- }---- ** V1ReplicationControllerStatus--- | V1ReplicationControllerStatus--- ReplicationControllerStatus represents the current status of a replication controller.-data V1ReplicationControllerStatus = V1ReplicationControllerStatus- { v1ReplicationControllerStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - The number of available replicas (ready for at least minReadySeconds) for this replication controller.- , v1ReplicationControllerStatusConditions :: !(Maybe [V1ReplicationControllerCondition]) -- ^ "conditions" - Represents the latest available observations of a replication controller's current state.- , v1ReplicationControllerStatusFullyLabeledReplicas :: !(Maybe Int) -- ^ "fullyLabeledReplicas" - The number of pods that have labels matching the labels of the pod template of the replication controller.- , v1ReplicationControllerStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - ObservedGeneration reflects the generation of the most recently observed replication controller.- , v1ReplicationControllerStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - The number of ready replicas for this replication controller.- , v1ReplicationControllerStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ReplicationControllerStatus-instance A.FromJSON V1ReplicationControllerStatus where- parseJSON = A.withObject "V1ReplicationControllerStatus" $ \o ->- V1ReplicationControllerStatus- <$> (o .:? "availableReplicas")- <*> (o .:? "conditions")- <*> (o .:? "fullyLabeledReplicas")- <*> (o .:? "observedGeneration")- <*> (o .:? "readyReplicas")- <*> (o .: "replicas")---- | ToJSON V1ReplicationControllerStatus-instance A.ToJSON V1ReplicationControllerStatus where- toJSON V1ReplicationControllerStatus {..} =- _omitNulls- [ "availableReplicas" .= v1ReplicationControllerStatusAvailableReplicas- , "conditions" .= v1ReplicationControllerStatusConditions- , "fullyLabeledReplicas" .= v1ReplicationControllerStatusFullyLabeledReplicas- , "observedGeneration" .= v1ReplicationControllerStatusObservedGeneration- , "readyReplicas" .= v1ReplicationControllerStatusReadyReplicas- , "replicas" .= v1ReplicationControllerStatusReplicas- ]----- | Construct a value of type 'V1ReplicationControllerStatus' (by applying it's required fields, if any)-mkV1ReplicationControllerStatus- :: Int -- ^ 'v1ReplicationControllerStatusReplicas': Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller- -> V1ReplicationControllerStatus-mkV1ReplicationControllerStatus v1ReplicationControllerStatusReplicas =- V1ReplicationControllerStatus- { v1ReplicationControllerStatusAvailableReplicas = Nothing- , v1ReplicationControllerStatusConditions = Nothing- , v1ReplicationControllerStatusFullyLabeledReplicas = Nothing- , v1ReplicationControllerStatusObservedGeneration = Nothing- , v1ReplicationControllerStatusReadyReplicas = Nothing- , v1ReplicationControllerStatusReplicas- }---- ** V1ResourceAttributes--- | V1ResourceAttributes--- ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface-data V1ResourceAttributes = V1ResourceAttributes- { v1ResourceAttributesFieldSelector :: !(Maybe V1FieldSelectorAttributes) -- ^ "fieldSelector"- , v1ResourceAttributesGroup :: !(Maybe Text) -- ^ "group" - Group is the API Group of the Resource. \"*\" means all.- , v1ResourceAttributesLabelSelector :: !(Maybe V1LabelSelectorAttributes) -- ^ "labelSelector"- , v1ResourceAttributesName :: !(Maybe Text) -- ^ "name" - Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.- , v1ResourceAttributesNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview- , v1ResourceAttributesResource :: !(Maybe Text) -- ^ "resource" - Resource is one of the existing resource types. \"*\" means all.- , v1ResourceAttributesSubresource :: !(Maybe Text) -- ^ "subresource" - Subresource is one of the existing resource types. \"\" means none.- , v1ResourceAttributesVerb :: !(Maybe Text) -- ^ "verb" - Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.- , v1ResourceAttributesVersion :: !(Maybe Text) -- ^ "version" - Version is the API Version of the Resource. \"*\" means all.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceAttributes-instance A.FromJSON V1ResourceAttributes where- parseJSON = A.withObject "V1ResourceAttributes" $ \o ->- V1ResourceAttributes- <$> (o .:? "fieldSelector")- <*> (o .:? "group")- <*> (o .:? "labelSelector")- <*> (o .:? "name")- <*> (o .:? "namespace")- <*> (o .:? "resource")- <*> (o .:? "subresource")- <*> (o .:? "verb")- <*> (o .:? "version")---- | ToJSON V1ResourceAttributes-instance A.ToJSON V1ResourceAttributes where- toJSON V1ResourceAttributes {..} =- _omitNulls- [ "fieldSelector" .= v1ResourceAttributesFieldSelector- , "group" .= v1ResourceAttributesGroup- , "labelSelector" .= v1ResourceAttributesLabelSelector- , "name" .= v1ResourceAttributesName- , "namespace" .= v1ResourceAttributesNamespace- , "resource" .= v1ResourceAttributesResource- , "subresource" .= v1ResourceAttributesSubresource- , "verb" .= v1ResourceAttributesVerb- , "version" .= v1ResourceAttributesVersion- ]----- | Construct a value of type 'V1ResourceAttributes' (by applying it's required fields, if any)-mkV1ResourceAttributes- :: V1ResourceAttributes-mkV1ResourceAttributes =- V1ResourceAttributes- { v1ResourceAttributesFieldSelector = Nothing- , v1ResourceAttributesGroup = Nothing- , v1ResourceAttributesLabelSelector = Nothing- , v1ResourceAttributesName = Nothing- , v1ResourceAttributesNamespace = Nothing- , v1ResourceAttributesResource = Nothing- , v1ResourceAttributesSubresource = Nothing- , v1ResourceAttributesVerb = Nothing- , v1ResourceAttributesVersion = Nothing- }---- ** V1ResourceClaimConsumerReference--- | V1ResourceClaimConsumerReference--- 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.-data V1ResourceClaimConsumerReference = V1ResourceClaimConsumerReference- { v1ResourceClaimConsumerReferenceApiGroup :: !(Maybe Text) -- ^ "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.- , v1ResourceClaimConsumerReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced.- , v1ResourceClaimConsumerReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the type of resource being referenced, for example \"pods\".- , v1ResourceClaimConsumerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID identifies exactly one incarnation of the resource.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceClaimConsumerReference-instance A.FromJSON V1ResourceClaimConsumerReference where- parseJSON = A.withObject "V1ResourceClaimConsumerReference" $ \o ->- V1ResourceClaimConsumerReference- <$> (o .:? "apiGroup")- <*> (o .: "name")- <*> (o .: "resource")- <*> (o .: "uid")---- | ToJSON V1ResourceClaimConsumerReference-instance A.ToJSON V1ResourceClaimConsumerReference where- toJSON V1ResourceClaimConsumerReference {..} =- _omitNulls- [ "apiGroup" .= v1ResourceClaimConsumerReferenceApiGroup- , "name" .= v1ResourceClaimConsumerReferenceName- , "resource" .= v1ResourceClaimConsumerReferenceResource- , "uid" .= v1ResourceClaimConsumerReferenceUid- ]----- | Construct a value of type 'V1ResourceClaimConsumerReference' (by applying it's required fields, if any)-mkV1ResourceClaimConsumerReference- :: Text -- ^ 'v1ResourceClaimConsumerReferenceName': Name is the name of resource being referenced.- -> Text -- ^ 'v1ResourceClaimConsumerReferenceResource': Resource is the type of resource being referenced, for example \"pods\".- -> Text -- ^ 'v1ResourceClaimConsumerReferenceUid': UID identifies exactly one incarnation of the resource.- -> V1ResourceClaimConsumerReference-mkV1ResourceClaimConsumerReference v1ResourceClaimConsumerReferenceName v1ResourceClaimConsumerReferenceResource v1ResourceClaimConsumerReferenceUid =- V1ResourceClaimConsumerReference- { v1ResourceClaimConsumerReferenceApiGroup = Nothing- , v1ResourceClaimConsumerReferenceName- , v1ResourceClaimConsumerReferenceResource- , v1ResourceClaimConsumerReferenceUid- }---- ** V1ResourceClaimList--- | V1ResourceClaimList--- ResourceClaimList is a collection of claims.-data V1ResourceClaimList = V1ResourceClaimList- { v1ResourceClaimListApiVersion :: !(Maybe Text) -- ^ "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- , v1ResourceClaimListItems :: !([ResourceV1ResourceClaim]) -- ^ /Required/ "items" - Items is the list of resource claims.- , v1ResourceClaimListKind :: !(Maybe Text) -- ^ "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- , v1ResourceClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceClaimList-instance A.FromJSON V1ResourceClaimList where- parseJSON = A.withObject "V1ResourceClaimList" $ \o ->- V1ResourceClaimList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ResourceClaimList-instance A.ToJSON V1ResourceClaimList where- toJSON V1ResourceClaimList {..} =- _omitNulls- [ "apiVersion" .= v1ResourceClaimListApiVersion- , "items" .= v1ResourceClaimListItems- , "kind" .= v1ResourceClaimListKind- , "metadata" .= v1ResourceClaimListMetadata- ]----- | Construct a value of type 'V1ResourceClaimList' (by applying it's required fields, if any)-mkV1ResourceClaimList- :: [ResourceV1ResourceClaim] -- ^ 'v1ResourceClaimListItems': Items is the list of resource claims.- -> V1ResourceClaimList-mkV1ResourceClaimList v1ResourceClaimListItems =- V1ResourceClaimList- { v1ResourceClaimListApiVersion = Nothing- , v1ResourceClaimListItems- , v1ResourceClaimListKind = Nothing- , v1ResourceClaimListMetadata = Nothing- }---- ** V1ResourceClaimSpec--- | V1ResourceClaimSpec--- ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.-data V1ResourceClaimSpec = V1ResourceClaimSpec- { v1ResourceClaimSpecDevices :: !(Maybe V1DeviceClaim) -- ^ "devices"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceClaimSpec-instance A.FromJSON V1ResourceClaimSpec where- parseJSON = A.withObject "V1ResourceClaimSpec" $ \o ->- V1ResourceClaimSpec- <$> (o .:? "devices")---- | ToJSON V1ResourceClaimSpec-instance A.ToJSON V1ResourceClaimSpec where- toJSON V1ResourceClaimSpec {..} =- _omitNulls- [ "devices" .= v1ResourceClaimSpecDevices- ]----- | Construct a value of type 'V1ResourceClaimSpec' (by applying it's required fields, if any)-mkV1ResourceClaimSpec- :: V1ResourceClaimSpec-mkV1ResourceClaimSpec =- V1ResourceClaimSpec- { v1ResourceClaimSpecDevices = Nothing- }---- ** V1ResourceClaimStatus--- | V1ResourceClaimStatus--- ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.-data V1ResourceClaimStatus = V1ResourceClaimStatus- { v1ResourceClaimStatusAllocation :: !(Maybe V1AllocationResult) -- ^ "allocation"- , v1ResourceClaimStatusDevices :: !(Maybe [V1AllocatedDeviceStatus]) -- ^ "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.- , v1ResourceClaimStatusReservedFor :: !(Maybe [V1ResourceClaimConsumerReference]) -- ^ "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 256 such reservations. This may get increased in the future, but not reduced.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceClaimStatus-instance A.FromJSON V1ResourceClaimStatus where- parseJSON = A.withObject "V1ResourceClaimStatus" $ \o ->- V1ResourceClaimStatus- <$> (o .:? "allocation")- <*> (o .:? "devices")- <*> (o .:? "reservedFor")---- | ToJSON V1ResourceClaimStatus-instance A.ToJSON V1ResourceClaimStatus where- toJSON V1ResourceClaimStatus {..} =- _omitNulls- [ "allocation" .= v1ResourceClaimStatusAllocation- , "devices" .= v1ResourceClaimStatusDevices- , "reservedFor" .= v1ResourceClaimStatusReservedFor- ]----- | Construct a value of type 'V1ResourceClaimStatus' (by applying it's required fields, if any)-mkV1ResourceClaimStatus- :: V1ResourceClaimStatus-mkV1ResourceClaimStatus =- V1ResourceClaimStatus- { v1ResourceClaimStatusAllocation = Nothing- , v1ResourceClaimStatusDevices = Nothing- , v1ResourceClaimStatusReservedFor = Nothing- }---- ** V1ResourceClaimTemplate--- | V1ResourceClaimTemplate--- ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.-data V1ResourceClaimTemplate = V1ResourceClaimTemplate- { v1ResourceClaimTemplateApiVersion :: !(Maybe Text) -- ^ "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- , v1ResourceClaimTemplateKind :: !(Maybe Text) -- ^ "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- , v1ResourceClaimTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ResourceClaimTemplateSpec :: !(V1ResourceClaimTemplateSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceClaimTemplate-instance A.FromJSON V1ResourceClaimTemplate where- parseJSON = A.withObject "V1ResourceClaimTemplate" $ \o ->- V1ResourceClaimTemplate- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1ResourceClaimTemplate-instance A.ToJSON V1ResourceClaimTemplate where- toJSON V1ResourceClaimTemplate {..} =- _omitNulls- [ "apiVersion" .= v1ResourceClaimTemplateApiVersion- , "kind" .= v1ResourceClaimTemplateKind- , "metadata" .= v1ResourceClaimTemplateMetadata- , "spec" .= v1ResourceClaimTemplateSpec- ]----- | Construct a value of type 'V1ResourceClaimTemplate' (by applying it's required fields, if any)-mkV1ResourceClaimTemplate- :: V1ResourceClaimTemplateSpec -- ^ 'v1ResourceClaimTemplateSpec' - -> V1ResourceClaimTemplate-mkV1ResourceClaimTemplate v1ResourceClaimTemplateSpec =- V1ResourceClaimTemplate- { v1ResourceClaimTemplateApiVersion = Nothing- , v1ResourceClaimTemplateKind = Nothing- , v1ResourceClaimTemplateMetadata = Nothing- , v1ResourceClaimTemplateSpec- }---- ** V1ResourceClaimTemplateList--- | V1ResourceClaimTemplateList--- ResourceClaimTemplateList is a collection of claim templates.-data V1ResourceClaimTemplateList = V1ResourceClaimTemplateList- { v1ResourceClaimTemplateListApiVersion :: !(Maybe Text) -- ^ "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- , v1ResourceClaimTemplateListItems :: !([V1ResourceClaimTemplate]) -- ^ /Required/ "items" - Items is the list of resource claim templates.- , v1ResourceClaimTemplateListKind :: !(Maybe Text) -- ^ "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- , v1ResourceClaimTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceClaimTemplateList-instance A.FromJSON V1ResourceClaimTemplateList where- parseJSON = A.withObject "V1ResourceClaimTemplateList" $ \o ->- V1ResourceClaimTemplateList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ResourceClaimTemplateList-instance A.ToJSON V1ResourceClaimTemplateList where- toJSON V1ResourceClaimTemplateList {..} =- _omitNulls- [ "apiVersion" .= v1ResourceClaimTemplateListApiVersion- , "items" .= v1ResourceClaimTemplateListItems- , "kind" .= v1ResourceClaimTemplateListKind- , "metadata" .= v1ResourceClaimTemplateListMetadata- ]----- | Construct a value of type 'V1ResourceClaimTemplateList' (by applying it's required fields, if any)-mkV1ResourceClaimTemplateList- :: [V1ResourceClaimTemplate] -- ^ 'v1ResourceClaimTemplateListItems': Items is the list of resource claim templates.- -> V1ResourceClaimTemplateList-mkV1ResourceClaimTemplateList v1ResourceClaimTemplateListItems =- V1ResourceClaimTemplateList- { v1ResourceClaimTemplateListApiVersion = Nothing- , v1ResourceClaimTemplateListItems- , v1ResourceClaimTemplateListKind = Nothing- , v1ResourceClaimTemplateListMetadata = Nothing- }---- ** V1ResourceClaimTemplateSpec--- | V1ResourceClaimTemplateSpec--- ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.-data V1ResourceClaimTemplateSpec = V1ResourceClaimTemplateSpec- { v1ResourceClaimTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ResourceClaimTemplateSpecSpec :: !(V1ResourceClaimSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceClaimTemplateSpec-instance A.FromJSON V1ResourceClaimTemplateSpec where- parseJSON = A.withObject "V1ResourceClaimTemplateSpec" $ \o ->- V1ResourceClaimTemplateSpec- <$> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1ResourceClaimTemplateSpec-instance A.ToJSON V1ResourceClaimTemplateSpec where- toJSON V1ResourceClaimTemplateSpec {..} =- _omitNulls- [ "metadata" .= v1ResourceClaimTemplateSpecMetadata- , "spec" .= v1ResourceClaimTemplateSpecSpec- ]----- | Construct a value of type 'V1ResourceClaimTemplateSpec' (by applying it's required fields, if any)-mkV1ResourceClaimTemplateSpec- :: V1ResourceClaimSpec -- ^ 'v1ResourceClaimTemplateSpecSpec' - -> V1ResourceClaimTemplateSpec-mkV1ResourceClaimTemplateSpec v1ResourceClaimTemplateSpecSpec =- V1ResourceClaimTemplateSpec- { v1ResourceClaimTemplateSpecMetadata = Nothing- , v1ResourceClaimTemplateSpecSpec- }---- ** V1ResourceFieldSelector--- | V1ResourceFieldSelector--- ResourceFieldSelector represents container resources (cpu, memory) and their output format-data V1ResourceFieldSelector = V1ResourceFieldSelector- { v1ResourceFieldSelectorContainerName :: !(Maybe Text) -- ^ "containerName" - Container name: required for volumes, optional for env vars- , v1ResourceFieldSelectorDivisor :: !(Maybe Quantity) -- ^ "divisor"- , v1ResourceFieldSelectorResource :: !(Text) -- ^ /Required/ "resource" - Required: resource to select- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceFieldSelector-instance A.FromJSON V1ResourceFieldSelector where- parseJSON = A.withObject "V1ResourceFieldSelector" $ \o ->- V1ResourceFieldSelector- <$> (o .:? "containerName")- <*> (o .:? "divisor")- <*> (o .: "resource")---- | ToJSON V1ResourceFieldSelector-instance A.ToJSON V1ResourceFieldSelector where- toJSON V1ResourceFieldSelector {..} =- _omitNulls- [ "containerName" .= v1ResourceFieldSelectorContainerName- , "divisor" .= v1ResourceFieldSelectorDivisor- , "resource" .= v1ResourceFieldSelectorResource- ]----- | Construct a value of type 'V1ResourceFieldSelector' (by applying it's required fields, if any)-mkV1ResourceFieldSelector- :: Text -- ^ 'v1ResourceFieldSelectorResource': Required: resource to select- -> V1ResourceFieldSelector-mkV1ResourceFieldSelector v1ResourceFieldSelectorResource =- V1ResourceFieldSelector- { v1ResourceFieldSelectorContainerName = Nothing- , v1ResourceFieldSelectorDivisor = Nothing- , v1ResourceFieldSelectorResource- }---- ** V1ResourceHealth--- | V1ResourceHealth--- 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.-data V1ResourceHealth = V1ResourceHealth- { v1ResourceHealthHealth :: !(Maybe Text) -- ^ "health" - Health of the resource. can be one of: - Healthy: operates as normal - Unhealthy: reported unhealthy. We consider this a temporary health issue since we do not have a mechanism today to distinguish temporary and permanent issues. - Unknown: The status cannot be determined. For example, Device Plugin got unregistered and hasn't been re-registered since. In future we may want to introduce the PermanentlyUnhealthy Status.- , v1ResourceHealthResourceId :: !(Text) -- ^ /Required/ "resourceID" - ResourceID is the unique identifier of the resource. See the ResourceID type for more information.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceHealth-instance A.FromJSON V1ResourceHealth where- parseJSON = A.withObject "V1ResourceHealth" $ \o ->- V1ResourceHealth- <$> (o .:? "health")- <*> (o .: "resourceID")---- | ToJSON V1ResourceHealth-instance A.ToJSON V1ResourceHealth where- toJSON V1ResourceHealth {..} =- _omitNulls- [ "health" .= v1ResourceHealthHealth- , "resourceID" .= v1ResourceHealthResourceId- ]----- | Construct a value of type 'V1ResourceHealth' (by applying it's required fields, if any)-mkV1ResourceHealth- :: Text -- ^ 'v1ResourceHealthResourceId': ResourceID is the unique identifier of the resource. See the ResourceID type for more information.- -> V1ResourceHealth-mkV1ResourceHealth v1ResourceHealthResourceId =- V1ResourceHealth- { v1ResourceHealthHealth = Nothing- , v1ResourceHealthResourceId- }---- ** V1ResourcePolicyRule--- | V1ResourcePolicyRule--- ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.-data V1ResourcePolicyRule = V1ResourcePolicyRule- { v1ResourcePolicyRuleApiGroups :: !([Text]) -- ^ /Required/ "apiGroups" - `apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.- , v1ResourcePolicyRuleClusterScope :: !(Maybe Bool) -- ^ "clusterScope" - `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.- , v1ResourcePolicyRuleNamespaces :: !(Maybe [Text]) -- ^ "namespaces" - `namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \"*\". Note that \"*\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.- , v1ResourcePolicyRuleResources :: !([Text]) -- ^ /Required/ "resources" - `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.- , v1ResourcePolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - `verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourcePolicyRule-instance A.FromJSON V1ResourcePolicyRule where- parseJSON = A.withObject "V1ResourcePolicyRule" $ \o ->- V1ResourcePolicyRule- <$> (o .: "apiGroups")- <*> (o .:? "clusterScope")- <*> (o .:? "namespaces")- <*> (o .: "resources")- <*> (o .: "verbs")---- | ToJSON V1ResourcePolicyRule-instance A.ToJSON V1ResourcePolicyRule where- toJSON V1ResourcePolicyRule {..} =- _omitNulls- [ "apiGroups" .= v1ResourcePolicyRuleApiGroups- , "clusterScope" .= v1ResourcePolicyRuleClusterScope- , "namespaces" .= v1ResourcePolicyRuleNamespaces- , "resources" .= v1ResourcePolicyRuleResources- , "verbs" .= v1ResourcePolicyRuleVerbs- ]----- | Construct a value of type 'V1ResourcePolicyRule' (by applying it's required fields, if any)-mkV1ResourcePolicyRule- :: [Text] -- ^ 'v1ResourcePolicyRuleApiGroups': `apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.- -> [Text] -- ^ 'v1ResourcePolicyRuleResources': `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.- -> [Text] -- ^ 'v1ResourcePolicyRuleVerbs': `verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.- -> V1ResourcePolicyRule-mkV1ResourcePolicyRule v1ResourcePolicyRuleApiGroups v1ResourcePolicyRuleResources v1ResourcePolicyRuleVerbs =- V1ResourcePolicyRule- { v1ResourcePolicyRuleApiGroups- , v1ResourcePolicyRuleClusterScope = Nothing- , v1ResourcePolicyRuleNamespaces = Nothing- , v1ResourcePolicyRuleResources- , v1ResourcePolicyRuleVerbs- }---- ** V1ResourcePool--- | V1ResourcePool--- ResourcePool describes the pool that ResourceSlices belong to.-data V1ResourcePool = V1ResourcePool- { v1ResourcePoolGeneration :: !(Integer) -- ^ /Required/ "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.- , v1ResourcePoolName :: !(Text) -- ^ /Required/ "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.- , v1ResourcePoolResourceSliceCount :: !(Integer) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourcePool-instance A.FromJSON V1ResourcePool where- parseJSON = A.withObject "V1ResourcePool" $ \o ->- V1ResourcePool- <$> (o .: "generation")- <*> (o .: "name")- <*> (o .: "resourceSliceCount")---- | ToJSON V1ResourcePool-instance A.ToJSON V1ResourcePool where- toJSON V1ResourcePool {..} =- _omitNulls- [ "generation" .= v1ResourcePoolGeneration- , "name" .= v1ResourcePoolName- , "resourceSliceCount" .= v1ResourcePoolResourceSliceCount- ]----- | Construct a value of type 'V1ResourcePool' (by applying it's required fields, if any)-mkV1ResourcePool- :: Integer -- ^ 'v1ResourcePoolGeneration': 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.- -> Text -- ^ 'v1ResourcePoolName': 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.- -> Integer -- ^ 'v1ResourcePoolResourceSliceCount': 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.- -> V1ResourcePool-mkV1ResourcePool v1ResourcePoolGeneration v1ResourcePoolName v1ResourcePoolResourceSliceCount =- V1ResourcePool- { v1ResourcePoolGeneration- , v1ResourcePoolName- , v1ResourcePoolResourceSliceCount- }---- ** V1ResourceQuota--- | V1ResourceQuota--- ResourceQuota sets aggregate quota restrictions enforced per namespace-data V1ResourceQuota = V1ResourceQuota- { v1ResourceQuotaApiVersion :: !(Maybe Text) -- ^ "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- , v1ResourceQuotaKind :: !(Maybe Text) -- ^ "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- , v1ResourceQuotaMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ResourceQuotaSpec :: !(Maybe V1ResourceQuotaSpec) -- ^ "spec"- , v1ResourceQuotaStatus :: !(Maybe V1ResourceQuotaStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceQuota-instance A.FromJSON V1ResourceQuota where- parseJSON = A.withObject "V1ResourceQuota" $ \o ->- V1ResourceQuota- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1ResourceQuota-instance A.ToJSON V1ResourceQuota where- toJSON V1ResourceQuota {..} =- _omitNulls- [ "apiVersion" .= v1ResourceQuotaApiVersion- , "kind" .= v1ResourceQuotaKind- , "metadata" .= v1ResourceQuotaMetadata- , "spec" .= v1ResourceQuotaSpec- , "status" .= v1ResourceQuotaStatus- ]----- | Construct a value of type 'V1ResourceQuota' (by applying it's required fields, if any)-mkV1ResourceQuota- :: V1ResourceQuota-mkV1ResourceQuota =- V1ResourceQuota- { v1ResourceQuotaApiVersion = Nothing- , v1ResourceQuotaKind = Nothing- , v1ResourceQuotaMetadata = Nothing- , v1ResourceQuotaSpec = Nothing- , v1ResourceQuotaStatus = Nothing- }---- ** V1ResourceQuotaList--- | V1ResourceQuotaList--- ResourceQuotaList is a list of ResourceQuota items.-data V1ResourceQuotaList = V1ResourceQuotaList- { v1ResourceQuotaListApiVersion :: !(Maybe Text) -- ^ "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- , v1ResourceQuotaListItems :: !([V1ResourceQuota]) -- ^ /Required/ "items" - Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/- , v1ResourceQuotaListKind :: !(Maybe Text) -- ^ "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- , v1ResourceQuotaListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceQuotaList-instance A.FromJSON V1ResourceQuotaList where- parseJSON = A.withObject "V1ResourceQuotaList" $ \o ->- V1ResourceQuotaList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ResourceQuotaList-instance A.ToJSON V1ResourceQuotaList where- toJSON V1ResourceQuotaList {..} =- _omitNulls- [ "apiVersion" .= v1ResourceQuotaListApiVersion- , "items" .= v1ResourceQuotaListItems- , "kind" .= v1ResourceQuotaListKind- , "metadata" .= v1ResourceQuotaListMetadata- ]----- | Construct a value of type 'V1ResourceQuotaList' (by applying it's required fields, if any)-mkV1ResourceQuotaList- :: [V1ResourceQuota] -- ^ 'v1ResourceQuotaListItems': Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/- -> V1ResourceQuotaList-mkV1ResourceQuotaList v1ResourceQuotaListItems =- V1ResourceQuotaList- { v1ResourceQuotaListApiVersion = Nothing- , v1ResourceQuotaListItems- , v1ResourceQuotaListKind = Nothing- , v1ResourceQuotaListMetadata = Nothing- }---- ** V1ResourceQuotaSpec--- | V1ResourceQuotaSpec--- ResourceQuotaSpec defines the desired hard limits to enforce for Quota.-data V1ResourceQuotaSpec = V1ResourceQuotaSpec- { v1ResourceQuotaSpecHard :: !(Maybe (Map.Map String Quantity)) -- ^ "hard" - hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/- , v1ResourceQuotaSpecScopeSelector :: !(Maybe V1ScopeSelector) -- ^ "scopeSelector"- , v1ResourceQuotaSpecScopes :: !(Maybe [Text]) -- ^ "scopes" - A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceQuotaSpec-instance A.FromJSON V1ResourceQuotaSpec where- parseJSON = A.withObject "V1ResourceQuotaSpec" $ \o ->- V1ResourceQuotaSpec- <$> (o .:? "hard")- <*> (o .:? "scopeSelector")- <*> (o .:? "scopes")---- | ToJSON V1ResourceQuotaSpec-instance A.ToJSON V1ResourceQuotaSpec where- toJSON V1ResourceQuotaSpec {..} =- _omitNulls- [ "hard" .= v1ResourceQuotaSpecHard- , "scopeSelector" .= v1ResourceQuotaSpecScopeSelector- , "scopes" .= v1ResourceQuotaSpecScopes- ]----- | Construct a value of type 'V1ResourceQuotaSpec' (by applying it's required fields, if any)-mkV1ResourceQuotaSpec- :: V1ResourceQuotaSpec-mkV1ResourceQuotaSpec =- V1ResourceQuotaSpec- { v1ResourceQuotaSpecHard = Nothing- , v1ResourceQuotaSpecScopeSelector = Nothing- , v1ResourceQuotaSpecScopes = Nothing- }---- ** V1ResourceQuotaStatus--- | V1ResourceQuotaStatus--- ResourceQuotaStatus defines the enforced hard limits and observed use.-data V1ResourceQuotaStatus = V1ResourceQuotaStatus- { v1ResourceQuotaStatusHard :: !(Maybe (Map.Map String Quantity)) -- ^ "hard" - Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/- , v1ResourceQuotaStatusUsed :: !(Maybe (Map.Map String Quantity)) -- ^ "used" - Used is the current observed total usage of the resource in the namespace.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceQuotaStatus-instance A.FromJSON V1ResourceQuotaStatus where- parseJSON = A.withObject "V1ResourceQuotaStatus" $ \o ->- V1ResourceQuotaStatus- <$> (o .:? "hard")- <*> (o .:? "used")---- | ToJSON V1ResourceQuotaStatus-instance A.ToJSON V1ResourceQuotaStatus where- toJSON V1ResourceQuotaStatus {..} =- _omitNulls- [ "hard" .= v1ResourceQuotaStatusHard- , "used" .= v1ResourceQuotaStatusUsed- ]----- | Construct a value of type 'V1ResourceQuotaStatus' (by applying it's required fields, if any)-mkV1ResourceQuotaStatus- :: V1ResourceQuotaStatus-mkV1ResourceQuotaStatus =- V1ResourceQuotaStatus- { v1ResourceQuotaStatusHard = Nothing- , v1ResourceQuotaStatusUsed = Nothing- }---- ** V1ResourceRequirements--- | V1ResourceRequirements--- ResourceRequirements describes the compute resource requirements.-data V1ResourceRequirements = V1ResourceRequirements- { v1ResourceRequirementsClaims :: !(Maybe [CoreV1ResourceClaim]) -- ^ "claims" - Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.- , v1ResourceRequirementsLimits :: !(Maybe (Map.Map String Quantity)) -- ^ "limits" - Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/- , v1ResourceRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceRequirements-instance A.FromJSON V1ResourceRequirements where- parseJSON = A.withObject "V1ResourceRequirements" $ \o ->- V1ResourceRequirements- <$> (o .:? "claims")- <*> (o .:? "limits")- <*> (o .:? "requests")---- | ToJSON V1ResourceRequirements-instance A.ToJSON V1ResourceRequirements where- toJSON V1ResourceRequirements {..} =- _omitNulls- [ "claims" .= v1ResourceRequirementsClaims- , "limits" .= v1ResourceRequirementsLimits- , "requests" .= v1ResourceRequirementsRequests- ]----- | Construct a value of type 'V1ResourceRequirements' (by applying it's required fields, if any)-mkV1ResourceRequirements- :: V1ResourceRequirements-mkV1ResourceRequirements =- V1ResourceRequirements- { v1ResourceRequirementsClaims = Nothing- , v1ResourceRequirementsLimits = Nothing- , v1ResourceRequirementsRequests = Nothing- }---- ** V1ResourceRule--- | V1ResourceRule--- ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.-data V1ResourceRule = V1ResourceRule- { v1ResourceRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.- , v1ResourceRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.- , v1ResourceRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups. \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.- , v1ResourceRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceRule-instance A.FromJSON V1ResourceRule where- parseJSON = A.withObject "V1ResourceRule" $ \o ->- V1ResourceRule- <$> (o .:? "apiGroups")- <*> (o .:? "resourceNames")- <*> (o .:? "resources")- <*> (o .: "verbs")---- | ToJSON V1ResourceRule-instance A.ToJSON V1ResourceRule where- toJSON V1ResourceRule {..} =- _omitNulls- [ "apiGroups" .= v1ResourceRuleApiGroups- , "resourceNames" .= v1ResourceRuleResourceNames- , "resources" .= v1ResourceRuleResources- , "verbs" .= v1ResourceRuleVerbs- ]----- | Construct a value of type 'V1ResourceRule' (by applying it's required fields, if any)-mkV1ResourceRule- :: [Text] -- ^ 'v1ResourceRuleVerbs': Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.- -> V1ResourceRule-mkV1ResourceRule v1ResourceRuleVerbs =- V1ResourceRule- { v1ResourceRuleApiGroups = Nothing- , v1ResourceRuleResourceNames = Nothing- , v1ResourceRuleResources = Nothing- , v1ResourceRuleVerbs- }---- ** V1ResourceSlice--- | V1ResourceSlice--- 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.-data V1ResourceSlice = V1ResourceSlice- { v1ResourceSliceApiVersion :: !(Maybe Text) -- ^ "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- , v1ResourceSliceKind :: !(Maybe Text) -- ^ "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- , v1ResourceSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ResourceSliceSpec :: !(V1ResourceSliceSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceSlice-instance A.FromJSON V1ResourceSlice where- parseJSON = A.withObject "V1ResourceSlice" $ \o ->- V1ResourceSlice- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1ResourceSlice-instance A.ToJSON V1ResourceSlice where- toJSON V1ResourceSlice {..} =- _omitNulls- [ "apiVersion" .= v1ResourceSliceApiVersion- , "kind" .= v1ResourceSliceKind- , "metadata" .= v1ResourceSliceMetadata- , "spec" .= v1ResourceSliceSpec- ]----- | Construct a value of type 'V1ResourceSlice' (by applying it's required fields, if any)-mkV1ResourceSlice- :: V1ResourceSliceSpec -- ^ 'v1ResourceSliceSpec' - -> V1ResourceSlice-mkV1ResourceSlice v1ResourceSliceSpec =- V1ResourceSlice- { v1ResourceSliceApiVersion = Nothing- , v1ResourceSliceKind = Nothing- , v1ResourceSliceMetadata = Nothing- , v1ResourceSliceSpec- }---- ** V1ResourceSliceList--- | V1ResourceSliceList--- ResourceSliceList is a collection of ResourceSlices.-data V1ResourceSliceList = V1ResourceSliceList- { v1ResourceSliceListApiVersion :: !(Maybe Text) -- ^ "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- , v1ResourceSliceListItems :: !([V1ResourceSlice]) -- ^ /Required/ "items" - Items is the list of resource ResourceSlices.- , v1ResourceSliceListKind :: !(Maybe Text) -- ^ "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- , v1ResourceSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceSliceList-instance A.FromJSON V1ResourceSliceList where- parseJSON = A.withObject "V1ResourceSliceList" $ \o ->- V1ResourceSliceList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ResourceSliceList-instance A.ToJSON V1ResourceSliceList where- toJSON V1ResourceSliceList {..} =- _omitNulls- [ "apiVersion" .= v1ResourceSliceListApiVersion- , "items" .= v1ResourceSliceListItems- , "kind" .= v1ResourceSliceListKind- , "metadata" .= v1ResourceSliceListMetadata- ]----- | Construct a value of type 'V1ResourceSliceList' (by applying it's required fields, if any)-mkV1ResourceSliceList- :: [V1ResourceSlice] -- ^ 'v1ResourceSliceListItems': Items is the list of resource ResourceSlices.- -> V1ResourceSliceList-mkV1ResourceSliceList v1ResourceSliceListItems =- V1ResourceSliceList- { v1ResourceSliceListApiVersion = Nothing- , v1ResourceSliceListItems- , v1ResourceSliceListKind = Nothing- , v1ResourceSliceListMetadata = Nothing- }---- ** V1ResourceSliceSpec--- | V1ResourceSliceSpec--- ResourceSliceSpec contains the information published by the driver in one ResourceSlice.-data V1ResourceSliceSpec = V1ResourceSliceSpec- { v1ResourceSliceSpecAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the resources in the pool. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.- , v1ResourceSliceSpecDevices :: !(Maybe [V1Device]) -- ^ "devices" - Devices lists some or all of the devices in this pool. Must not have more than 128 entries.- , v1ResourceSliceSpecDriver :: !(Text) -- ^ /Required/ "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.- , v1ResourceSliceSpecNodeName :: !(Maybe Text) -- ^ "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, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.- , v1ResourceSliceSpecNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- , v1ResourceSliceSpecPerDeviceNodeSelection :: !(Maybe Bool) -- ^ "perDeviceNodeSelection" - PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.- , v1ResourceSliceSpecPool :: !(V1ResourcePool) -- ^ /Required/ "pool"- , v1ResourceSliceSpecSharedCounters :: !(Maybe [V1CounterSet]) -- ^ "sharedCounters" - SharedCounters defines a list of counter sets, each of which has a name and a list of counters available. The names of the SharedCounters must be unique in the ResourceSlice. The maximum number of counters in all sets is 32.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceSliceSpec-instance A.FromJSON V1ResourceSliceSpec where- parseJSON = A.withObject "V1ResourceSliceSpec" $ \o ->- V1ResourceSliceSpec- <$> (o .:? "allNodes")- <*> (o .:? "devices")- <*> (o .: "driver")- <*> (o .:? "nodeName")- <*> (o .:? "nodeSelector")- <*> (o .:? "perDeviceNodeSelection")- <*> (o .: "pool")- <*> (o .:? "sharedCounters")---- | ToJSON V1ResourceSliceSpec-instance A.ToJSON V1ResourceSliceSpec where- toJSON V1ResourceSliceSpec {..} =- _omitNulls- [ "allNodes" .= v1ResourceSliceSpecAllNodes- , "devices" .= v1ResourceSliceSpecDevices- , "driver" .= v1ResourceSliceSpecDriver- , "nodeName" .= v1ResourceSliceSpecNodeName- , "nodeSelector" .= v1ResourceSliceSpecNodeSelector- , "perDeviceNodeSelection" .= v1ResourceSliceSpecPerDeviceNodeSelection- , "pool" .= v1ResourceSliceSpecPool- , "sharedCounters" .= v1ResourceSliceSpecSharedCounters- ]----- | Construct a value of type 'V1ResourceSliceSpec' (by applying it's required fields, if any)-mkV1ResourceSliceSpec- :: Text -- ^ 'v1ResourceSliceSpecDriver': 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.- -> V1ResourcePool -- ^ 'v1ResourceSliceSpecPool' - -> V1ResourceSliceSpec-mkV1ResourceSliceSpec v1ResourceSliceSpecDriver v1ResourceSliceSpecPool =- V1ResourceSliceSpec- { v1ResourceSliceSpecAllNodes = Nothing- , v1ResourceSliceSpecDevices = Nothing- , v1ResourceSliceSpecDriver- , v1ResourceSliceSpecNodeName = Nothing- , v1ResourceSliceSpecNodeSelector = Nothing- , v1ResourceSliceSpecPerDeviceNodeSelection = Nothing- , v1ResourceSliceSpecPool- , v1ResourceSliceSpecSharedCounters = Nothing- }---- ** V1ResourceStatus--- | V1ResourceStatus--- ResourceStatus represents the status of a single resource allocated to a Pod.-data V1ResourceStatus = V1ResourceStatus- { v1ResourceStatusName :: !(Text) -- ^ /Required/ "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.- , v1ResourceStatusResources :: !(Maybe [V1ResourceHealth]) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ResourceStatus-instance A.FromJSON V1ResourceStatus where- parseJSON = A.withObject "V1ResourceStatus" $ \o ->- V1ResourceStatus- <$> (o .: "name")- <*> (o .:? "resources")---- | ToJSON V1ResourceStatus-instance A.ToJSON V1ResourceStatus where- toJSON V1ResourceStatus {..} =- _omitNulls- [ "name" .= v1ResourceStatusName- , "resources" .= v1ResourceStatusResources- ]----- | Construct a value of type 'V1ResourceStatus' (by applying it's required fields, if any)-mkV1ResourceStatus- :: Text -- ^ 'v1ResourceStatusName': 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.- -> V1ResourceStatus-mkV1ResourceStatus v1ResourceStatusName =- V1ResourceStatus- { v1ResourceStatusName- , v1ResourceStatusResources = Nothing- }---- ** V1Role--- | V1Role--- Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.-data V1Role = V1Role- { v1RoleApiVersion :: !(Maybe Text) -- ^ "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- , v1RoleKind :: !(Maybe Text) -- ^ "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- , v1RoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1RoleRules :: !(Maybe [V1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this Role- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Role-instance A.FromJSON V1Role where- parseJSON = A.withObject "V1Role" $ \o ->- V1Role- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "rules")---- | ToJSON V1Role-instance A.ToJSON V1Role where- toJSON V1Role {..} =- _omitNulls- [ "apiVersion" .= v1RoleApiVersion- , "kind" .= v1RoleKind- , "metadata" .= v1RoleMetadata- , "rules" .= v1RoleRules- ]----- | Construct a value of type 'V1Role' (by applying it's required fields, if any)-mkV1Role- :: V1Role-mkV1Role =- V1Role- { v1RoleApiVersion = Nothing- , v1RoleKind = Nothing- , v1RoleMetadata = Nothing- , v1RoleRules = Nothing- }---- ** V1RoleBinding--- | V1RoleBinding--- RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.-data V1RoleBinding = V1RoleBinding- { v1RoleBindingApiVersion :: !(Maybe Text) -- ^ "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- , v1RoleBindingKind :: !(Maybe Text) -- ^ "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- , v1RoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1RoleBindingRoleRef :: !(V1RoleRef) -- ^ /Required/ "roleRef"- , v1RoleBindingSubjects :: !(Maybe [RbacV1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RoleBinding-instance A.FromJSON V1RoleBinding where- parseJSON = A.withObject "V1RoleBinding" $ \o ->- V1RoleBinding- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "roleRef")- <*> (o .:? "subjects")---- | ToJSON V1RoleBinding-instance A.ToJSON V1RoleBinding where- toJSON V1RoleBinding {..} =- _omitNulls- [ "apiVersion" .= v1RoleBindingApiVersion- , "kind" .= v1RoleBindingKind- , "metadata" .= v1RoleBindingMetadata- , "roleRef" .= v1RoleBindingRoleRef- , "subjects" .= v1RoleBindingSubjects- ]----- | Construct a value of type 'V1RoleBinding' (by applying it's required fields, if any)-mkV1RoleBinding- :: V1RoleRef -- ^ 'v1RoleBindingRoleRef' - -> V1RoleBinding-mkV1RoleBinding v1RoleBindingRoleRef =- V1RoleBinding- { v1RoleBindingApiVersion = Nothing- , v1RoleBindingKind = Nothing- , v1RoleBindingMetadata = Nothing- , v1RoleBindingRoleRef- , v1RoleBindingSubjects = Nothing- }---- ** V1RoleBindingList--- | V1RoleBindingList--- RoleBindingList is a collection of RoleBindings-data V1RoleBindingList = V1RoleBindingList- { v1RoleBindingListApiVersion :: !(Maybe Text) -- ^ "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- , v1RoleBindingListItems :: !([V1RoleBinding]) -- ^ /Required/ "items" - Items is a list of RoleBindings- , v1RoleBindingListKind :: !(Maybe Text) -- ^ "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- , v1RoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RoleBindingList-instance A.FromJSON V1RoleBindingList where- parseJSON = A.withObject "V1RoleBindingList" $ \o ->- V1RoleBindingList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1RoleBindingList-instance A.ToJSON V1RoleBindingList where- toJSON V1RoleBindingList {..} =- _omitNulls- [ "apiVersion" .= v1RoleBindingListApiVersion- , "items" .= v1RoleBindingListItems- , "kind" .= v1RoleBindingListKind- , "metadata" .= v1RoleBindingListMetadata- ]----- | Construct a value of type 'V1RoleBindingList' (by applying it's required fields, if any)-mkV1RoleBindingList- :: [V1RoleBinding] -- ^ 'v1RoleBindingListItems': Items is a list of RoleBindings- -> V1RoleBindingList-mkV1RoleBindingList v1RoleBindingListItems =- V1RoleBindingList- { v1RoleBindingListApiVersion = Nothing- , v1RoleBindingListItems- , v1RoleBindingListKind = Nothing- , v1RoleBindingListMetadata = Nothing- }---- ** V1RoleList--- | V1RoleList--- RoleList is a collection of Roles-data V1RoleList = V1RoleList- { v1RoleListApiVersion :: !(Maybe Text) -- ^ "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- , v1RoleListItems :: !([V1Role]) -- ^ /Required/ "items" - Items is a list of Roles- , v1RoleListKind :: !(Maybe Text) -- ^ "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- , v1RoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RoleList-instance A.FromJSON V1RoleList where- parseJSON = A.withObject "V1RoleList" $ \o ->- V1RoleList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1RoleList-instance A.ToJSON V1RoleList where- toJSON V1RoleList {..} =- _omitNulls- [ "apiVersion" .= v1RoleListApiVersion- , "items" .= v1RoleListItems- , "kind" .= v1RoleListKind- , "metadata" .= v1RoleListMetadata- ]----- | Construct a value of type 'V1RoleList' (by applying it's required fields, if any)-mkV1RoleList- :: [V1Role] -- ^ 'v1RoleListItems': Items is a list of Roles- -> V1RoleList-mkV1RoleList v1RoleListItems =- V1RoleList- { v1RoleListApiVersion = Nothing- , v1RoleListItems- , v1RoleListKind = Nothing- , v1RoleListMetadata = Nothing- }---- ** V1RoleRef--- | V1RoleRef--- RoleRef contains information that points to the role being used-data V1RoleRef = V1RoleRef- { v1RoleRefApiGroup :: !(Text) -- ^ /Required/ "apiGroup" - APIGroup is the group for the resource being referenced- , v1RoleRefKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced- , v1RoleRefName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RoleRef-instance A.FromJSON V1RoleRef where- parseJSON = A.withObject "V1RoleRef" $ \o ->- V1RoleRef- <$> (o .: "apiGroup")- <*> (o .: "kind")- <*> (o .: "name")---- | ToJSON V1RoleRef-instance A.ToJSON V1RoleRef where- toJSON V1RoleRef {..} =- _omitNulls- [ "apiGroup" .= v1RoleRefApiGroup- , "kind" .= v1RoleRefKind- , "name" .= v1RoleRefName- ]----- | Construct a value of type 'V1RoleRef' (by applying it's required fields, if any)-mkV1RoleRef- :: Text -- ^ 'v1RoleRefApiGroup': APIGroup is the group for the resource being referenced- -> Text -- ^ 'v1RoleRefKind': Kind is the type of resource being referenced- -> Text -- ^ 'v1RoleRefName': Name is the name of resource being referenced- -> V1RoleRef-mkV1RoleRef v1RoleRefApiGroup v1RoleRefKind v1RoleRefName =- V1RoleRef- { v1RoleRefApiGroup- , v1RoleRefKind- , v1RoleRefName- }---- ** V1RollingUpdateDaemonSet--- | V1RollingUpdateDaemonSet--- Spec to control the desired behavior of daemon set rolling update.-data V1RollingUpdateDaemonSet = V1RollingUpdateDaemonSet- { v1RollingUpdateDaemonSetMaxSurge :: !(Maybe IntOrString) -- ^ "maxSurge"- , v1RollingUpdateDaemonSetMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RollingUpdateDaemonSet-instance A.FromJSON V1RollingUpdateDaemonSet where- parseJSON = A.withObject "V1RollingUpdateDaemonSet" $ \o ->- V1RollingUpdateDaemonSet- <$> (o .:? "maxSurge")- <*> (o .:? "maxUnavailable")---- | ToJSON V1RollingUpdateDaemonSet-instance A.ToJSON V1RollingUpdateDaemonSet where- toJSON V1RollingUpdateDaemonSet {..} =- _omitNulls- [ "maxSurge" .= v1RollingUpdateDaemonSetMaxSurge- , "maxUnavailable" .= v1RollingUpdateDaemonSetMaxUnavailable- ]----- | Construct a value of type 'V1RollingUpdateDaemonSet' (by applying it's required fields, if any)-mkV1RollingUpdateDaemonSet- :: V1RollingUpdateDaemonSet-mkV1RollingUpdateDaemonSet =- V1RollingUpdateDaemonSet- { v1RollingUpdateDaemonSetMaxSurge = Nothing- , v1RollingUpdateDaemonSetMaxUnavailable = Nothing- }---- ** V1RollingUpdateDeployment--- | V1RollingUpdateDeployment--- Spec to control the desired behavior of rolling update.-data V1RollingUpdateDeployment = V1RollingUpdateDeployment- { v1RollingUpdateDeploymentMaxSurge :: !(Maybe IntOrString) -- ^ "maxSurge"- , v1RollingUpdateDeploymentMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RollingUpdateDeployment-instance A.FromJSON V1RollingUpdateDeployment where- parseJSON = A.withObject "V1RollingUpdateDeployment" $ \o ->- V1RollingUpdateDeployment- <$> (o .:? "maxSurge")- <*> (o .:? "maxUnavailable")---- | ToJSON V1RollingUpdateDeployment-instance A.ToJSON V1RollingUpdateDeployment where- toJSON V1RollingUpdateDeployment {..} =- _omitNulls- [ "maxSurge" .= v1RollingUpdateDeploymentMaxSurge- , "maxUnavailable" .= v1RollingUpdateDeploymentMaxUnavailable- ]----- | Construct a value of type 'V1RollingUpdateDeployment' (by applying it's required fields, if any)-mkV1RollingUpdateDeployment- :: V1RollingUpdateDeployment-mkV1RollingUpdateDeployment =- V1RollingUpdateDeployment- { v1RollingUpdateDeploymentMaxSurge = Nothing- , v1RollingUpdateDeploymentMaxUnavailable = Nothing- }---- ** V1RollingUpdateStatefulSetStrategy--- | V1RollingUpdateStatefulSetStrategy--- RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.-data V1RollingUpdateStatefulSetStrategy = V1RollingUpdateStatefulSetStrategy- { v1RollingUpdateStatefulSetStrategyMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"- , v1RollingUpdateStatefulSetStrategyPartition :: !(Maybe Int) -- ^ "partition" - Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RollingUpdateStatefulSetStrategy-instance A.FromJSON V1RollingUpdateStatefulSetStrategy where- parseJSON = A.withObject "V1RollingUpdateStatefulSetStrategy" $ \o ->- V1RollingUpdateStatefulSetStrategy- <$> (o .:? "maxUnavailable")- <*> (o .:? "partition")---- | ToJSON V1RollingUpdateStatefulSetStrategy-instance A.ToJSON V1RollingUpdateStatefulSetStrategy where- toJSON V1RollingUpdateStatefulSetStrategy {..} =- _omitNulls- [ "maxUnavailable" .= v1RollingUpdateStatefulSetStrategyMaxUnavailable- , "partition" .= v1RollingUpdateStatefulSetStrategyPartition- ]----- | Construct a value of type 'V1RollingUpdateStatefulSetStrategy' (by applying it's required fields, if any)-mkV1RollingUpdateStatefulSetStrategy- :: V1RollingUpdateStatefulSetStrategy-mkV1RollingUpdateStatefulSetStrategy =- V1RollingUpdateStatefulSetStrategy- { v1RollingUpdateStatefulSetStrategyMaxUnavailable = Nothing- , v1RollingUpdateStatefulSetStrategyPartition = Nothing- }---- ** V1RuleWithOperations--- | V1RuleWithOperations--- RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.-data V1RuleWithOperations = V1RuleWithOperations- { v1RuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.- , v1RuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.- , v1RuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - 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.- , v1RuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - 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.- , v1RuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - 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 \"*\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RuleWithOperations-instance A.FromJSON V1RuleWithOperations where- parseJSON = A.withObject "V1RuleWithOperations" $ \o ->- V1RuleWithOperations- <$> (o .:? "apiGroups")- <*> (o .:? "apiVersions")- <*> (o .:? "operations")- <*> (o .:? "resources")- <*> (o .:? "scope")---- | ToJSON V1RuleWithOperations-instance A.ToJSON V1RuleWithOperations where- toJSON V1RuleWithOperations {..} =- _omitNulls- [ "apiGroups" .= v1RuleWithOperationsApiGroups- , "apiVersions" .= v1RuleWithOperationsApiVersions- , "operations" .= v1RuleWithOperationsOperations- , "resources" .= v1RuleWithOperationsResources- , "scope" .= v1RuleWithOperationsScope- ]----- | Construct a value of type 'V1RuleWithOperations' (by applying it's required fields, if any)-mkV1RuleWithOperations- :: V1RuleWithOperations-mkV1RuleWithOperations =- V1RuleWithOperations- { v1RuleWithOperationsApiGroups = Nothing- , v1RuleWithOperationsApiVersions = Nothing- , v1RuleWithOperationsOperations = Nothing- , v1RuleWithOperationsResources = Nothing- , v1RuleWithOperationsScope = Nothing- }---- ** V1RuntimeClass--- | V1RuntimeClass--- RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/-data V1RuntimeClass = V1RuntimeClass- { v1RuntimeClassApiVersion :: !(Maybe Text) -- ^ "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- , v1RuntimeClassHandler :: !(Text) -- ^ /Required/ "handler" - handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.- , v1RuntimeClassKind :: !(Maybe Text) -- ^ "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- , v1RuntimeClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1RuntimeClassOverhead :: !(Maybe V1Overhead) -- ^ "overhead"- , v1RuntimeClassScheduling :: !(Maybe V1Scheduling) -- ^ "scheduling"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RuntimeClass-instance A.FromJSON V1RuntimeClass where- parseJSON = A.withObject "V1RuntimeClass" $ \o ->- V1RuntimeClass- <$> (o .:? "apiVersion")- <*> (o .: "handler")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "overhead")- <*> (o .:? "scheduling")---- | ToJSON V1RuntimeClass-instance A.ToJSON V1RuntimeClass where- toJSON V1RuntimeClass {..} =- _omitNulls- [ "apiVersion" .= v1RuntimeClassApiVersion- , "handler" .= v1RuntimeClassHandler- , "kind" .= v1RuntimeClassKind- , "metadata" .= v1RuntimeClassMetadata- , "overhead" .= v1RuntimeClassOverhead- , "scheduling" .= v1RuntimeClassScheduling- ]----- | Construct a value of type 'V1RuntimeClass' (by applying it's required fields, if any)-mkV1RuntimeClass- :: Text -- ^ 'v1RuntimeClassHandler': handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.- -> V1RuntimeClass-mkV1RuntimeClass v1RuntimeClassHandler =- V1RuntimeClass- { v1RuntimeClassApiVersion = Nothing- , v1RuntimeClassHandler- , v1RuntimeClassKind = Nothing- , v1RuntimeClassMetadata = Nothing- , v1RuntimeClassOverhead = Nothing- , v1RuntimeClassScheduling = Nothing- }---- ** V1RuntimeClassList--- | V1RuntimeClassList--- RuntimeClassList is a list of RuntimeClass objects.-data V1RuntimeClassList = V1RuntimeClassList- { v1RuntimeClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1RuntimeClassListItems :: !([V1RuntimeClass]) -- ^ /Required/ "items" - items is a list of schema objects.- , v1RuntimeClassListKind :: !(Maybe Text) -- ^ "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- , v1RuntimeClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1RuntimeClassList-instance A.FromJSON V1RuntimeClassList where- parseJSON = A.withObject "V1RuntimeClassList" $ \o ->- V1RuntimeClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1RuntimeClassList-instance A.ToJSON V1RuntimeClassList where- toJSON V1RuntimeClassList {..} =- _omitNulls- [ "apiVersion" .= v1RuntimeClassListApiVersion- , "items" .= v1RuntimeClassListItems- , "kind" .= v1RuntimeClassListKind- , "metadata" .= v1RuntimeClassListMetadata- ]----- | Construct a value of type 'V1RuntimeClassList' (by applying it's required fields, if any)-mkV1RuntimeClassList- :: [V1RuntimeClass] -- ^ 'v1RuntimeClassListItems': items is a list of schema objects.- -> V1RuntimeClassList-mkV1RuntimeClassList v1RuntimeClassListItems =- V1RuntimeClassList- { v1RuntimeClassListApiVersion = Nothing- , v1RuntimeClassListItems- , v1RuntimeClassListKind = Nothing- , v1RuntimeClassListMetadata = Nothing- }---- ** V1SELinuxOptions--- | V1SELinuxOptions--- SELinuxOptions are the labels to be applied to the container-data V1SELinuxOptions = V1SELinuxOptions- { v1SELinuxOptionsLevel :: !(Maybe Text) -- ^ "level" - Level is SELinux level label that applies to the container.- , v1SELinuxOptionsRole :: !(Maybe Text) -- ^ "role" - Role is a SELinux role label that applies to the container.- , v1SELinuxOptionsType :: !(Maybe Text) -- ^ "type" - Type is a SELinux type label that applies to the container.- , v1SELinuxOptionsUser :: !(Maybe Text) -- ^ "user" - User is a SELinux user label that applies to the container.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SELinuxOptions-instance A.FromJSON V1SELinuxOptions where- parseJSON = A.withObject "V1SELinuxOptions" $ \o ->- V1SELinuxOptions- <$> (o .:? "level")- <*> (o .:? "role")- <*> (o .:? "type")- <*> (o .:? "user")---- | ToJSON V1SELinuxOptions-instance A.ToJSON V1SELinuxOptions where- toJSON V1SELinuxOptions {..} =- _omitNulls- [ "level" .= v1SELinuxOptionsLevel- , "role" .= v1SELinuxOptionsRole- , "type" .= v1SELinuxOptionsType- , "user" .= v1SELinuxOptionsUser- ]----- | Construct a value of type 'V1SELinuxOptions' (by applying it's required fields, if any)-mkV1SELinuxOptions- :: V1SELinuxOptions-mkV1SELinuxOptions =- V1SELinuxOptions- { v1SELinuxOptionsLevel = Nothing- , v1SELinuxOptionsRole = Nothing- , v1SELinuxOptionsType = Nothing- , v1SELinuxOptionsUser = Nothing- }---- ** V1Scale--- | V1Scale--- Scale represents a scaling request for a resource.-data V1Scale = V1Scale- { v1ScaleApiVersion :: !(Maybe Text) -- ^ "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- , v1ScaleKind :: !(Maybe Text) -- ^ "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- , v1ScaleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ScaleSpec :: !(Maybe V1ScaleSpec) -- ^ "spec"- , v1ScaleStatus :: !(Maybe V1ScaleStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Scale-instance A.FromJSON V1Scale where- parseJSON = A.withObject "V1Scale" $ \o ->- V1Scale- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1Scale-instance A.ToJSON V1Scale where- toJSON V1Scale {..} =- _omitNulls- [ "apiVersion" .= v1ScaleApiVersion- , "kind" .= v1ScaleKind- , "metadata" .= v1ScaleMetadata- , "spec" .= v1ScaleSpec- , "status" .= v1ScaleStatus- ]----- | Construct a value of type 'V1Scale' (by applying it's required fields, if any)-mkV1Scale- :: V1Scale-mkV1Scale =- V1Scale- { v1ScaleApiVersion = Nothing- , v1ScaleKind = Nothing- , v1ScaleMetadata = Nothing- , v1ScaleSpec = Nothing- , v1ScaleStatus = Nothing- }---- ** V1ScaleIOPersistentVolumeSource--- | V1ScaleIOPersistentVolumeSource--- ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume-data V1ScaleIOPersistentVolumeSource = V1ScaleIOPersistentVolumeSource- { v1ScaleIOPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"- , v1ScaleIOPersistentVolumeSourceGateway :: !(Text) -- ^ /Required/ "gateway" - gateway is the host address of the ScaleIO API Gateway.- , v1ScaleIOPersistentVolumeSourceProtectionDomain :: !(Maybe Text) -- ^ "protectionDomain" - protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.- , v1ScaleIOPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1ScaleIOPersistentVolumeSourceSecretRef :: !(V1SecretReference) -- ^ /Required/ "secretRef"- , v1ScaleIOPersistentVolumeSourceSslEnabled :: !(Maybe Bool) -- ^ "sslEnabled" - sslEnabled is the flag to enable/disable SSL communication with Gateway, default false- , v1ScaleIOPersistentVolumeSourceStorageMode :: !(Maybe Text) -- ^ "storageMode" - storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.- , v1ScaleIOPersistentVolumeSourceStoragePool :: !(Maybe Text) -- ^ "storagePool" - storagePool is the ScaleIO Storage Pool associated with the protection domain.- , v1ScaleIOPersistentVolumeSourceSystem :: !(Text) -- ^ /Required/ "system" - system is the name of the storage system as configured in ScaleIO.- , v1ScaleIOPersistentVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ScaleIOPersistentVolumeSource-instance A.FromJSON V1ScaleIOPersistentVolumeSource where- parseJSON = A.withObject "V1ScaleIOPersistentVolumeSource" $ \o ->- V1ScaleIOPersistentVolumeSource- <$> (o .:? "fsType")- <*> (o .: "gateway")- <*> (o .:? "protectionDomain")- <*> (o .:? "readOnly")- <*> (o .: "secretRef")- <*> (o .:? "sslEnabled")- <*> (o .:? "storageMode")- <*> (o .:? "storagePool")- <*> (o .: "system")- <*> (o .:? "volumeName")---- | ToJSON V1ScaleIOPersistentVolumeSource-instance A.ToJSON V1ScaleIOPersistentVolumeSource where- toJSON V1ScaleIOPersistentVolumeSource {..} =- _omitNulls- [ "fsType" .= v1ScaleIOPersistentVolumeSourceFsType- , "gateway" .= v1ScaleIOPersistentVolumeSourceGateway- , "protectionDomain" .= v1ScaleIOPersistentVolumeSourceProtectionDomain- , "readOnly" .= v1ScaleIOPersistentVolumeSourceReadOnly- , "secretRef" .= v1ScaleIOPersistentVolumeSourceSecretRef- , "sslEnabled" .= v1ScaleIOPersistentVolumeSourceSslEnabled- , "storageMode" .= v1ScaleIOPersistentVolumeSourceStorageMode- , "storagePool" .= v1ScaleIOPersistentVolumeSourceStoragePool- , "system" .= v1ScaleIOPersistentVolumeSourceSystem- , "volumeName" .= v1ScaleIOPersistentVolumeSourceVolumeName- ]----- | Construct a value of type 'V1ScaleIOPersistentVolumeSource' (by applying it's required fields, if any)-mkV1ScaleIOPersistentVolumeSource- :: Text -- ^ 'v1ScaleIOPersistentVolumeSourceGateway': gateway is the host address of the ScaleIO API Gateway.- -> V1SecretReference -- ^ 'v1ScaleIOPersistentVolumeSourceSecretRef' - -> Text -- ^ 'v1ScaleIOPersistentVolumeSourceSystem': system is the name of the storage system as configured in ScaleIO.- -> V1ScaleIOPersistentVolumeSource-mkV1ScaleIOPersistentVolumeSource v1ScaleIOPersistentVolumeSourceGateway v1ScaleIOPersistentVolumeSourceSecretRef v1ScaleIOPersistentVolumeSourceSystem =- V1ScaleIOPersistentVolumeSource- { v1ScaleIOPersistentVolumeSourceFsType = Nothing- , v1ScaleIOPersistentVolumeSourceGateway- , v1ScaleIOPersistentVolumeSourceProtectionDomain = Nothing- , v1ScaleIOPersistentVolumeSourceReadOnly = Nothing- , v1ScaleIOPersistentVolumeSourceSecretRef- , v1ScaleIOPersistentVolumeSourceSslEnabled = Nothing- , v1ScaleIOPersistentVolumeSourceStorageMode = Nothing- , v1ScaleIOPersistentVolumeSourceStoragePool = Nothing- , v1ScaleIOPersistentVolumeSourceSystem- , v1ScaleIOPersistentVolumeSourceVolumeName = Nothing- }---- ** V1ScaleIOVolumeSource--- | V1ScaleIOVolumeSource--- ScaleIOVolumeSource represents a persistent ScaleIO volume-data V1ScaleIOVolumeSource = V1ScaleIOVolumeSource- { v1ScaleIOVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".- , v1ScaleIOVolumeSourceGateway :: !(Text) -- ^ /Required/ "gateway" - gateway is the host address of the ScaleIO API Gateway.- , v1ScaleIOVolumeSourceProtectionDomain :: !(Maybe Text) -- ^ "protectionDomain" - protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.- , v1ScaleIOVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1ScaleIOVolumeSourceSecretRef :: !(V1LocalObjectReference) -- ^ /Required/ "secretRef"- , v1ScaleIOVolumeSourceSslEnabled :: !(Maybe Bool) -- ^ "sslEnabled" - sslEnabled Flag enable/disable SSL communication with Gateway, default false- , v1ScaleIOVolumeSourceStorageMode :: !(Maybe Text) -- ^ "storageMode" - storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.- , v1ScaleIOVolumeSourceStoragePool :: !(Maybe Text) -- ^ "storagePool" - storagePool is the ScaleIO Storage Pool associated with the protection domain.- , v1ScaleIOVolumeSourceSystem :: !(Text) -- ^ /Required/ "system" - system is the name of the storage system as configured in ScaleIO.- , v1ScaleIOVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ScaleIOVolumeSource-instance A.FromJSON V1ScaleIOVolumeSource where- parseJSON = A.withObject "V1ScaleIOVolumeSource" $ \o ->- V1ScaleIOVolumeSource- <$> (o .:? "fsType")- <*> (o .: "gateway")- <*> (o .:? "protectionDomain")- <*> (o .:? "readOnly")- <*> (o .: "secretRef")- <*> (o .:? "sslEnabled")- <*> (o .:? "storageMode")- <*> (o .:? "storagePool")- <*> (o .: "system")- <*> (o .:? "volumeName")---- | ToJSON V1ScaleIOVolumeSource-instance A.ToJSON V1ScaleIOVolumeSource where- toJSON V1ScaleIOVolumeSource {..} =- _omitNulls- [ "fsType" .= v1ScaleIOVolumeSourceFsType- , "gateway" .= v1ScaleIOVolumeSourceGateway- , "protectionDomain" .= v1ScaleIOVolumeSourceProtectionDomain- , "readOnly" .= v1ScaleIOVolumeSourceReadOnly- , "secretRef" .= v1ScaleIOVolumeSourceSecretRef- , "sslEnabled" .= v1ScaleIOVolumeSourceSslEnabled- , "storageMode" .= v1ScaleIOVolumeSourceStorageMode- , "storagePool" .= v1ScaleIOVolumeSourceStoragePool- , "system" .= v1ScaleIOVolumeSourceSystem- , "volumeName" .= v1ScaleIOVolumeSourceVolumeName- ]----- | Construct a value of type 'V1ScaleIOVolumeSource' (by applying it's required fields, if any)-mkV1ScaleIOVolumeSource- :: Text -- ^ 'v1ScaleIOVolumeSourceGateway': gateway is the host address of the ScaleIO API Gateway.- -> V1LocalObjectReference -- ^ 'v1ScaleIOVolumeSourceSecretRef' - -> Text -- ^ 'v1ScaleIOVolumeSourceSystem': system is the name of the storage system as configured in ScaleIO.- -> V1ScaleIOVolumeSource-mkV1ScaleIOVolumeSource v1ScaleIOVolumeSourceGateway v1ScaleIOVolumeSourceSecretRef v1ScaleIOVolumeSourceSystem =- V1ScaleIOVolumeSource- { v1ScaleIOVolumeSourceFsType = Nothing- , v1ScaleIOVolumeSourceGateway- , v1ScaleIOVolumeSourceProtectionDomain = Nothing- , v1ScaleIOVolumeSourceReadOnly = Nothing- , v1ScaleIOVolumeSourceSecretRef- , v1ScaleIOVolumeSourceSslEnabled = Nothing- , v1ScaleIOVolumeSourceStorageMode = Nothing- , v1ScaleIOVolumeSourceStoragePool = Nothing- , v1ScaleIOVolumeSourceSystem- , v1ScaleIOVolumeSourceVolumeName = Nothing- }---- ** V1ScaleSpec--- | V1ScaleSpec--- ScaleSpec describes the attributes of a scale subresource.-data V1ScaleSpec = V1ScaleSpec- { v1ScaleSpecReplicas :: !(Maybe Int) -- ^ "replicas" - replicas is the desired number of instances for the scaled object.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ScaleSpec-instance A.FromJSON V1ScaleSpec where- parseJSON = A.withObject "V1ScaleSpec" $ \o ->- V1ScaleSpec- <$> (o .:? "replicas")---- | ToJSON V1ScaleSpec-instance A.ToJSON V1ScaleSpec where- toJSON V1ScaleSpec {..} =- _omitNulls- [ "replicas" .= v1ScaleSpecReplicas- ]----- | Construct a value of type 'V1ScaleSpec' (by applying it's required fields, if any)-mkV1ScaleSpec- :: V1ScaleSpec-mkV1ScaleSpec =- V1ScaleSpec- { v1ScaleSpecReplicas = Nothing- }---- ** V1ScaleStatus--- | V1ScaleStatus--- ScaleStatus represents the current status of a scale subresource.-data V1ScaleStatus = V1ScaleStatus- { v1ScaleStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - replicas is the actual number of observed instances of the scaled object.- , v1ScaleStatusSelector :: !(Maybe Text) -- ^ "selector" - selector is the label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ScaleStatus-instance A.FromJSON V1ScaleStatus where- parseJSON = A.withObject "V1ScaleStatus" $ \o ->- V1ScaleStatus- <$> (o .: "replicas")- <*> (o .:? "selector")---- | ToJSON V1ScaleStatus-instance A.ToJSON V1ScaleStatus where- toJSON V1ScaleStatus {..} =- _omitNulls- [ "replicas" .= v1ScaleStatusReplicas- , "selector" .= v1ScaleStatusSelector- ]----- | Construct a value of type 'V1ScaleStatus' (by applying it's required fields, if any)-mkV1ScaleStatus- :: Int -- ^ 'v1ScaleStatusReplicas': replicas is the actual number of observed instances of the scaled object.- -> V1ScaleStatus-mkV1ScaleStatus v1ScaleStatusReplicas =- V1ScaleStatus- { v1ScaleStatusReplicas- , v1ScaleStatusSelector = Nothing- }---- ** V1Scheduling--- | V1Scheduling--- Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.-data V1Scheduling = V1Scheduling- { v1SchedulingNodeSelector :: !(Maybe (Map.Map String Text)) -- ^ "nodeSelector" - nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.- , v1SchedulingTolerations :: !(Maybe [V1Toleration]) -- ^ "tolerations" - tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Scheduling-instance A.FromJSON V1Scheduling where- parseJSON = A.withObject "V1Scheduling" $ \o ->- V1Scheduling- <$> (o .:? "nodeSelector")- <*> (o .:? "tolerations")---- | ToJSON V1Scheduling-instance A.ToJSON V1Scheduling where- toJSON V1Scheduling {..} =- _omitNulls- [ "nodeSelector" .= v1SchedulingNodeSelector- , "tolerations" .= v1SchedulingTolerations- ]----- | Construct a value of type 'V1Scheduling' (by applying it's required fields, if any)-mkV1Scheduling- :: V1Scheduling-mkV1Scheduling =- V1Scheduling- { v1SchedulingNodeSelector = Nothing- , v1SchedulingTolerations = Nothing- }---- ** V1ScopeSelector--- | V1ScopeSelector--- A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.-data V1ScopeSelector = V1ScopeSelector- { v1ScopeSelectorMatchExpressions :: !(Maybe [V1ScopedResourceSelectorRequirement]) -- ^ "matchExpressions" - A list of scope selector requirements by scope of the resources.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ScopeSelector-instance A.FromJSON V1ScopeSelector where- parseJSON = A.withObject "V1ScopeSelector" $ \o ->- V1ScopeSelector- <$> (o .:? "matchExpressions")---- | ToJSON V1ScopeSelector-instance A.ToJSON V1ScopeSelector where- toJSON V1ScopeSelector {..} =- _omitNulls- [ "matchExpressions" .= v1ScopeSelectorMatchExpressions- ]----- | Construct a value of type 'V1ScopeSelector' (by applying it's required fields, if any)-mkV1ScopeSelector- :: V1ScopeSelector-mkV1ScopeSelector =- V1ScopeSelector- { v1ScopeSelectorMatchExpressions = Nothing- }---- ** V1ScopedResourceSelectorRequirement--- | V1ScopedResourceSelectorRequirement--- A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.-data V1ScopedResourceSelectorRequirement = V1ScopedResourceSelectorRequirement- { v1ScopedResourceSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.- , v1ScopedResourceSelectorRequirementScopeName :: !(Text) -- ^ /Required/ "scopeName" - The name of the scope that the selector applies to.- , v1ScopedResourceSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ScopedResourceSelectorRequirement-instance A.FromJSON V1ScopedResourceSelectorRequirement where- parseJSON = A.withObject "V1ScopedResourceSelectorRequirement" $ \o ->- V1ScopedResourceSelectorRequirement- <$> (o .: "operator")- <*> (o .: "scopeName")- <*> (o .:? "values")---- | ToJSON V1ScopedResourceSelectorRequirement-instance A.ToJSON V1ScopedResourceSelectorRequirement where- toJSON V1ScopedResourceSelectorRequirement {..} =- _omitNulls- [ "operator" .= v1ScopedResourceSelectorRequirementOperator- , "scopeName" .= v1ScopedResourceSelectorRequirementScopeName- , "values" .= v1ScopedResourceSelectorRequirementValues- ]----- | Construct a value of type 'V1ScopedResourceSelectorRequirement' (by applying it's required fields, if any)-mkV1ScopedResourceSelectorRequirement- :: Text -- ^ 'v1ScopedResourceSelectorRequirementOperator': Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.- -> Text -- ^ 'v1ScopedResourceSelectorRequirementScopeName': The name of the scope that the selector applies to.- -> V1ScopedResourceSelectorRequirement-mkV1ScopedResourceSelectorRequirement v1ScopedResourceSelectorRequirementOperator v1ScopedResourceSelectorRequirementScopeName =- V1ScopedResourceSelectorRequirement- { v1ScopedResourceSelectorRequirementOperator- , v1ScopedResourceSelectorRequirementScopeName- , v1ScopedResourceSelectorRequirementValues = Nothing- }---- ** V1SeccompProfile--- | V1SeccompProfile--- SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.-data V1SeccompProfile = V1SeccompProfile- { v1SeccompProfileLocalhostProfile :: !(Maybe Text) -- ^ "localhostProfile" - localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \"Localhost\". Must NOT be set for any other type.- , v1SeccompProfileType :: !(Text) -- ^ /Required/ "type" - type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SeccompProfile-instance A.FromJSON V1SeccompProfile where- parseJSON = A.withObject "V1SeccompProfile" $ \o ->- V1SeccompProfile- <$> (o .:? "localhostProfile")- <*> (o .: "type")---- | ToJSON V1SeccompProfile-instance A.ToJSON V1SeccompProfile where- toJSON V1SeccompProfile {..} =- _omitNulls- [ "localhostProfile" .= v1SeccompProfileLocalhostProfile- , "type" .= v1SeccompProfileType- ]----- | Construct a value of type 'V1SeccompProfile' (by applying it's required fields, if any)-mkV1SeccompProfile- :: Text -- ^ 'v1SeccompProfileType': type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.- -> V1SeccompProfile-mkV1SeccompProfile v1SeccompProfileType =- V1SeccompProfile- { v1SeccompProfileLocalhostProfile = Nothing- , v1SeccompProfileType- }---- ** V1Secret--- | V1Secret--- Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.-data V1Secret = V1Secret- { v1SecretApiVersion :: !(Maybe Text) -- ^ "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- , v1SecretData :: !(Maybe (Map.Map String ByteArray)) -- ^ "data" - Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4- , v1SecretImmutable :: !(Maybe Bool) -- ^ "immutable" - Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.- , v1SecretKind :: !(Maybe Text) -- ^ "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- , v1SecretMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1SecretStringData :: !(Maybe (Map.Map String Text)) -- ^ "stringData" - stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.- , v1SecretType :: !(Maybe Text) -- ^ "type" - Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Secret-instance A.FromJSON V1Secret where- parseJSON = A.withObject "V1Secret" $ \o ->- V1Secret- <$> (o .:? "apiVersion")- <*> (o .:? "data")- <*> (o .:? "immutable")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "stringData")- <*> (o .:? "type")---- | ToJSON V1Secret-instance A.ToJSON V1Secret where- toJSON V1Secret {..} =- _omitNulls- [ "apiVersion" .= v1SecretApiVersion- , "data" .= v1SecretData- , "immutable" .= v1SecretImmutable- , "kind" .= v1SecretKind- , "metadata" .= v1SecretMetadata- , "stringData" .= v1SecretStringData- , "type" .= v1SecretType- ]----- | Construct a value of type 'V1Secret' (by applying it's required fields, if any)-mkV1Secret- :: V1Secret-mkV1Secret =- V1Secret- { v1SecretApiVersion = Nothing- , v1SecretData = Nothing- , v1SecretImmutable = Nothing- , v1SecretKind = Nothing- , v1SecretMetadata = Nothing- , v1SecretStringData = Nothing- , v1SecretType = Nothing- }---- ** V1SecretEnvSource--- | V1SecretEnvSource--- SecretEnvSource selects a Secret to populate the environment variables with. The contents of the target Secret's Data field will represent the key-value pairs as environment variables.-data V1SecretEnvSource = V1SecretEnvSource- { v1SecretEnvSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- , v1SecretEnvSourceOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the Secret must be defined- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SecretEnvSource-instance A.FromJSON V1SecretEnvSource where- parseJSON = A.withObject "V1SecretEnvSource" $ \o ->- V1SecretEnvSource- <$> (o .:? "name")- <*> (o .:? "optional")---- | ToJSON V1SecretEnvSource-instance A.ToJSON V1SecretEnvSource where- toJSON V1SecretEnvSource {..} =- _omitNulls- [ "name" .= v1SecretEnvSourceName- , "optional" .= v1SecretEnvSourceOptional- ]----- | Construct a value of type 'V1SecretEnvSource' (by applying it's required fields, if any)-mkV1SecretEnvSource- :: V1SecretEnvSource-mkV1SecretEnvSource =- V1SecretEnvSource- { v1SecretEnvSourceName = Nothing- , v1SecretEnvSourceOptional = Nothing- }---- ** V1SecretKeySelector--- | V1SecretKeySelector--- SecretKeySelector selects a key of a Secret.-data V1SecretKeySelector = V1SecretKeySelector- { v1SecretKeySelectorKey :: !(Text) -- ^ /Required/ "key" - The key of the secret to select from. Must be a valid secret key.- , v1SecretKeySelectorName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- , v1SecretKeySelectorOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the Secret or its key must be defined- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SecretKeySelector-instance A.FromJSON V1SecretKeySelector where- parseJSON = A.withObject "V1SecretKeySelector" $ \o ->- V1SecretKeySelector- <$> (o .: "key")- <*> (o .:? "name")- <*> (o .:? "optional")---- | ToJSON V1SecretKeySelector-instance A.ToJSON V1SecretKeySelector where- toJSON V1SecretKeySelector {..} =- _omitNulls- [ "key" .= v1SecretKeySelectorKey- , "name" .= v1SecretKeySelectorName- , "optional" .= v1SecretKeySelectorOptional- ]----- | Construct a value of type 'V1SecretKeySelector' (by applying it's required fields, if any)-mkV1SecretKeySelector- :: Text -- ^ 'v1SecretKeySelectorKey': The key of the secret to select from. Must be a valid secret key.- -> V1SecretKeySelector-mkV1SecretKeySelector v1SecretKeySelectorKey =- V1SecretKeySelector- { v1SecretKeySelectorKey- , v1SecretKeySelectorName = Nothing- , v1SecretKeySelectorOptional = Nothing- }---- ** V1SecretList--- | V1SecretList--- SecretList is a list of Secret.-data V1SecretList = V1SecretList- { v1SecretListApiVersion :: !(Maybe Text) -- ^ "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- , v1SecretListItems :: !([V1Secret]) -- ^ /Required/ "items" - Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret- , v1SecretListKind :: !(Maybe Text) -- ^ "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- , v1SecretListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SecretList-instance A.FromJSON V1SecretList where- parseJSON = A.withObject "V1SecretList" $ \o ->- V1SecretList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1SecretList-instance A.ToJSON V1SecretList where- toJSON V1SecretList {..} =- _omitNulls- [ "apiVersion" .= v1SecretListApiVersion- , "items" .= v1SecretListItems- , "kind" .= v1SecretListKind- , "metadata" .= v1SecretListMetadata- ]----- | Construct a value of type 'V1SecretList' (by applying it's required fields, if any)-mkV1SecretList- :: [V1Secret] -- ^ 'v1SecretListItems': Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret- -> V1SecretList-mkV1SecretList v1SecretListItems =- V1SecretList- { v1SecretListApiVersion = Nothing- , v1SecretListItems- , v1SecretListKind = Nothing- , v1SecretListMetadata = Nothing- }---- ** V1SecretProjection--- | V1SecretProjection--- Adapts a secret into a projected volume. The contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.-data V1SecretProjection = V1SecretProjection- { v1SecretProjectionItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.- , v1SecretProjectionName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- , v1SecretProjectionOptional :: !(Maybe Bool) -- ^ "optional" - optional field specify whether the Secret or its key must be defined- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SecretProjection-instance A.FromJSON V1SecretProjection where- parseJSON = A.withObject "V1SecretProjection" $ \o ->- V1SecretProjection- <$> (o .:? "items")- <*> (o .:? "name")- <*> (o .:? "optional")---- | ToJSON V1SecretProjection-instance A.ToJSON V1SecretProjection where- toJSON V1SecretProjection {..} =- _omitNulls- [ "items" .= v1SecretProjectionItems- , "name" .= v1SecretProjectionName- , "optional" .= v1SecretProjectionOptional- ]----- | Construct a value of type 'V1SecretProjection' (by applying it's required fields, if any)-mkV1SecretProjection- :: V1SecretProjection-mkV1SecretProjection =- V1SecretProjection- { v1SecretProjectionItems = Nothing- , v1SecretProjectionName = Nothing- , v1SecretProjectionOptional = Nothing- }---- ** V1SecretReference--- | V1SecretReference--- SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace-data V1SecretReference = V1SecretReference- { v1SecretReferenceName :: !(Maybe Text) -- ^ "name" - name is unique within a namespace to reference a secret resource.- , v1SecretReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - namespace defines the space within which the secret name must be unique.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SecretReference-instance A.FromJSON V1SecretReference where- parseJSON = A.withObject "V1SecretReference" $ \o ->- V1SecretReference- <$> (o .:? "name")- <*> (o .:? "namespace")---- | ToJSON V1SecretReference-instance A.ToJSON V1SecretReference where- toJSON V1SecretReference {..} =- _omitNulls- [ "name" .= v1SecretReferenceName- , "namespace" .= v1SecretReferenceNamespace- ]----- | Construct a value of type 'V1SecretReference' (by applying it's required fields, if any)-mkV1SecretReference- :: V1SecretReference-mkV1SecretReference =- V1SecretReference- { v1SecretReferenceName = Nothing- , v1SecretReferenceNamespace = Nothing- }---- ** V1SecretVolumeSource--- | V1SecretVolumeSource--- Adapts a Secret into a volume. The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.-data V1SecretVolumeSource = V1SecretVolumeSource- { v1SecretVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.- , v1SecretVolumeSourceItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.- , v1SecretVolumeSourceOptional :: !(Maybe Bool) -- ^ "optional" - optional field specify whether the Secret or its keys must be defined- , v1SecretVolumeSourceSecretName :: !(Maybe Text) -- ^ "secretName" - secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SecretVolumeSource-instance A.FromJSON V1SecretVolumeSource where- parseJSON = A.withObject "V1SecretVolumeSource" $ \o ->- V1SecretVolumeSource- <$> (o .:? "defaultMode")- <*> (o .:? "items")- <*> (o .:? "optional")- <*> (o .:? "secretName")---- | ToJSON V1SecretVolumeSource-instance A.ToJSON V1SecretVolumeSource where- toJSON V1SecretVolumeSource {..} =- _omitNulls- [ "defaultMode" .= v1SecretVolumeSourceDefaultMode- , "items" .= v1SecretVolumeSourceItems- , "optional" .= v1SecretVolumeSourceOptional- , "secretName" .= v1SecretVolumeSourceSecretName- ]----- | Construct a value of type 'V1SecretVolumeSource' (by applying it's required fields, if any)-mkV1SecretVolumeSource- :: V1SecretVolumeSource-mkV1SecretVolumeSource =- V1SecretVolumeSource- { v1SecretVolumeSourceDefaultMode = Nothing- , v1SecretVolumeSourceItems = Nothing- , v1SecretVolumeSourceOptional = Nothing- , v1SecretVolumeSourceSecretName = Nothing- }---- ** V1SecurityContext--- | V1SecurityContext--- SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.-data V1SecurityContext = V1SecurityContext- { v1SecurityContextAllowPrivilegeEscalation :: !(Maybe Bool) -- ^ "allowPrivilegeEscalation" - AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.- , v1SecurityContextAppArmorProfile :: !(Maybe V1AppArmorProfile) -- ^ "appArmorProfile"- , v1SecurityContextCapabilities :: !(Maybe V1Capabilities) -- ^ "capabilities"- , v1SecurityContextPrivileged :: !(Maybe Bool) -- ^ "privileged" - Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.- , v1SecurityContextProcMount :: !(Maybe Text) -- ^ "procMount" - procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.- , v1SecurityContextReadOnlyRootFilesystem :: !(Maybe Bool) -- ^ "readOnlyRootFilesystem" - Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.- , v1SecurityContextRunAsGroup :: !(Maybe Integer) -- ^ "runAsGroup" - The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.- , v1SecurityContextRunAsNonRoot :: !(Maybe Bool) -- ^ "runAsNonRoot" - 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 PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.- , v1SecurityContextRunAsUser :: !(Maybe Integer) -- ^ "runAsUser" - The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.- , v1SecurityContextSeLinuxOptions :: !(Maybe V1SELinuxOptions) -- ^ "seLinuxOptions"- , v1SecurityContextSeccompProfile :: !(Maybe V1SeccompProfile) -- ^ "seccompProfile"- , v1SecurityContextWindowsOptions :: !(Maybe V1WindowsSecurityContextOptions) -- ^ "windowsOptions"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SecurityContext-instance A.FromJSON V1SecurityContext where- parseJSON = A.withObject "V1SecurityContext" $ \o ->- V1SecurityContext- <$> (o .:? "allowPrivilegeEscalation")- <*> (o .:? "appArmorProfile")- <*> (o .:? "capabilities")- <*> (o .:? "privileged")- <*> (o .:? "procMount")- <*> (o .:? "readOnlyRootFilesystem")- <*> (o .:? "runAsGroup")- <*> (o .:? "runAsNonRoot")- <*> (o .:? "runAsUser")- <*> (o .:? "seLinuxOptions")- <*> (o .:? "seccompProfile")- <*> (o .:? "windowsOptions")---- | ToJSON V1SecurityContext-instance A.ToJSON V1SecurityContext where- toJSON V1SecurityContext {..} =- _omitNulls- [ "allowPrivilegeEscalation" .= v1SecurityContextAllowPrivilegeEscalation- , "appArmorProfile" .= v1SecurityContextAppArmorProfile- , "capabilities" .= v1SecurityContextCapabilities- , "privileged" .= v1SecurityContextPrivileged- , "procMount" .= v1SecurityContextProcMount- , "readOnlyRootFilesystem" .= v1SecurityContextReadOnlyRootFilesystem- , "runAsGroup" .= v1SecurityContextRunAsGroup- , "runAsNonRoot" .= v1SecurityContextRunAsNonRoot- , "runAsUser" .= v1SecurityContextRunAsUser- , "seLinuxOptions" .= v1SecurityContextSeLinuxOptions- , "seccompProfile" .= v1SecurityContextSeccompProfile- , "windowsOptions" .= v1SecurityContextWindowsOptions- ]----- | Construct a value of type 'V1SecurityContext' (by applying it's required fields, if any)-mkV1SecurityContext- :: V1SecurityContext-mkV1SecurityContext =- V1SecurityContext- { v1SecurityContextAllowPrivilegeEscalation = Nothing- , v1SecurityContextAppArmorProfile = Nothing- , v1SecurityContextCapabilities = Nothing- , v1SecurityContextPrivileged = Nothing- , v1SecurityContextProcMount = Nothing- , v1SecurityContextReadOnlyRootFilesystem = Nothing- , v1SecurityContextRunAsGroup = Nothing- , v1SecurityContextRunAsNonRoot = Nothing- , v1SecurityContextRunAsUser = Nothing- , v1SecurityContextSeLinuxOptions = Nothing- , v1SecurityContextSeccompProfile = Nothing- , v1SecurityContextWindowsOptions = Nothing- }---- ** V1SelectableField--- | V1SelectableField--- SelectableField specifies the JSON path of a field that may be used with field selectors.-data V1SelectableField = V1SelectableField- { v1SelectableFieldJsonPath :: !(Text) -- ^ /Required/ "jsonPath" - jsonPath is a simple JSON path which is evaluated against each custom resource to produce a field selector value. Only JSON paths without the array notation are allowed. Must point to a field of type string, boolean or integer. Types with enum values and strings with formats are allowed. If jsonPath refers to absent field in a resource, the jsonPath evaluates to an empty string. Must not point to metdata fields. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SelectableField-instance A.FromJSON V1SelectableField where- parseJSON = A.withObject "V1SelectableField" $ \o ->- V1SelectableField- <$> (o .: "jsonPath")---- | ToJSON V1SelectableField-instance A.ToJSON V1SelectableField where- toJSON V1SelectableField {..} =- _omitNulls- [ "jsonPath" .= v1SelectableFieldJsonPath- ]----- | Construct a value of type 'V1SelectableField' (by applying it's required fields, if any)-mkV1SelectableField- :: Text -- ^ 'v1SelectableFieldJsonPath': jsonPath is a simple JSON path which is evaluated against each custom resource to produce a field selector value. Only JSON paths without the array notation are allowed. Must point to a field of type string, boolean or integer. Types with enum values and strings with formats are allowed. If jsonPath refers to absent field in a resource, the jsonPath evaluates to an empty string. Must not point to metdata fields. Required.- -> V1SelectableField-mkV1SelectableField v1SelectableFieldJsonPath =- V1SelectableField- { v1SelectableFieldJsonPath- }---- ** V1SelfSubjectAccessReview--- | V1SelfSubjectAccessReview--- SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action-data V1SelfSubjectAccessReview = V1SelfSubjectAccessReview- { v1SelfSubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "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- , v1SelfSubjectAccessReviewKind :: !(Maybe Text) -- ^ "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- , v1SelfSubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1SelfSubjectAccessReviewSpec :: !(V1SelfSubjectAccessReviewSpec) -- ^ /Required/ "spec"- , v1SelfSubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SelfSubjectAccessReview-instance A.FromJSON V1SelfSubjectAccessReview where- parseJSON = A.withObject "V1SelfSubjectAccessReview" $ \o ->- V1SelfSubjectAccessReview- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1SelfSubjectAccessReview-instance A.ToJSON V1SelfSubjectAccessReview where- toJSON V1SelfSubjectAccessReview {..} =- _omitNulls- [ "apiVersion" .= v1SelfSubjectAccessReviewApiVersion- , "kind" .= v1SelfSubjectAccessReviewKind- , "metadata" .= v1SelfSubjectAccessReviewMetadata- , "spec" .= v1SelfSubjectAccessReviewSpec- , "status" .= v1SelfSubjectAccessReviewStatus- ]----- | Construct a value of type 'V1SelfSubjectAccessReview' (by applying it's required fields, if any)-mkV1SelfSubjectAccessReview- :: V1SelfSubjectAccessReviewSpec -- ^ 'v1SelfSubjectAccessReviewSpec' - -> V1SelfSubjectAccessReview-mkV1SelfSubjectAccessReview v1SelfSubjectAccessReviewSpec =- V1SelfSubjectAccessReview- { v1SelfSubjectAccessReviewApiVersion = Nothing- , v1SelfSubjectAccessReviewKind = Nothing- , v1SelfSubjectAccessReviewMetadata = Nothing- , v1SelfSubjectAccessReviewSpec- , v1SelfSubjectAccessReviewStatus = Nothing- }---- ** V1SelfSubjectAccessReviewSpec--- | V1SelfSubjectAccessReviewSpec--- SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set-data V1SelfSubjectAccessReviewSpec = V1SelfSubjectAccessReviewSpec- { v1SelfSubjectAccessReviewSpecNonResourceAttributes :: !(Maybe V1NonResourceAttributes) -- ^ "nonResourceAttributes"- , v1SelfSubjectAccessReviewSpecResourceAttributes :: !(Maybe V1ResourceAttributes) -- ^ "resourceAttributes"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SelfSubjectAccessReviewSpec-instance A.FromJSON V1SelfSubjectAccessReviewSpec where- parseJSON = A.withObject "V1SelfSubjectAccessReviewSpec" $ \o ->- V1SelfSubjectAccessReviewSpec- <$> (o .:? "nonResourceAttributes")- <*> (o .:? "resourceAttributes")---- | ToJSON V1SelfSubjectAccessReviewSpec-instance A.ToJSON V1SelfSubjectAccessReviewSpec where- toJSON V1SelfSubjectAccessReviewSpec {..} =- _omitNulls- [ "nonResourceAttributes" .= v1SelfSubjectAccessReviewSpecNonResourceAttributes- , "resourceAttributes" .= v1SelfSubjectAccessReviewSpecResourceAttributes- ]----- | Construct a value of type 'V1SelfSubjectAccessReviewSpec' (by applying it's required fields, if any)-mkV1SelfSubjectAccessReviewSpec- :: V1SelfSubjectAccessReviewSpec-mkV1SelfSubjectAccessReviewSpec =- V1SelfSubjectAccessReviewSpec- { v1SelfSubjectAccessReviewSpecNonResourceAttributes = Nothing- , v1SelfSubjectAccessReviewSpecResourceAttributes = Nothing- }---- ** V1SelfSubjectReview--- | V1SelfSubjectReview--- 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.-data V1SelfSubjectReview = V1SelfSubjectReview- { v1SelfSubjectReviewApiVersion :: !(Maybe Text) -- ^ "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- , v1SelfSubjectReviewKind :: !(Maybe Text) -- ^ "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- , v1SelfSubjectReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1SelfSubjectReviewStatus :: !(Maybe V1SelfSubjectReviewStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SelfSubjectReview-instance A.FromJSON V1SelfSubjectReview where- parseJSON = A.withObject "V1SelfSubjectReview" $ \o ->- V1SelfSubjectReview- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "status")---- | ToJSON V1SelfSubjectReview-instance A.ToJSON V1SelfSubjectReview where- toJSON V1SelfSubjectReview {..} =- _omitNulls- [ "apiVersion" .= v1SelfSubjectReviewApiVersion- , "kind" .= v1SelfSubjectReviewKind- , "metadata" .= v1SelfSubjectReviewMetadata- , "status" .= v1SelfSubjectReviewStatus- ]----- | Construct a value of type 'V1SelfSubjectReview' (by applying it's required fields, if any)-mkV1SelfSubjectReview- :: V1SelfSubjectReview-mkV1SelfSubjectReview =- V1SelfSubjectReview- { v1SelfSubjectReviewApiVersion = Nothing- , v1SelfSubjectReviewKind = Nothing- , v1SelfSubjectReviewMetadata = Nothing- , v1SelfSubjectReviewStatus = Nothing- }---- ** V1SelfSubjectReviewStatus--- | V1SelfSubjectReviewStatus--- SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.-data V1SelfSubjectReviewStatus = V1SelfSubjectReviewStatus- { v1SelfSubjectReviewStatusUserInfo :: !(Maybe V1UserInfo) -- ^ "userInfo"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SelfSubjectReviewStatus-instance A.FromJSON V1SelfSubjectReviewStatus where- parseJSON = A.withObject "V1SelfSubjectReviewStatus" $ \o ->- V1SelfSubjectReviewStatus- <$> (o .:? "userInfo")---- | ToJSON V1SelfSubjectReviewStatus-instance A.ToJSON V1SelfSubjectReviewStatus where- toJSON V1SelfSubjectReviewStatus {..} =- _omitNulls- [ "userInfo" .= v1SelfSubjectReviewStatusUserInfo- ]----- | Construct a value of type 'V1SelfSubjectReviewStatus' (by applying it's required fields, if any)-mkV1SelfSubjectReviewStatus- :: V1SelfSubjectReviewStatus-mkV1SelfSubjectReviewStatus =- V1SelfSubjectReviewStatus- { v1SelfSubjectReviewStatusUserInfo = Nothing- }---- ** V1SelfSubjectRulesReview--- | V1SelfSubjectRulesReview--- SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.-data V1SelfSubjectRulesReview = V1SelfSubjectRulesReview- { v1SelfSubjectRulesReviewApiVersion :: !(Maybe Text) -- ^ "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- , v1SelfSubjectRulesReviewKind :: !(Maybe Text) -- ^ "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- , v1SelfSubjectRulesReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1SelfSubjectRulesReviewSpec :: !(V1SelfSubjectRulesReviewSpec) -- ^ /Required/ "spec"- , v1SelfSubjectRulesReviewStatus :: !(Maybe V1SubjectRulesReviewStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SelfSubjectRulesReview-instance A.FromJSON V1SelfSubjectRulesReview where- parseJSON = A.withObject "V1SelfSubjectRulesReview" $ \o ->- V1SelfSubjectRulesReview- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1SelfSubjectRulesReview-instance A.ToJSON V1SelfSubjectRulesReview where- toJSON V1SelfSubjectRulesReview {..} =- _omitNulls- [ "apiVersion" .= v1SelfSubjectRulesReviewApiVersion- , "kind" .= v1SelfSubjectRulesReviewKind- , "metadata" .= v1SelfSubjectRulesReviewMetadata- , "spec" .= v1SelfSubjectRulesReviewSpec- , "status" .= v1SelfSubjectRulesReviewStatus- ]----- | Construct a value of type 'V1SelfSubjectRulesReview' (by applying it's required fields, if any)-mkV1SelfSubjectRulesReview- :: V1SelfSubjectRulesReviewSpec -- ^ 'v1SelfSubjectRulesReviewSpec' - -> V1SelfSubjectRulesReview-mkV1SelfSubjectRulesReview v1SelfSubjectRulesReviewSpec =- V1SelfSubjectRulesReview- { v1SelfSubjectRulesReviewApiVersion = Nothing- , v1SelfSubjectRulesReviewKind = Nothing- , v1SelfSubjectRulesReviewMetadata = Nothing- , v1SelfSubjectRulesReviewSpec- , v1SelfSubjectRulesReviewStatus = Nothing- }---- ** V1SelfSubjectRulesReviewSpec--- | V1SelfSubjectRulesReviewSpec--- SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.-data V1SelfSubjectRulesReviewSpec = V1SelfSubjectRulesReviewSpec- { v1SelfSubjectRulesReviewSpecNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace to evaluate rules for. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SelfSubjectRulesReviewSpec-instance A.FromJSON V1SelfSubjectRulesReviewSpec where- parseJSON = A.withObject "V1SelfSubjectRulesReviewSpec" $ \o ->- V1SelfSubjectRulesReviewSpec- <$> (o .:? "namespace")---- | ToJSON V1SelfSubjectRulesReviewSpec-instance A.ToJSON V1SelfSubjectRulesReviewSpec where- toJSON V1SelfSubjectRulesReviewSpec {..} =- _omitNulls- [ "namespace" .= v1SelfSubjectRulesReviewSpecNamespace- ]----- | Construct a value of type 'V1SelfSubjectRulesReviewSpec' (by applying it's required fields, if any)-mkV1SelfSubjectRulesReviewSpec- :: V1SelfSubjectRulesReviewSpec-mkV1SelfSubjectRulesReviewSpec =- V1SelfSubjectRulesReviewSpec- { v1SelfSubjectRulesReviewSpecNamespace = Nothing- }---- ** V1ServerAddressByClientCIDR--- | V1ServerAddressByClientCIDR--- ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.-data V1ServerAddressByClientCIDR = V1ServerAddressByClientCIDR- { v1ServerAddressByClientCIDRClientCidr :: !(Text) -- ^ /Required/ "clientCIDR" - The CIDR with which clients can match their IP to figure out the server address that they should use.- , v1ServerAddressByClientCIDRServerAddress :: !(Text) -- ^ /Required/ "serverAddress" - Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServerAddressByClientCIDR-instance A.FromJSON V1ServerAddressByClientCIDR where- parseJSON = A.withObject "V1ServerAddressByClientCIDR" $ \o ->- V1ServerAddressByClientCIDR- <$> (o .: "clientCIDR")- <*> (o .: "serverAddress")---- | ToJSON V1ServerAddressByClientCIDR-instance A.ToJSON V1ServerAddressByClientCIDR where- toJSON V1ServerAddressByClientCIDR {..} =- _omitNulls- [ "clientCIDR" .= v1ServerAddressByClientCIDRClientCidr- , "serverAddress" .= v1ServerAddressByClientCIDRServerAddress- ]----- | Construct a value of type 'V1ServerAddressByClientCIDR' (by applying it's required fields, if any)-mkV1ServerAddressByClientCIDR- :: Text -- ^ 'v1ServerAddressByClientCIDRClientCidr': The CIDR with which clients can match their IP to figure out the server address that they should use.- -> Text -- ^ 'v1ServerAddressByClientCIDRServerAddress': Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.- -> V1ServerAddressByClientCIDR-mkV1ServerAddressByClientCIDR v1ServerAddressByClientCIDRClientCidr v1ServerAddressByClientCIDRServerAddress =- V1ServerAddressByClientCIDR- { v1ServerAddressByClientCIDRClientCidr- , v1ServerAddressByClientCIDRServerAddress- }---- ** V1Service--- | V1Service--- Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.-data V1Service = V1Service- { v1ServiceApiVersion :: !(Maybe Text) -- ^ "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- , v1ServiceKind :: !(Maybe Text) -- ^ "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- , v1ServiceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ServiceSpec :: !(Maybe V1ServiceSpec) -- ^ "spec"- , v1ServiceStatus :: !(Maybe V1ServiceStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Service-instance A.FromJSON V1Service where- parseJSON = A.withObject "V1Service" $ \o ->- V1Service- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1Service-instance A.ToJSON V1Service where- toJSON V1Service {..} =- _omitNulls- [ "apiVersion" .= v1ServiceApiVersion- , "kind" .= v1ServiceKind- , "metadata" .= v1ServiceMetadata- , "spec" .= v1ServiceSpec- , "status" .= v1ServiceStatus- ]----- | Construct a value of type 'V1Service' (by applying it's required fields, if any)-mkV1Service- :: V1Service-mkV1Service =- V1Service- { v1ServiceApiVersion = Nothing- , v1ServiceKind = Nothing- , v1ServiceMetadata = Nothing- , v1ServiceSpec = Nothing- , v1ServiceStatus = Nothing- }---- ** V1ServiceAccount--- | V1ServiceAccount--- ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets-data V1ServiceAccount = V1ServiceAccount- { v1ServiceAccountApiVersion :: !(Maybe Text) -- ^ "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- , v1ServiceAccountAutomountServiceAccountToken :: !(Maybe Bool) -- ^ "automountServiceAccountToken" - AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.- , v1ServiceAccountImagePullSecrets :: !(Maybe [V1LocalObjectReference]) -- ^ "imagePullSecrets" - 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- , v1ServiceAccountKind :: !(Maybe Text) -- ^ "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- , v1ServiceAccountMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ServiceAccountSecrets :: !(Maybe [V1ObjectReference]) -- ^ "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- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceAccount-instance A.FromJSON V1ServiceAccount where- parseJSON = A.withObject "V1ServiceAccount" $ \o ->- V1ServiceAccount- <$> (o .:? "apiVersion")- <*> (o .:? "automountServiceAccountToken")- <*> (o .:? "imagePullSecrets")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "secrets")---- | ToJSON V1ServiceAccount-instance A.ToJSON V1ServiceAccount where- toJSON V1ServiceAccount {..} =- _omitNulls- [ "apiVersion" .= v1ServiceAccountApiVersion- , "automountServiceAccountToken" .= v1ServiceAccountAutomountServiceAccountToken- , "imagePullSecrets" .= v1ServiceAccountImagePullSecrets- , "kind" .= v1ServiceAccountKind- , "metadata" .= v1ServiceAccountMetadata- , "secrets" .= v1ServiceAccountSecrets- ]----- | Construct a value of type 'V1ServiceAccount' (by applying it's required fields, if any)-mkV1ServiceAccount- :: V1ServiceAccount-mkV1ServiceAccount =- V1ServiceAccount- { v1ServiceAccountApiVersion = Nothing- , v1ServiceAccountAutomountServiceAccountToken = Nothing- , v1ServiceAccountImagePullSecrets = Nothing- , v1ServiceAccountKind = Nothing- , v1ServiceAccountMetadata = Nothing- , v1ServiceAccountSecrets = Nothing- }---- ** V1ServiceAccountList--- | V1ServiceAccountList--- ServiceAccountList is a list of ServiceAccount objects-data V1ServiceAccountList = V1ServiceAccountList- { v1ServiceAccountListApiVersion :: !(Maybe Text) -- ^ "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- , v1ServiceAccountListItems :: !([V1ServiceAccount]) -- ^ /Required/ "items" - List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/- , v1ServiceAccountListKind :: !(Maybe Text) -- ^ "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- , v1ServiceAccountListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceAccountList-instance A.FromJSON V1ServiceAccountList where- parseJSON = A.withObject "V1ServiceAccountList" $ \o ->- V1ServiceAccountList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ServiceAccountList-instance A.ToJSON V1ServiceAccountList where- toJSON V1ServiceAccountList {..} =- _omitNulls- [ "apiVersion" .= v1ServiceAccountListApiVersion- , "items" .= v1ServiceAccountListItems- , "kind" .= v1ServiceAccountListKind- , "metadata" .= v1ServiceAccountListMetadata- ]----- | Construct a value of type 'V1ServiceAccountList' (by applying it's required fields, if any)-mkV1ServiceAccountList- :: [V1ServiceAccount] -- ^ 'v1ServiceAccountListItems': List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/- -> V1ServiceAccountList-mkV1ServiceAccountList v1ServiceAccountListItems =- V1ServiceAccountList- { v1ServiceAccountListApiVersion = Nothing- , v1ServiceAccountListItems- , v1ServiceAccountListKind = Nothing- , v1ServiceAccountListMetadata = Nothing- }---- ** V1ServiceAccountSubject--- | V1ServiceAccountSubject--- ServiceAccountSubject holds detailed information for service-account-kind subject.-data V1ServiceAccountSubject = V1ServiceAccountSubject- { v1ServiceAccountSubjectName :: !(Text) -- ^ /Required/ "name" - `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.- , v1ServiceAccountSubjectNamespace :: !(Text) -- ^ /Required/ "namespace" - `namespace` is the namespace of matching ServiceAccount objects. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceAccountSubject-instance A.FromJSON V1ServiceAccountSubject where- parseJSON = A.withObject "V1ServiceAccountSubject" $ \o ->- V1ServiceAccountSubject- <$> (o .: "name")- <*> (o .: "namespace")---- | ToJSON V1ServiceAccountSubject-instance A.ToJSON V1ServiceAccountSubject where- toJSON V1ServiceAccountSubject {..} =- _omitNulls- [ "name" .= v1ServiceAccountSubjectName- , "namespace" .= v1ServiceAccountSubjectNamespace- ]----- | Construct a value of type 'V1ServiceAccountSubject' (by applying it's required fields, if any)-mkV1ServiceAccountSubject- :: Text -- ^ 'v1ServiceAccountSubjectName': `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.- -> Text -- ^ 'v1ServiceAccountSubjectNamespace': `namespace` is the namespace of matching ServiceAccount objects. Required.- -> V1ServiceAccountSubject-mkV1ServiceAccountSubject v1ServiceAccountSubjectName v1ServiceAccountSubjectNamespace =- V1ServiceAccountSubject- { v1ServiceAccountSubjectName- , v1ServiceAccountSubjectNamespace- }---- ** V1ServiceAccountTokenProjection--- | V1ServiceAccountTokenProjection--- ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).-data V1ServiceAccountTokenProjection = V1ServiceAccountTokenProjection- { v1ServiceAccountTokenProjectionAudience :: !(Maybe Text) -- ^ "audience" - audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.- , v1ServiceAccountTokenProjectionExpirationSeconds :: !(Maybe Integer) -- ^ "expirationSeconds" - expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.- , v1ServiceAccountTokenProjectionPath :: !(Text) -- ^ /Required/ "path" - path is the path relative to the mount point of the file to project the token into.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceAccountTokenProjection-instance A.FromJSON V1ServiceAccountTokenProjection where- parseJSON = A.withObject "V1ServiceAccountTokenProjection" $ \o ->- V1ServiceAccountTokenProjection- <$> (o .:? "audience")- <*> (o .:? "expirationSeconds")- <*> (o .: "path")---- | ToJSON V1ServiceAccountTokenProjection-instance A.ToJSON V1ServiceAccountTokenProjection where- toJSON V1ServiceAccountTokenProjection {..} =- _omitNulls- [ "audience" .= v1ServiceAccountTokenProjectionAudience- , "expirationSeconds" .= v1ServiceAccountTokenProjectionExpirationSeconds- , "path" .= v1ServiceAccountTokenProjectionPath- ]----- | Construct a value of type 'V1ServiceAccountTokenProjection' (by applying it's required fields, if any)-mkV1ServiceAccountTokenProjection- :: Text -- ^ 'v1ServiceAccountTokenProjectionPath': path is the path relative to the mount point of the file to project the token into.- -> V1ServiceAccountTokenProjection-mkV1ServiceAccountTokenProjection v1ServiceAccountTokenProjectionPath =- V1ServiceAccountTokenProjection- { v1ServiceAccountTokenProjectionAudience = Nothing- , v1ServiceAccountTokenProjectionExpirationSeconds = Nothing- , v1ServiceAccountTokenProjectionPath- }---- ** V1ServiceBackendPort--- | V1ServiceBackendPort--- ServiceBackendPort is the service port being referenced.-data V1ServiceBackendPort = V1ServiceBackendPort- { v1ServiceBackendPortName :: !(Maybe Text) -- ^ "name" - name is the name of the port on the Service. This is a mutually exclusive setting with \"Number\".- , v1ServiceBackendPortNumber :: !(Maybe Int) -- ^ "number" - number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \"Name\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceBackendPort-instance A.FromJSON V1ServiceBackendPort where- parseJSON = A.withObject "V1ServiceBackendPort" $ \o ->- V1ServiceBackendPort- <$> (o .:? "name")- <*> (o .:? "number")---- | ToJSON V1ServiceBackendPort-instance A.ToJSON V1ServiceBackendPort where- toJSON V1ServiceBackendPort {..} =- _omitNulls- [ "name" .= v1ServiceBackendPortName- , "number" .= v1ServiceBackendPortNumber- ]----- | Construct a value of type 'V1ServiceBackendPort' (by applying it's required fields, if any)-mkV1ServiceBackendPort- :: V1ServiceBackendPort-mkV1ServiceBackendPort =- V1ServiceBackendPort- { v1ServiceBackendPortName = Nothing- , v1ServiceBackendPortNumber = Nothing- }---- ** V1ServiceCIDR--- | V1ServiceCIDR--- ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.-data V1ServiceCIDR = V1ServiceCIDR- { v1ServiceCIDRApiVersion :: !(Maybe Text) -- ^ "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- , v1ServiceCIDRKind :: !(Maybe Text) -- ^ "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- , v1ServiceCIDRMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ServiceCIDRSpec :: !(Maybe V1ServiceCIDRSpec) -- ^ "spec"- , v1ServiceCIDRStatus :: !(Maybe V1ServiceCIDRStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceCIDR-instance A.FromJSON V1ServiceCIDR where- parseJSON = A.withObject "V1ServiceCIDR" $ \o ->- V1ServiceCIDR- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1ServiceCIDR-instance A.ToJSON V1ServiceCIDR where- toJSON V1ServiceCIDR {..} =- _omitNulls- [ "apiVersion" .= v1ServiceCIDRApiVersion- , "kind" .= v1ServiceCIDRKind- , "metadata" .= v1ServiceCIDRMetadata- , "spec" .= v1ServiceCIDRSpec- , "status" .= v1ServiceCIDRStatus- ]----- | Construct a value of type 'V1ServiceCIDR' (by applying it's required fields, if any)-mkV1ServiceCIDR- :: V1ServiceCIDR-mkV1ServiceCIDR =- V1ServiceCIDR- { v1ServiceCIDRApiVersion = Nothing- , v1ServiceCIDRKind = Nothing- , v1ServiceCIDRMetadata = Nothing- , v1ServiceCIDRSpec = Nothing- , v1ServiceCIDRStatus = Nothing- }---- ** V1ServiceCIDRList--- | V1ServiceCIDRList--- ServiceCIDRList contains a list of ServiceCIDR objects.-data V1ServiceCIDRList = V1ServiceCIDRList- { v1ServiceCIDRListApiVersion :: !(Maybe Text) -- ^ "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- , v1ServiceCIDRListItems :: !([V1ServiceCIDR]) -- ^ /Required/ "items" - items is the list of ServiceCIDRs.- , v1ServiceCIDRListKind :: !(Maybe Text) -- ^ "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- , v1ServiceCIDRListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceCIDRList-instance A.FromJSON V1ServiceCIDRList where- parseJSON = A.withObject "V1ServiceCIDRList" $ \o ->- V1ServiceCIDRList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ServiceCIDRList-instance A.ToJSON V1ServiceCIDRList where- toJSON V1ServiceCIDRList {..} =- _omitNulls- [ "apiVersion" .= v1ServiceCIDRListApiVersion- , "items" .= v1ServiceCIDRListItems- , "kind" .= v1ServiceCIDRListKind- , "metadata" .= v1ServiceCIDRListMetadata- ]----- | Construct a value of type 'V1ServiceCIDRList' (by applying it's required fields, if any)-mkV1ServiceCIDRList- :: [V1ServiceCIDR] -- ^ 'v1ServiceCIDRListItems': items is the list of ServiceCIDRs.- -> V1ServiceCIDRList-mkV1ServiceCIDRList v1ServiceCIDRListItems =- V1ServiceCIDRList- { v1ServiceCIDRListApiVersion = Nothing- , v1ServiceCIDRListItems- , v1ServiceCIDRListKind = Nothing- , v1ServiceCIDRListMetadata = Nothing- }---- ** V1ServiceCIDRSpec--- | V1ServiceCIDRSpec--- ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.-data V1ServiceCIDRSpec = V1ServiceCIDRSpec- { v1ServiceCIDRSpecCidrs :: !(Maybe [Text]) -- ^ "cidrs" - CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceCIDRSpec-instance A.FromJSON V1ServiceCIDRSpec where- parseJSON = A.withObject "V1ServiceCIDRSpec" $ \o ->- V1ServiceCIDRSpec- <$> (o .:? "cidrs")---- | ToJSON V1ServiceCIDRSpec-instance A.ToJSON V1ServiceCIDRSpec where- toJSON V1ServiceCIDRSpec {..} =- _omitNulls- [ "cidrs" .= v1ServiceCIDRSpecCidrs- ]----- | Construct a value of type 'V1ServiceCIDRSpec' (by applying it's required fields, if any)-mkV1ServiceCIDRSpec- :: V1ServiceCIDRSpec-mkV1ServiceCIDRSpec =- V1ServiceCIDRSpec- { v1ServiceCIDRSpecCidrs = Nothing- }---- ** V1ServiceCIDRStatus--- | V1ServiceCIDRStatus--- ServiceCIDRStatus describes the current state of the ServiceCIDR.-data V1ServiceCIDRStatus = V1ServiceCIDRStatus- { v1ServiceCIDRStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceCIDRStatus-instance A.FromJSON V1ServiceCIDRStatus where- parseJSON = A.withObject "V1ServiceCIDRStatus" $ \o ->- V1ServiceCIDRStatus- <$> (o .:? "conditions")---- | ToJSON V1ServiceCIDRStatus-instance A.ToJSON V1ServiceCIDRStatus where- toJSON V1ServiceCIDRStatus {..} =- _omitNulls- [ "conditions" .= v1ServiceCIDRStatusConditions- ]----- | Construct a value of type 'V1ServiceCIDRStatus' (by applying it's required fields, if any)-mkV1ServiceCIDRStatus- :: V1ServiceCIDRStatus-mkV1ServiceCIDRStatus =- V1ServiceCIDRStatus- { v1ServiceCIDRStatusConditions = Nothing- }---- ** V1ServiceList--- | V1ServiceList--- ServiceList holds a list of services.-data V1ServiceList = V1ServiceList- { v1ServiceListApiVersion :: !(Maybe Text) -- ^ "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- , v1ServiceListItems :: !([V1Service]) -- ^ /Required/ "items" - List of services- , v1ServiceListKind :: !(Maybe Text) -- ^ "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- , v1ServiceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceList-instance A.FromJSON V1ServiceList where- parseJSON = A.withObject "V1ServiceList" $ \o ->- V1ServiceList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ServiceList-instance A.ToJSON V1ServiceList where- toJSON V1ServiceList {..} =- _omitNulls- [ "apiVersion" .= v1ServiceListApiVersion- , "items" .= v1ServiceListItems- , "kind" .= v1ServiceListKind- , "metadata" .= v1ServiceListMetadata- ]----- | Construct a value of type 'V1ServiceList' (by applying it's required fields, if any)-mkV1ServiceList- :: [V1Service] -- ^ 'v1ServiceListItems': List of services- -> V1ServiceList-mkV1ServiceList v1ServiceListItems =- V1ServiceList- { v1ServiceListApiVersion = Nothing- , v1ServiceListItems- , v1ServiceListKind = Nothing- , v1ServiceListMetadata = Nothing- }---- ** V1ServicePort--- | V1ServicePort--- ServicePort contains information on service's port.-data V1ServicePort = V1ServicePort- { v1ServicePortAppProtocol :: !(Maybe Text) -- ^ "appProtocol" - The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.- , v1ServicePortName :: !(Maybe Text) -- ^ "name" - The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.- , v1ServicePortNodePort :: !(Maybe Int) -- ^ "nodePort" - The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport- , v1ServicePortPort :: !(Int) -- ^ /Required/ "port" - The port that will be exposed by this service.- , v1ServicePortProtocol :: !(Maybe Text) -- ^ "protocol" - The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.- , v1ServicePortTargetPort :: !(Maybe IntOrString) -- ^ "targetPort"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServicePort-instance A.FromJSON V1ServicePort where- parseJSON = A.withObject "V1ServicePort" $ \o ->- V1ServicePort- <$> (o .:? "appProtocol")- <*> (o .:? "name")- <*> (o .:? "nodePort")- <*> (o .: "port")- <*> (o .:? "protocol")- <*> (o .:? "targetPort")---- | ToJSON V1ServicePort-instance A.ToJSON V1ServicePort where- toJSON V1ServicePort {..} =- _omitNulls- [ "appProtocol" .= v1ServicePortAppProtocol- , "name" .= v1ServicePortName- , "nodePort" .= v1ServicePortNodePort- , "port" .= v1ServicePortPort- , "protocol" .= v1ServicePortProtocol- , "targetPort" .= v1ServicePortTargetPort- ]----- | Construct a value of type 'V1ServicePort' (by applying it's required fields, if any)-mkV1ServicePort- :: Int -- ^ 'v1ServicePortPort': The port that will be exposed by this service.- -> V1ServicePort-mkV1ServicePort v1ServicePortPort =- V1ServicePort- { v1ServicePortAppProtocol = Nothing- , v1ServicePortName = Nothing- , v1ServicePortNodePort = Nothing- , v1ServicePortPort- , v1ServicePortProtocol = Nothing- , v1ServicePortTargetPort = Nothing- }---- ** V1ServiceSpec--- | V1ServiceSpec--- ServiceSpec describes the attributes that a user creates on a service.-data V1ServiceSpec = V1ServiceSpec- { v1ServiceSpecAllocateLoadBalancerNodePorts :: !(Maybe Bool) -- ^ "allocateLoadBalancerNodePorts" - allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.- , v1ServiceSpecClusterIp :: !(Maybe Text) -- ^ "clusterIP" - clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies- , v1ServiceSpecClusterIps :: !(Maybe [Text]) -- ^ "clusterIPs" - ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value. This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies- , v1ServiceSpecExternalIps :: !(Maybe [Text]) -- ^ "externalIPs" - externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.- , v1ServiceSpecExternalName :: !(Maybe Text) -- ^ "externalName" - externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".- , v1ServiceSpecExternalTrafficPolicy :: !(Maybe Text) -- ^ "externalTrafficPolicy" - externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.- , v1ServiceSpecHealthCheckNodePort :: !(Maybe Int) -- ^ "healthCheckNodePort" - healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.- , v1ServiceSpecInternalTrafficPolicy :: !(Maybe Text) -- ^ "internalTrafficPolicy" - InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).- , v1ServiceSpecIpFamilies :: !(Maybe [Text]) -- ^ "ipFamilies" - IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName. This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.- , v1ServiceSpecIpFamilyPolicy :: !(Maybe Text) -- ^ "ipFamilyPolicy" - IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.- , v1ServiceSpecLoadBalancerClass :: !(Maybe Text) -- ^ "loadBalancerClass" - loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.- , v1ServiceSpecLoadBalancerIp :: !(Maybe Text) -- ^ "loadBalancerIP" - Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.- , v1ServiceSpecLoadBalancerSourceRanges :: !(Maybe [Text]) -- ^ "loadBalancerSourceRanges" - If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/- , v1ServiceSpecPorts :: !(Maybe [V1ServicePort]) -- ^ "ports" - The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies- , v1ServiceSpecPublishNotReadyAddresses :: !(Maybe Bool) -- ^ "publishNotReadyAddresses" - publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.- , v1ServiceSpecSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/- , v1ServiceSpecSessionAffinity :: !(Maybe Text) -- ^ "sessionAffinity" - 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- , v1ServiceSpecSessionAffinityConfig :: !(Maybe V1SessionAffinityConfig) -- ^ "sessionAffinityConfig"- , v1ServiceSpecTrafficDistribution :: !(Maybe Text) -- ^ "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 in the same zone.- , v1ServiceSpecType :: !(Maybe Text) -- ^ "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- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceSpec-instance A.FromJSON V1ServiceSpec where- parseJSON = A.withObject "V1ServiceSpec" $ \o ->- V1ServiceSpec- <$> (o .:? "allocateLoadBalancerNodePorts")- <*> (o .:? "clusterIP")- <*> (o .:? "clusterIPs")- <*> (o .:? "externalIPs")- <*> (o .:? "externalName")- <*> (o .:? "externalTrafficPolicy")- <*> (o .:? "healthCheckNodePort")- <*> (o .:? "internalTrafficPolicy")- <*> (o .:? "ipFamilies")- <*> (o .:? "ipFamilyPolicy")- <*> (o .:? "loadBalancerClass")- <*> (o .:? "loadBalancerIP")- <*> (o .:? "loadBalancerSourceRanges")- <*> (o .:? "ports")- <*> (o .:? "publishNotReadyAddresses")- <*> (o .:? "selector")- <*> (o .:? "sessionAffinity")- <*> (o .:? "sessionAffinityConfig")- <*> (o .:? "trafficDistribution")- <*> (o .:? "type")---- | ToJSON V1ServiceSpec-instance A.ToJSON V1ServiceSpec where- toJSON V1ServiceSpec {..} =- _omitNulls- [ "allocateLoadBalancerNodePorts" .= v1ServiceSpecAllocateLoadBalancerNodePorts- , "clusterIP" .= v1ServiceSpecClusterIp- , "clusterIPs" .= v1ServiceSpecClusterIps- , "externalIPs" .= v1ServiceSpecExternalIps- , "externalName" .= v1ServiceSpecExternalName- , "externalTrafficPolicy" .= v1ServiceSpecExternalTrafficPolicy- , "healthCheckNodePort" .= v1ServiceSpecHealthCheckNodePort- , "internalTrafficPolicy" .= v1ServiceSpecInternalTrafficPolicy- , "ipFamilies" .= v1ServiceSpecIpFamilies- , "ipFamilyPolicy" .= v1ServiceSpecIpFamilyPolicy- , "loadBalancerClass" .= v1ServiceSpecLoadBalancerClass- , "loadBalancerIP" .= v1ServiceSpecLoadBalancerIp- , "loadBalancerSourceRanges" .= v1ServiceSpecLoadBalancerSourceRanges- , "ports" .= v1ServiceSpecPorts- , "publishNotReadyAddresses" .= v1ServiceSpecPublishNotReadyAddresses- , "selector" .= v1ServiceSpecSelector- , "sessionAffinity" .= v1ServiceSpecSessionAffinity- , "sessionAffinityConfig" .= v1ServiceSpecSessionAffinityConfig- , "trafficDistribution" .= v1ServiceSpecTrafficDistribution- , "type" .= v1ServiceSpecType- ]----- | Construct a value of type 'V1ServiceSpec' (by applying it's required fields, if any)-mkV1ServiceSpec- :: V1ServiceSpec-mkV1ServiceSpec =- V1ServiceSpec- { v1ServiceSpecAllocateLoadBalancerNodePorts = Nothing- , v1ServiceSpecClusterIp = Nothing- , v1ServiceSpecClusterIps = Nothing- , v1ServiceSpecExternalIps = Nothing- , v1ServiceSpecExternalName = Nothing- , v1ServiceSpecExternalTrafficPolicy = Nothing- , v1ServiceSpecHealthCheckNodePort = Nothing- , v1ServiceSpecInternalTrafficPolicy = Nothing- , v1ServiceSpecIpFamilies = Nothing- , v1ServiceSpecIpFamilyPolicy = Nothing- , v1ServiceSpecLoadBalancerClass = Nothing- , v1ServiceSpecLoadBalancerIp = Nothing- , v1ServiceSpecLoadBalancerSourceRanges = Nothing- , v1ServiceSpecPorts = Nothing- , v1ServiceSpecPublishNotReadyAddresses = Nothing- , v1ServiceSpecSelector = Nothing- , v1ServiceSpecSessionAffinity = Nothing- , v1ServiceSpecSessionAffinityConfig = Nothing- , v1ServiceSpecTrafficDistribution = Nothing- , v1ServiceSpecType = Nothing- }---- ** V1ServiceStatus--- | V1ServiceStatus--- ServiceStatus represents the current status of a service.-data V1ServiceStatus = V1ServiceStatus- { v1ServiceStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - Current service state- , v1ServiceStatusLoadBalancer :: !(Maybe V1LoadBalancerStatus) -- ^ "loadBalancer"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ServiceStatus-instance A.FromJSON V1ServiceStatus where- parseJSON = A.withObject "V1ServiceStatus" $ \o ->- V1ServiceStatus- <$> (o .:? "conditions")- <*> (o .:? "loadBalancer")---- | ToJSON V1ServiceStatus-instance A.ToJSON V1ServiceStatus where- toJSON V1ServiceStatus {..} =- _omitNulls- [ "conditions" .= v1ServiceStatusConditions- , "loadBalancer" .= v1ServiceStatusLoadBalancer- ]----- | Construct a value of type 'V1ServiceStatus' (by applying it's required fields, if any)-mkV1ServiceStatus- :: V1ServiceStatus-mkV1ServiceStatus =- V1ServiceStatus- { v1ServiceStatusConditions = Nothing- , v1ServiceStatusLoadBalancer = Nothing- }---- ** V1SessionAffinityConfig--- | V1SessionAffinityConfig--- SessionAffinityConfig represents the configurations of session affinity.-data V1SessionAffinityConfig = V1SessionAffinityConfig- { v1SessionAffinityConfigClientIp :: !(Maybe V1ClientIPConfig) -- ^ "clientIP"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SessionAffinityConfig-instance A.FromJSON V1SessionAffinityConfig where- parseJSON = A.withObject "V1SessionAffinityConfig" $ \o ->- V1SessionAffinityConfig- <$> (o .:? "clientIP")---- | ToJSON V1SessionAffinityConfig-instance A.ToJSON V1SessionAffinityConfig where- toJSON V1SessionAffinityConfig {..} =- _omitNulls- [ "clientIP" .= v1SessionAffinityConfigClientIp- ]----- | Construct a value of type 'V1SessionAffinityConfig' (by applying it's required fields, if any)-mkV1SessionAffinityConfig- :: V1SessionAffinityConfig-mkV1SessionAffinityConfig =- V1SessionAffinityConfig- { v1SessionAffinityConfigClientIp = Nothing- }---- ** V1SleepAction--- | V1SleepAction--- SleepAction describes a \"sleep\" action.-data V1SleepAction = V1SleepAction- { v1SleepActionSeconds :: !(Integer) -- ^ /Required/ "seconds" - Seconds is the number of seconds to sleep.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SleepAction-instance A.FromJSON V1SleepAction where- parseJSON = A.withObject "V1SleepAction" $ \o ->- V1SleepAction- <$> (o .: "seconds")---- | ToJSON V1SleepAction-instance A.ToJSON V1SleepAction where- toJSON V1SleepAction {..} =- _omitNulls- [ "seconds" .= v1SleepActionSeconds- ]----- | Construct a value of type 'V1SleepAction' (by applying it's required fields, if any)-mkV1SleepAction- :: Integer -- ^ 'v1SleepActionSeconds': Seconds is the number of seconds to sleep.- -> V1SleepAction-mkV1SleepAction v1SleepActionSeconds =- V1SleepAction- { v1SleepActionSeconds- }---- ** V1StatefulSet--- | V1StatefulSet--- StatefulSet represents a set of pods with consistent identities. Identities are defined as: - Network: A single stable DNS and hostname. - Storage: As many VolumeClaims as requested. The StatefulSet guarantees that a given network identity will always map to the same storage identity.-data V1StatefulSet = V1StatefulSet- { v1StatefulSetApiVersion :: !(Maybe Text) -- ^ "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- , v1StatefulSetKind :: !(Maybe Text) -- ^ "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- , v1StatefulSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1StatefulSetSpec :: !(Maybe V1StatefulSetSpec) -- ^ "spec"- , v1StatefulSetStatus :: !(Maybe V1StatefulSetStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatefulSet-instance A.FromJSON V1StatefulSet where- parseJSON = A.withObject "V1StatefulSet" $ \o ->- V1StatefulSet- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1StatefulSet-instance A.ToJSON V1StatefulSet where- toJSON V1StatefulSet {..} =- _omitNulls- [ "apiVersion" .= v1StatefulSetApiVersion- , "kind" .= v1StatefulSetKind- , "metadata" .= v1StatefulSetMetadata- , "spec" .= v1StatefulSetSpec- , "status" .= v1StatefulSetStatus- ]----- | Construct a value of type 'V1StatefulSet' (by applying it's required fields, if any)-mkV1StatefulSet- :: V1StatefulSet-mkV1StatefulSet =- V1StatefulSet- { v1StatefulSetApiVersion = Nothing- , v1StatefulSetKind = Nothing- , v1StatefulSetMetadata = Nothing- , v1StatefulSetSpec = Nothing- , v1StatefulSetStatus = Nothing- }---- ** V1StatefulSetCondition--- | V1StatefulSetCondition--- StatefulSetCondition describes the state of a statefulset at a certain point.-data V1StatefulSetCondition = V1StatefulSetCondition- { v1StatefulSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.- , v1StatefulSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.- , v1StatefulSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.- , v1StatefulSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1StatefulSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of statefulset condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatefulSetCondition-instance A.FromJSON V1StatefulSetCondition where- parseJSON = A.withObject "V1StatefulSetCondition" $ \o ->- V1StatefulSetCondition- <$> (o .:? "lastTransitionTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1StatefulSetCondition-instance A.ToJSON V1StatefulSetCondition where- toJSON V1StatefulSetCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1StatefulSetConditionLastTransitionTime- , "message" .= v1StatefulSetConditionMessage- , "reason" .= v1StatefulSetConditionReason- , "status" .= v1StatefulSetConditionStatus- , "type" .= v1StatefulSetConditionType- ]----- | Construct a value of type 'V1StatefulSetCondition' (by applying it's required fields, if any)-mkV1StatefulSetCondition- :: Text -- ^ 'v1StatefulSetConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1StatefulSetConditionType': Type of statefulset condition.- -> V1StatefulSetCondition-mkV1StatefulSetCondition v1StatefulSetConditionStatus v1StatefulSetConditionType =- V1StatefulSetCondition- { v1StatefulSetConditionLastTransitionTime = Nothing- , v1StatefulSetConditionMessage = Nothing- , v1StatefulSetConditionReason = Nothing- , v1StatefulSetConditionStatus- , v1StatefulSetConditionType- }---- ** V1StatefulSetList--- | V1StatefulSetList--- StatefulSetList is a collection of StatefulSets.-data V1StatefulSetList = V1StatefulSetList- { v1StatefulSetListApiVersion :: !(Maybe Text) -- ^ "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- , v1StatefulSetListItems :: !([V1StatefulSet]) -- ^ /Required/ "items" - Items is the list of stateful sets.- , v1StatefulSetListKind :: !(Maybe Text) -- ^ "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- , v1StatefulSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatefulSetList-instance A.FromJSON V1StatefulSetList where- parseJSON = A.withObject "V1StatefulSetList" $ \o ->- V1StatefulSetList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1StatefulSetList-instance A.ToJSON V1StatefulSetList where- toJSON V1StatefulSetList {..} =- _omitNulls- [ "apiVersion" .= v1StatefulSetListApiVersion- , "items" .= v1StatefulSetListItems- , "kind" .= v1StatefulSetListKind- , "metadata" .= v1StatefulSetListMetadata- ]----- | Construct a value of type 'V1StatefulSetList' (by applying it's required fields, if any)-mkV1StatefulSetList- :: [V1StatefulSet] -- ^ 'v1StatefulSetListItems': Items is the list of stateful sets.- -> V1StatefulSetList-mkV1StatefulSetList v1StatefulSetListItems =- V1StatefulSetList- { v1StatefulSetListApiVersion = Nothing- , v1StatefulSetListItems- , v1StatefulSetListKind = Nothing- , v1StatefulSetListMetadata = Nothing- }---- ** V1StatefulSetOrdinals--- | V1StatefulSetOrdinals--- StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.-data V1StatefulSetOrdinals = V1StatefulSetOrdinals- { v1StatefulSetOrdinalsStart :: !(Maybe Int) -- ^ "start" - start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range: [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas). If unset, defaults to 0. Replica indices will be in the range: [0, .spec.replicas).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatefulSetOrdinals-instance A.FromJSON V1StatefulSetOrdinals where- parseJSON = A.withObject "V1StatefulSetOrdinals" $ \o ->- V1StatefulSetOrdinals- <$> (o .:? "start")---- | ToJSON V1StatefulSetOrdinals-instance A.ToJSON V1StatefulSetOrdinals where- toJSON V1StatefulSetOrdinals {..} =- _omitNulls- [ "start" .= v1StatefulSetOrdinalsStart- ]----- | Construct a value of type 'V1StatefulSetOrdinals' (by applying it's required fields, if any)-mkV1StatefulSetOrdinals- :: V1StatefulSetOrdinals-mkV1StatefulSetOrdinals =- V1StatefulSetOrdinals- { v1StatefulSetOrdinalsStart = Nothing- }---- ** V1StatefulSetPersistentVolumeClaimRetentionPolicy--- | V1StatefulSetPersistentVolumeClaimRetentionPolicy--- StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.-data V1StatefulSetPersistentVolumeClaimRetentionPolicy = V1StatefulSetPersistentVolumeClaimRetentionPolicy- { v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenDeleted :: !(Maybe Text) -- ^ "whenDeleted" - WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.- , v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenScaled :: !(Maybe Text) -- ^ "whenScaled" - WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy-instance A.FromJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy where- parseJSON = A.withObject "V1StatefulSetPersistentVolumeClaimRetentionPolicy" $ \o ->- V1StatefulSetPersistentVolumeClaimRetentionPolicy- <$> (o .:? "whenDeleted")- <*> (o .:? "whenScaled")---- | ToJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy-instance A.ToJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy where- toJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy {..} =- _omitNulls- [ "whenDeleted" .= v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenDeleted- , "whenScaled" .= v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenScaled- ]----- | Construct a value of type 'V1StatefulSetPersistentVolumeClaimRetentionPolicy' (by applying it's required fields, if any)-mkV1StatefulSetPersistentVolumeClaimRetentionPolicy- :: V1StatefulSetPersistentVolumeClaimRetentionPolicy-mkV1StatefulSetPersistentVolumeClaimRetentionPolicy =- V1StatefulSetPersistentVolumeClaimRetentionPolicy- { v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenDeleted = Nothing- , v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenScaled = Nothing- }---- ** V1StatefulSetSpec--- | V1StatefulSetSpec--- A StatefulSetSpec is the specification of a StatefulSet.-data V1StatefulSetSpec = V1StatefulSetSpec- { v1StatefulSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - 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)- , v1StatefulSetSpecOrdinals :: !(Maybe V1StatefulSetOrdinals) -- ^ "ordinals"- , v1StatefulSetSpecPersistentVolumeClaimRetentionPolicy :: !(Maybe V1StatefulSetPersistentVolumeClaimRetentionPolicy) -- ^ "persistentVolumeClaimRetentionPolicy"- , v1StatefulSetSpecPodManagementPolicy :: !(Maybe Text) -- ^ "podManagementPolicy" - 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.- , v1StatefulSetSpecReplicas :: !(Maybe 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.- , v1StatefulSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - 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.- , v1StatefulSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"- , v1StatefulSetSpecServiceName :: !(Maybe Text) -- ^ "serviceName" - serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.- , v1StatefulSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"- , v1StatefulSetSpecUpdateStrategy :: !(Maybe V1StatefulSetUpdateStrategy) -- ^ "updateStrategy"- , v1StatefulSetSpecVolumeClaimTemplates :: !(Maybe [V1PersistentVolumeClaim]) -- ^ "volumeClaimTemplates" - volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatefulSetSpec-instance A.FromJSON V1StatefulSetSpec where- parseJSON = A.withObject "V1StatefulSetSpec" $ \o ->- V1StatefulSetSpec- <$> (o .:? "minReadySeconds")- <*> (o .:? "ordinals")- <*> (o .:? "persistentVolumeClaimRetentionPolicy")- <*> (o .:? "podManagementPolicy")- <*> (o .:? "replicas")- <*> (o .:? "revisionHistoryLimit")- <*> (o .: "selector")- <*> (o .:? "serviceName")- <*> (o .: "template")- <*> (o .:? "updateStrategy")- <*> (o .:? "volumeClaimTemplates")---- | ToJSON V1StatefulSetSpec-instance A.ToJSON V1StatefulSetSpec where- toJSON V1StatefulSetSpec {..} =- _omitNulls- [ "minReadySeconds" .= v1StatefulSetSpecMinReadySeconds- , "ordinals" .= v1StatefulSetSpecOrdinals- , "persistentVolumeClaimRetentionPolicy" .= v1StatefulSetSpecPersistentVolumeClaimRetentionPolicy- , "podManagementPolicy" .= v1StatefulSetSpecPodManagementPolicy- , "replicas" .= v1StatefulSetSpecReplicas- , "revisionHistoryLimit" .= v1StatefulSetSpecRevisionHistoryLimit- , "selector" .= v1StatefulSetSpecSelector- , "serviceName" .= v1StatefulSetSpecServiceName- , "template" .= v1StatefulSetSpecTemplate- , "updateStrategy" .= v1StatefulSetSpecUpdateStrategy- , "volumeClaimTemplates" .= v1StatefulSetSpecVolumeClaimTemplates- ]----- | Construct a value of type 'V1StatefulSetSpec' (by applying it's required fields, if any)-mkV1StatefulSetSpec- :: V1LabelSelector -- ^ 'v1StatefulSetSpecSelector' - -> V1PodTemplateSpec -- ^ 'v1StatefulSetSpecTemplate' - -> V1StatefulSetSpec-mkV1StatefulSetSpec v1StatefulSetSpecSelector v1StatefulSetSpecTemplate =- V1StatefulSetSpec- { v1StatefulSetSpecMinReadySeconds = Nothing- , v1StatefulSetSpecOrdinals = Nothing- , v1StatefulSetSpecPersistentVolumeClaimRetentionPolicy = Nothing- , v1StatefulSetSpecPodManagementPolicy = Nothing- , v1StatefulSetSpecReplicas = Nothing- , v1StatefulSetSpecRevisionHistoryLimit = Nothing- , v1StatefulSetSpecSelector- , v1StatefulSetSpecServiceName = Nothing- , v1StatefulSetSpecTemplate- , v1StatefulSetSpecUpdateStrategy = Nothing- , v1StatefulSetSpecVolumeClaimTemplates = Nothing- }---- ** V1StatefulSetStatus--- | V1StatefulSetStatus--- StatefulSetStatus represents the current state of a StatefulSet.-data V1StatefulSetStatus = V1StatefulSetStatus- { v1StatefulSetStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.- , v1StatefulSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.- , v1StatefulSetStatusConditions :: !(Maybe [V1StatefulSetCondition]) -- ^ "conditions" - Represents the latest available observations of a statefulset's current state.- , v1StatefulSetStatusCurrentReplicas :: !(Maybe Int) -- ^ "currentReplicas" - currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.- , v1StatefulSetStatusCurrentRevision :: !(Maybe Text) -- ^ "currentRevision" - currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).- , v1StatefulSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.- , v1StatefulSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.- , v1StatefulSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - replicas is the number of Pods created by the StatefulSet controller.- , v1StatefulSetStatusUpdateRevision :: !(Maybe Text) -- ^ "updateRevision" - updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)- , v1StatefulSetStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatefulSetStatus-instance A.FromJSON V1StatefulSetStatus where- parseJSON = A.withObject "V1StatefulSetStatus" $ \o ->- V1StatefulSetStatus- <$> (o .:? "availableReplicas")- <*> (o .:? "collisionCount")- <*> (o .:? "conditions")- <*> (o .:? "currentReplicas")- <*> (o .:? "currentRevision")- <*> (o .:? "observedGeneration")- <*> (o .:? "readyReplicas")- <*> (o .: "replicas")- <*> (o .:? "updateRevision")- <*> (o .:? "updatedReplicas")---- | ToJSON V1StatefulSetStatus-instance A.ToJSON V1StatefulSetStatus where- toJSON V1StatefulSetStatus {..} =- _omitNulls- [ "availableReplicas" .= v1StatefulSetStatusAvailableReplicas- , "collisionCount" .= v1StatefulSetStatusCollisionCount- , "conditions" .= v1StatefulSetStatusConditions- , "currentReplicas" .= v1StatefulSetStatusCurrentReplicas- , "currentRevision" .= v1StatefulSetStatusCurrentRevision- , "observedGeneration" .= v1StatefulSetStatusObservedGeneration- , "readyReplicas" .= v1StatefulSetStatusReadyReplicas- , "replicas" .= v1StatefulSetStatusReplicas- , "updateRevision" .= v1StatefulSetStatusUpdateRevision- , "updatedReplicas" .= v1StatefulSetStatusUpdatedReplicas- ]----- | Construct a value of type 'V1StatefulSetStatus' (by applying it's required fields, if any)-mkV1StatefulSetStatus- :: Int -- ^ 'v1StatefulSetStatusReplicas': replicas is the number of Pods created by the StatefulSet controller.- -> V1StatefulSetStatus-mkV1StatefulSetStatus v1StatefulSetStatusReplicas =- V1StatefulSetStatus- { v1StatefulSetStatusAvailableReplicas = Nothing- , v1StatefulSetStatusCollisionCount = Nothing- , v1StatefulSetStatusConditions = Nothing- , v1StatefulSetStatusCurrentReplicas = Nothing- , v1StatefulSetStatusCurrentRevision = Nothing- , v1StatefulSetStatusObservedGeneration = Nothing- , v1StatefulSetStatusReadyReplicas = Nothing- , v1StatefulSetStatusReplicas- , v1StatefulSetStatusUpdateRevision = Nothing- , v1StatefulSetStatusUpdatedReplicas = Nothing- }---- ** V1StatefulSetUpdateStrategy--- | V1StatefulSetUpdateStrategy--- StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.-data V1StatefulSetUpdateStrategy = V1StatefulSetUpdateStrategy- { v1StatefulSetUpdateStrategyRollingUpdate :: !(Maybe V1RollingUpdateStatefulSetStrategy) -- ^ "rollingUpdate"- , v1StatefulSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatefulSetUpdateStrategy-instance A.FromJSON V1StatefulSetUpdateStrategy where- parseJSON = A.withObject "V1StatefulSetUpdateStrategy" $ \o ->- V1StatefulSetUpdateStrategy- <$> (o .:? "rollingUpdate")- <*> (o .:? "type")---- | ToJSON V1StatefulSetUpdateStrategy-instance A.ToJSON V1StatefulSetUpdateStrategy where- toJSON V1StatefulSetUpdateStrategy {..} =- _omitNulls- [ "rollingUpdate" .= v1StatefulSetUpdateStrategyRollingUpdate- , "type" .= v1StatefulSetUpdateStrategyType- ]----- | Construct a value of type 'V1StatefulSetUpdateStrategy' (by applying it's required fields, if any)-mkV1StatefulSetUpdateStrategy- :: V1StatefulSetUpdateStrategy-mkV1StatefulSetUpdateStrategy =- V1StatefulSetUpdateStrategy- { v1StatefulSetUpdateStrategyRollingUpdate = Nothing- , v1StatefulSetUpdateStrategyType = Nothing- }---- ** V1Status--- | V1Status--- Status is a return value for calls that don't return other objects.-data V1Status = V1Status- { v1StatusApiVersion :: !(Maybe Text) -- ^ "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- , v1StatusCode :: !(Maybe Int) -- ^ "code" - Suggested HTTP return code for this status, 0 if not set.- , v1StatusDetails :: !(Maybe V1StatusDetails) -- ^ "details"- , v1StatusKind :: !(Maybe Text) -- ^ "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- , v1StatusMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the status of this operation.- , v1StatusMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- , v1StatusReason :: !(Maybe Text) -- ^ "reason" - A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.- , v1StatusStatus :: !(Maybe Text) -- ^ "status" - Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Status-instance A.FromJSON V1Status where- parseJSON = A.withObject "V1Status" $ \o ->- V1Status- <$> (o .:? "apiVersion")- <*> (o .:? "code")- <*> (o .:? "details")- <*> (o .:? "kind")- <*> (o .:? "message")- <*> (o .:? "metadata")- <*> (o .:? "reason")- <*> (o .:? "status")---- | ToJSON V1Status-instance A.ToJSON V1Status where- toJSON V1Status {..} =- _omitNulls- [ "apiVersion" .= v1StatusApiVersion- , "code" .= v1StatusCode- , "details" .= v1StatusDetails- , "kind" .= v1StatusKind- , "message" .= v1StatusMessage- , "metadata" .= v1StatusMetadata- , "reason" .= v1StatusReason- , "status" .= v1StatusStatus- ]----- | Construct a value of type 'V1Status' (by applying it's required fields, if any)-mkV1Status- :: V1Status-mkV1Status =- V1Status- { v1StatusApiVersion = Nothing- , v1StatusCode = Nothing- , v1StatusDetails = Nothing- , v1StatusKind = Nothing- , v1StatusMessage = Nothing- , v1StatusMetadata = Nothing- , v1StatusReason = Nothing- , v1StatusStatus = Nothing- }---- ** V1StatusCause--- | V1StatusCause--- StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.-data V1StatusCause = V1StatusCause- { v1StatusCauseField :: !(Maybe Text) -- ^ "field" - The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional. Examples: \"name\" - the field \"name\" on the current resource \"items[0].name\" - the field \"name\" on the first array entry in \"items\"- , v1StatusCauseMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the cause of the error. This field may be presented as-is to a reader.- , v1StatusCauseReason :: !(Maybe Text) -- ^ "reason" - A machine-readable description of the cause of the error. If this value is empty there is no information available.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatusCause-instance A.FromJSON V1StatusCause where- parseJSON = A.withObject "V1StatusCause" $ \o ->- V1StatusCause- <$> (o .:? "field")- <*> (o .:? "message")- <*> (o .:? "reason")---- | ToJSON V1StatusCause-instance A.ToJSON V1StatusCause where- toJSON V1StatusCause {..} =- _omitNulls- [ "field" .= v1StatusCauseField- , "message" .= v1StatusCauseMessage- , "reason" .= v1StatusCauseReason- ]----- | Construct a value of type 'V1StatusCause' (by applying it's required fields, if any)-mkV1StatusCause- :: V1StatusCause-mkV1StatusCause =- V1StatusCause- { v1StatusCauseField = Nothing- , v1StatusCauseMessage = Nothing- , v1StatusCauseReason = Nothing- }---- ** V1StatusDetails--- | V1StatusDetails--- StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.-data V1StatusDetails = V1StatusDetails- { v1StatusDetailsCauses :: !(Maybe [V1StatusCause]) -- ^ "causes" - The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.- , v1StatusDetailsGroup :: !(Maybe Text) -- ^ "group" - The group attribute of the resource associated with the status StatusReason.- , v1StatusDetailsKind :: !(Maybe Text) -- ^ "kind" - The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds- , v1StatusDetailsName :: !(Maybe Text) -- ^ "name" - The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).- , v1StatusDetailsRetryAfterSeconds :: !(Maybe Int) -- ^ "retryAfterSeconds" - If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.- , v1StatusDetailsUid :: !(Maybe Text) -- ^ "uid" - UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StatusDetails-instance A.FromJSON V1StatusDetails where- parseJSON = A.withObject "V1StatusDetails" $ \o ->- V1StatusDetails- <$> (o .:? "causes")- <*> (o .:? "group")- <*> (o .:? "kind")- <*> (o .:? "name")- <*> (o .:? "retryAfterSeconds")- <*> (o .:? "uid")---- | ToJSON V1StatusDetails-instance A.ToJSON V1StatusDetails where- toJSON V1StatusDetails {..} =- _omitNulls- [ "causes" .= v1StatusDetailsCauses- , "group" .= v1StatusDetailsGroup- , "kind" .= v1StatusDetailsKind- , "name" .= v1StatusDetailsName- , "retryAfterSeconds" .= v1StatusDetailsRetryAfterSeconds- , "uid" .= v1StatusDetailsUid- ]----- | Construct a value of type 'V1StatusDetails' (by applying it's required fields, if any)-mkV1StatusDetails- :: V1StatusDetails-mkV1StatusDetails =- V1StatusDetails- { v1StatusDetailsCauses = Nothing- , v1StatusDetailsGroup = Nothing- , v1StatusDetailsKind = Nothing- , v1StatusDetailsName = Nothing- , v1StatusDetailsRetryAfterSeconds = Nothing- , v1StatusDetailsUid = Nothing- }---- ** V1StorageClass--- | V1StorageClass--- StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned. StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.-data V1StorageClass = V1StorageClass- { v1StorageClassAllowVolumeExpansion :: !(Maybe Bool) -- ^ "allowVolumeExpansion" - allowVolumeExpansion shows whether the storage class allow volume expand.- , v1StorageClassAllowedTopologies :: !(Maybe [V1TopologySelectorTerm]) -- ^ "allowedTopologies" - allowedTopologies restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.- , v1StorageClassApiVersion :: !(Maybe Text) -- ^ "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- , v1StorageClassKind :: !(Maybe Text) -- ^ "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- , v1StorageClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1StorageClassMountOptions :: !(Maybe [Text]) -- ^ "mountOptions" - mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class. e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.- , v1StorageClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - parameters holds the parameters for the provisioner that should create volumes of this storage class.- , v1StorageClassProvisioner :: !(Text) -- ^ /Required/ "provisioner" - provisioner indicates the type of the provisioner.- , v1StorageClassReclaimPolicy :: !(Maybe Text) -- ^ "reclaimPolicy" - reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete.- , v1StorageClassVolumeBindingMode :: !(Maybe Text) -- ^ "volumeBindingMode" - volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StorageClass-instance A.FromJSON V1StorageClass where- parseJSON = A.withObject "V1StorageClass" $ \o ->- V1StorageClass- <$> (o .:? "allowVolumeExpansion")- <*> (o .:? "allowedTopologies")- <*> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "mountOptions")- <*> (o .:? "parameters")- <*> (o .: "provisioner")- <*> (o .:? "reclaimPolicy")- <*> (o .:? "volumeBindingMode")---- | ToJSON V1StorageClass-instance A.ToJSON V1StorageClass where- toJSON V1StorageClass {..} =- _omitNulls- [ "allowVolumeExpansion" .= v1StorageClassAllowVolumeExpansion- , "allowedTopologies" .= v1StorageClassAllowedTopologies- , "apiVersion" .= v1StorageClassApiVersion- , "kind" .= v1StorageClassKind- , "metadata" .= v1StorageClassMetadata- , "mountOptions" .= v1StorageClassMountOptions- , "parameters" .= v1StorageClassParameters- , "provisioner" .= v1StorageClassProvisioner- , "reclaimPolicy" .= v1StorageClassReclaimPolicy- , "volumeBindingMode" .= v1StorageClassVolumeBindingMode- ]----- | Construct a value of type 'V1StorageClass' (by applying it's required fields, if any)-mkV1StorageClass- :: Text -- ^ 'v1StorageClassProvisioner': provisioner indicates the type of the provisioner.- -> V1StorageClass-mkV1StorageClass v1StorageClassProvisioner =- V1StorageClass- { v1StorageClassAllowVolumeExpansion = Nothing- , v1StorageClassAllowedTopologies = Nothing- , v1StorageClassApiVersion = Nothing- , v1StorageClassKind = Nothing- , v1StorageClassMetadata = Nothing- , v1StorageClassMountOptions = Nothing- , v1StorageClassParameters = Nothing- , v1StorageClassProvisioner- , v1StorageClassReclaimPolicy = Nothing- , v1StorageClassVolumeBindingMode = Nothing- }---- ** V1StorageClassList--- | V1StorageClassList--- StorageClassList is a collection of storage classes.-data V1StorageClassList = V1StorageClassList- { v1StorageClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1StorageClassListItems :: !([V1StorageClass]) -- ^ /Required/ "items" - items is the list of StorageClasses- , v1StorageClassListKind :: !(Maybe Text) -- ^ "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- , v1StorageClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StorageClassList-instance A.FromJSON V1StorageClassList where- parseJSON = A.withObject "V1StorageClassList" $ \o ->- V1StorageClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1StorageClassList-instance A.ToJSON V1StorageClassList where- toJSON V1StorageClassList {..} =- _omitNulls- [ "apiVersion" .= v1StorageClassListApiVersion- , "items" .= v1StorageClassListItems- , "kind" .= v1StorageClassListKind- , "metadata" .= v1StorageClassListMetadata- ]----- | Construct a value of type 'V1StorageClassList' (by applying it's required fields, if any)-mkV1StorageClassList- :: [V1StorageClass] -- ^ 'v1StorageClassListItems': items is the list of StorageClasses- -> V1StorageClassList-mkV1StorageClassList v1StorageClassListItems =- V1StorageClassList- { v1StorageClassListApiVersion = Nothing- , v1StorageClassListItems- , v1StorageClassListKind = Nothing- , v1StorageClassListMetadata = Nothing- }---- ** V1StorageOSPersistentVolumeSource--- | V1StorageOSPersistentVolumeSource--- Represents a StorageOS persistent volume resource.-data V1StorageOSPersistentVolumeSource = V1StorageOSPersistentVolumeSource- { v1StorageOSPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.- , v1StorageOSPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1StorageOSPersistentVolumeSourceSecretRef :: !(Maybe V1ObjectReference) -- ^ "secretRef"- , v1StorageOSPersistentVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.- , v1StorageOSPersistentVolumeSourceVolumeNamespace :: !(Maybe Text) -- ^ "volumeNamespace" - volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StorageOSPersistentVolumeSource-instance A.FromJSON V1StorageOSPersistentVolumeSource where- parseJSON = A.withObject "V1StorageOSPersistentVolumeSource" $ \o ->- V1StorageOSPersistentVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")- <*> (o .:? "volumeName")- <*> (o .:? "volumeNamespace")---- | ToJSON V1StorageOSPersistentVolumeSource-instance A.ToJSON V1StorageOSPersistentVolumeSource where- toJSON V1StorageOSPersistentVolumeSource {..} =- _omitNulls- [ "fsType" .= v1StorageOSPersistentVolumeSourceFsType- , "readOnly" .= v1StorageOSPersistentVolumeSourceReadOnly- , "secretRef" .= v1StorageOSPersistentVolumeSourceSecretRef- , "volumeName" .= v1StorageOSPersistentVolumeSourceVolumeName- , "volumeNamespace" .= v1StorageOSPersistentVolumeSourceVolumeNamespace- ]----- | Construct a value of type 'V1StorageOSPersistentVolumeSource' (by applying it's required fields, if any)-mkV1StorageOSPersistentVolumeSource- :: V1StorageOSPersistentVolumeSource-mkV1StorageOSPersistentVolumeSource =- V1StorageOSPersistentVolumeSource- { v1StorageOSPersistentVolumeSourceFsType = Nothing- , v1StorageOSPersistentVolumeSourceReadOnly = Nothing- , v1StorageOSPersistentVolumeSourceSecretRef = Nothing- , v1StorageOSPersistentVolumeSourceVolumeName = Nothing- , v1StorageOSPersistentVolumeSourceVolumeNamespace = Nothing- }---- ** V1StorageOSVolumeSource--- | V1StorageOSVolumeSource--- Represents a StorageOS persistent volume resource.-data V1StorageOSVolumeSource = V1StorageOSVolumeSource- { v1StorageOSVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.- , v1StorageOSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.- , v1StorageOSVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"- , v1StorageOSVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.- , v1StorageOSVolumeSourceVolumeNamespace :: !(Maybe Text) -- ^ "volumeNamespace" - volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1StorageOSVolumeSource-instance A.FromJSON V1StorageOSVolumeSource where- parseJSON = A.withObject "V1StorageOSVolumeSource" $ \o ->- V1StorageOSVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "readOnly")- <*> (o .:? "secretRef")- <*> (o .:? "volumeName")- <*> (o .:? "volumeNamespace")---- | ToJSON V1StorageOSVolumeSource-instance A.ToJSON V1StorageOSVolumeSource where- toJSON V1StorageOSVolumeSource {..} =- _omitNulls- [ "fsType" .= v1StorageOSVolumeSourceFsType- , "readOnly" .= v1StorageOSVolumeSourceReadOnly- , "secretRef" .= v1StorageOSVolumeSourceSecretRef- , "volumeName" .= v1StorageOSVolumeSourceVolumeName- , "volumeNamespace" .= v1StorageOSVolumeSourceVolumeNamespace- ]----- | Construct a value of type 'V1StorageOSVolumeSource' (by applying it's required fields, if any)-mkV1StorageOSVolumeSource- :: V1StorageOSVolumeSource-mkV1StorageOSVolumeSource =- V1StorageOSVolumeSource- { v1StorageOSVolumeSourceFsType = Nothing- , v1StorageOSVolumeSourceReadOnly = Nothing- , v1StorageOSVolumeSourceSecretRef = Nothing- , v1StorageOSVolumeSourceVolumeName = Nothing- , v1StorageOSVolumeSourceVolumeNamespace = Nothing- }---- ** V1SubjectAccessReview--- | V1SubjectAccessReview--- SubjectAccessReview checks whether or not a user or group can perform an action.-data V1SubjectAccessReview = V1SubjectAccessReview- { v1SubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "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- , v1SubjectAccessReviewKind :: !(Maybe Text) -- ^ "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- , v1SubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1SubjectAccessReviewSpec :: !(V1SubjectAccessReviewSpec) -- ^ /Required/ "spec"- , v1SubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SubjectAccessReview-instance A.FromJSON V1SubjectAccessReview where- parseJSON = A.withObject "V1SubjectAccessReview" $ \o ->- V1SubjectAccessReview- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1SubjectAccessReview-instance A.ToJSON V1SubjectAccessReview where- toJSON V1SubjectAccessReview {..} =- _omitNulls- [ "apiVersion" .= v1SubjectAccessReviewApiVersion- , "kind" .= v1SubjectAccessReviewKind- , "metadata" .= v1SubjectAccessReviewMetadata- , "spec" .= v1SubjectAccessReviewSpec- , "status" .= v1SubjectAccessReviewStatus- ]----- | Construct a value of type 'V1SubjectAccessReview' (by applying it's required fields, if any)-mkV1SubjectAccessReview- :: V1SubjectAccessReviewSpec -- ^ 'v1SubjectAccessReviewSpec' - -> V1SubjectAccessReview-mkV1SubjectAccessReview v1SubjectAccessReviewSpec =- V1SubjectAccessReview- { v1SubjectAccessReviewApiVersion = Nothing- , v1SubjectAccessReviewKind = Nothing- , v1SubjectAccessReviewMetadata = Nothing- , v1SubjectAccessReviewSpec- , v1SubjectAccessReviewStatus = Nothing- }---- ** V1SubjectAccessReviewSpec--- | V1SubjectAccessReviewSpec--- SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set-data V1SubjectAccessReviewSpec = V1SubjectAccessReviewSpec- { v1SubjectAccessReviewSpecExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.- , v1SubjectAccessReviewSpecGroups :: !(Maybe [Text]) -- ^ "groups" - Groups is the groups you're testing for.- , v1SubjectAccessReviewSpecNonResourceAttributes :: !(Maybe V1NonResourceAttributes) -- ^ "nonResourceAttributes"- , v1SubjectAccessReviewSpecResourceAttributes :: !(Maybe V1ResourceAttributes) -- ^ "resourceAttributes"- , v1SubjectAccessReviewSpecUid :: !(Maybe Text) -- ^ "uid" - UID information about the requesting user.- , v1SubjectAccessReviewSpecUser :: !(Maybe Text) -- ^ "user" - User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SubjectAccessReviewSpec-instance A.FromJSON V1SubjectAccessReviewSpec where- parseJSON = A.withObject "V1SubjectAccessReviewSpec" $ \o ->- V1SubjectAccessReviewSpec- <$> (o .:? "extra")- <*> (o .:? "groups")- <*> (o .:? "nonResourceAttributes")- <*> (o .:? "resourceAttributes")- <*> (o .:? "uid")- <*> (o .:? "user")---- | ToJSON V1SubjectAccessReviewSpec-instance A.ToJSON V1SubjectAccessReviewSpec where- toJSON V1SubjectAccessReviewSpec {..} =- _omitNulls- [ "extra" .= v1SubjectAccessReviewSpecExtra- , "groups" .= v1SubjectAccessReviewSpecGroups- , "nonResourceAttributes" .= v1SubjectAccessReviewSpecNonResourceAttributes- , "resourceAttributes" .= v1SubjectAccessReviewSpecResourceAttributes- , "uid" .= v1SubjectAccessReviewSpecUid- , "user" .= v1SubjectAccessReviewSpecUser- ]----- | Construct a value of type 'V1SubjectAccessReviewSpec' (by applying it's required fields, if any)-mkV1SubjectAccessReviewSpec- :: V1SubjectAccessReviewSpec-mkV1SubjectAccessReviewSpec =- V1SubjectAccessReviewSpec- { v1SubjectAccessReviewSpecExtra = Nothing- , v1SubjectAccessReviewSpecGroups = Nothing- , v1SubjectAccessReviewSpecNonResourceAttributes = Nothing- , v1SubjectAccessReviewSpecResourceAttributes = Nothing- , v1SubjectAccessReviewSpecUid = Nothing- , v1SubjectAccessReviewSpecUser = Nothing- }---- ** V1SubjectAccessReviewStatus--- | V1SubjectAccessReviewStatus--- SubjectAccessReviewStatus-data V1SubjectAccessReviewStatus = V1SubjectAccessReviewStatus- { v1SubjectAccessReviewStatusAllowed :: !(Bool) -- ^ /Required/ "allowed" - Allowed is required. True if the action would be allowed, false otherwise.- , v1SubjectAccessReviewStatusDenied :: !(Maybe Bool) -- ^ "denied" - Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.- , v1SubjectAccessReviewStatusEvaluationError :: !(Maybe Text) -- ^ "evaluationError" - EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.- , v1SubjectAccessReviewStatusReason :: !(Maybe Text) -- ^ "reason" - Reason is optional. It indicates why a request was allowed or denied.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SubjectAccessReviewStatus-instance A.FromJSON V1SubjectAccessReviewStatus where- parseJSON = A.withObject "V1SubjectAccessReviewStatus" $ \o ->- V1SubjectAccessReviewStatus- <$> (o .: "allowed")- <*> (o .:? "denied")- <*> (o .:? "evaluationError")- <*> (o .:? "reason")---- | ToJSON V1SubjectAccessReviewStatus-instance A.ToJSON V1SubjectAccessReviewStatus where- toJSON V1SubjectAccessReviewStatus {..} =- _omitNulls- [ "allowed" .= v1SubjectAccessReviewStatusAllowed- , "denied" .= v1SubjectAccessReviewStatusDenied- , "evaluationError" .= v1SubjectAccessReviewStatusEvaluationError- , "reason" .= v1SubjectAccessReviewStatusReason- ]----- | Construct a value of type 'V1SubjectAccessReviewStatus' (by applying it's required fields, if any)-mkV1SubjectAccessReviewStatus- :: Bool -- ^ 'v1SubjectAccessReviewStatusAllowed': Allowed is required. True if the action would be allowed, false otherwise.- -> V1SubjectAccessReviewStatus-mkV1SubjectAccessReviewStatus v1SubjectAccessReviewStatusAllowed =- V1SubjectAccessReviewStatus- { v1SubjectAccessReviewStatusAllowed- , v1SubjectAccessReviewStatusDenied = Nothing- , v1SubjectAccessReviewStatusEvaluationError = Nothing- , v1SubjectAccessReviewStatusReason = Nothing- }---- ** V1SubjectRulesReviewStatus--- | V1SubjectRulesReviewStatus--- SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.-data V1SubjectRulesReviewStatus = V1SubjectRulesReviewStatus- { v1SubjectRulesReviewStatusEvaluationError :: !(Maybe Text) -- ^ "evaluationError" - EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.- , v1SubjectRulesReviewStatusIncomplete :: !(Bool) -- ^ /Required/ "incomplete" - Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.- , v1SubjectRulesReviewStatusNonResourceRules :: !([V1NonResourceRule]) -- ^ /Required/ "nonResourceRules" - NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.- , v1SubjectRulesReviewStatusResourceRules :: !([V1ResourceRule]) -- ^ /Required/ "resourceRules" - ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SubjectRulesReviewStatus-instance A.FromJSON V1SubjectRulesReviewStatus where- parseJSON = A.withObject "V1SubjectRulesReviewStatus" $ \o ->- V1SubjectRulesReviewStatus- <$> (o .:? "evaluationError")- <*> (o .: "incomplete")- <*> (o .: "nonResourceRules")- <*> (o .: "resourceRules")---- | ToJSON V1SubjectRulesReviewStatus-instance A.ToJSON V1SubjectRulesReviewStatus where- toJSON V1SubjectRulesReviewStatus {..} =- _omitNulls- [ "evaluationError" .= v1SubjectRulesReviewStatusEvaluationError- , "incomplete" .= v1SubjectRulesReviewStatusIncomplete- , "nonResourceRules" .= v1SubjectRulesReviewStatusNonResourceRules- , "resourceRules" .= v1SubjectRulesReviewStatusResourceRules- ]----- | Construct a value of type 'V1SubjectRulesReviewStatus' (by applying it's required fields, if any)-mkV1SubjectRulesReviewStatus- :: Bool -- ^ 'v1SubjectRulesReviewStatusIncomplete': Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.- -> [V1NonResourceRule] -- ^ 'v1SubjectRulesReviewStatusNonResourceRules': NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.- -> [V1ResourceRule] -- ^ 'v1SubjectRulesReviewStatusResourceRules': ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.- -> V1SubjectRulesReviewStatus-mkV1SubjectRulesReviewStatus v1SubjectRulesReviewStatusIncomplete v1SubjectRulesReviewStatusNonResourceRules v1SubjectRulesReviewStatusResourceRules =- V1SubjectRulesReviewStatus- { v1SubjectRulesReviewStatusEvaluationError = Nothing- , v1SubjectRulesReviewStatusIncomplete- , v1SubjectRulesReviewStatusNonResourceRules- , v1SubjectRulesReviewStatusResourceRules- }---- ** V1SuccessPolicy--- | V1SuccessPolicy--- SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.-data V1SuccessPolicy = V1SuccessPolicy- { v1SuccessPolicyRules :: !([V1SuccessPolicyRule]) -- ^ /Required/ "rules" - rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \"SuccessCriteriaMet\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \"Complete\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SuccessPolicy-instance A.FromJSON V1SuccessPolicy where- parseJSON = A.withObject "V1SuccessPolicy" $ \o ->- V1SuccessPolicy- <$> (o .: "rules")---- | ToJSON V1SuccessPolicy-instance A.ToJSON V1SuccessPolicy where- toJSON V1SuccessPolicy {..} =- _omitNulls- [ "rules" .= v1SuccessPolicyRules- ]----- | Construct a value of type 'V1SuccessPolicy' (by applying it's required fields, if any)-mkV1SuccessPolicy- :: [V1SuccessPolicyRule] -- ^ 'v1SuccessPolicyRules': rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \"SuccessCriteriaMet\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \"Complete\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed.- -> V1SuccessPolicy-mkV1SuccessPolicy v1SuccessPolicyRules =- V1SuccessPolicy- { v1SuccessPolicyRules- }---- ** V1SuccessPolicyRule--- | V1SuccessPolicyRule--- SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the \"succeededIndexes\" or \"succeededCount\" specified.-data V1SuccessPolicyRule = V1SuccessPolicyRule- { v1SuccessPolicyRuleSucceededCount :: !(Maybe Int) -- ^ "succeededCount" - succeededCount specifies the minimal required size of the actual set of the succeeded indexes for the Job. When succeededCount is used along with succeededIndexes, the check is constrained only to the set of indexes specified by succeededIndexes. For example, given that succeededIndexes is \"1-4\", succeededCount is \"3\", and completed indexes are \"1\", \"3\", and \"5\", the Job isn't declared as succeeded because only \"1\" and \"3\" indexes are considered in that rules. When this field is null, this doesn't default to any value and is never evaluated at any time. When specified it needs to be a positive integer.- , v1SuccessPolicyRuleSucceededIndexes :: !(Maybe Text) -- ^ "succeededIndexes" - succeededIndexes specifies the set of indexes which need to be contained in the actual set of the succeeded indexes for the Job. The list of indexes must be within 0 to \".spec.completions-1\" and must not contain duplicates. At least one element is required. The indexes are represented as intervals separated by commas. The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen. The number are listed in represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". When this field is null, this field doesn't default to any value and is never evaluated at any time.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1SuccessPolicyRule-instance A.FromJSON V1SuccessPolicyRule where- parseJSON = A.withObject "V1SuccessPolicyRule" $ \o ->- V1SuccessPolicyRule- <$> (o .:? "succeededCount")- <*> (o .:? "succeededIndexes")---- | ToJSON V1SuccessPolicyRule-instance A.ToJSON V1SuccessPolicyRule where- toJSON V1SuccessPolicyRule {..} =- _omitNulls- [ "succeededCount" .= v1SuccessPolicyRuleSucceededCount- , "succeededIndexes" .= v1SuccessPolicyRuleSucceededIndexes- ]----- | Construct a value of type 'V1SuccessPolicyRule' (by applying it's required fields, if any)-mkV1SuccessPolicyRule- :: V1SuccessPolicyRule-mkV1SuccessPolicyRule =- V1SuccessPolicyRule- { v1SuccessPolicyRuleSucceededCount = Nothing- , v1SuccessPolicyRuleSucceededIndexes = Nothing- }---- ** V1Sysctl--- | V1Sysctl--- Sysctl defines a kernel parameter to be set-data V1Sysctl = V1Sysctl- { v1SysctlName :: !(Text) -- ^ /Required/ "name" - Name of a property to set- , v1SysctlValue :: !(Text) -- ^ /Required/ "value" - Value of a property to set- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Sysctl-instance A.FromJSON V1Sysctl where- parseJSON = A.withObject "V1Sysctl" $ \o ->- V1Sysctl- <$> (o .: "name")- <*> (o .: "value")---- | ToJSON V1Sysctl-instance A.ToJSON V1Sysctl where- toJSON V1Sysctl {..} =- _omitNulls- [ "name" .= v1SysctlName- , "value" .= v1SysctlValue- ]----- | Construct a value of type 'V1Sysctl' (by applying it's required fields, if any)-mkV1Sysctl- :: Text -- ^ 'v1SysctlName': Name of a property to set- -> Text -- ^ 'v1SysctlValue': Value of a property to set- -> V1Sysctl-mkV1Sysctl v1SysctlName v1SysctlValue =- V1Sysctl- { v1SysctlName- , v1SysctlValue- }---- ** V1TCPSocketAction--- | V1TCPSocketAction--- TCPSocketAction describes an action based on opening a socket-data V1TCPSocketAction = V1TCPSocketAction- { v1TCPSocketActionHost :: !(Maybe Text) -- ^ "host" - Optional: Host name to connect to, defaults to the pod IP.- , v1TCPSocketActionPort :: !(IntOrString) -- ^ /Required/ "port"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TCPSocketAction-instance A.FromJSON V1TCPSocketAction where- parseJSON = A.withObject "V1TCPSocketAction" $ \o ->- V1TCPSocketAction- <$> (o .:? "host")- <*> (o .: "port")---- | ToJSON V1TCPSocketAction-instance A.ToJSON V1TCPSocketAction where- toJSON V1TCPSocketAction {..} =- _omitNulls- [ "host" .= v1TCPSocketActionHost- , "port" .= v1TCPSocketActionPort- ]----- | Construct a value of type 'V1TCPSocketAction' (by applying it's required fields, if any)-mkV1TCPSocketAction- :: IntOrString -- ^ 'v1TCPSocketActionPort' - -> V1TCPSocketAction-mkV1TCPSocketAction v1TCPSocketActionPort =- V1TCPSocketAction- { v1TCPSocketActionHost = Nothing- , v1TCPSocketActionPort- }---- ** V1Taint--- | V1Taint--- The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.-data V1Taint = V1Taint- { v1TaintEffect :: !(Text) -- ^ /Required/ "effect" - Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.- , v1TaintKey :: !(Text) -- ^ /Required/ "key" - Required. The taint key to be applied to a node.- , v1TaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added.- , v1TaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Taint-instance A.FromJSON V1Taint where- parseJSON = A.withObject "V1Taint" $ \o ->- V1Taint- <$> (o .: "effect")- <*> (o .: "key")- <*> (o .:? "timeAdded")- <*> (o .:? "value")---- | ToJSON V1Taint-instance A.ToJSON V1Taint where- toJSON V1Taint {..} =- _omitNulls- [ "effect" .= v1TaintEffect- , "key" .= v1TaintKey- , "timeAdded" .= v1TaintTimeAdded- , "value" .= v1TaintValue- ]----- | Construct a value of type 'V1Taint' (by applying it's required fields, if any)-mkV1Taint- :: Text -- ^ 'v1TaintEffect': Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.- -> Text -- ^ 'v1TaintKey': Required. The taint key to be applied to a node.- -> V1Taint-mkV1Taint v1TaintEffect v1TaintKey =- V1Taint- { v1TaintEffect- , v1TaintKey- , v1TaintTimeAdded = Nothing- , v1TaintValue = Nothing- }---- ** V1TokenRequestSpec--- | V1TokenRequestSpec--- TokenRequestSpec contains client provided parameters of a token request.-data V1TokenRequestSpec = V1TokenRequestSpec- { v1TokenRequestSpecAudiences :: !([Text]) -- ^ /Required/ "audiences" - Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.- , v1TokenRequestSpecBoundObjectRef :: !(Maybe V1BoundObjectReference) -- ^ "boundObjectRef"- , v1TokenRequestSpecExpirationSeconds :: !(Maybe Integer) -- ^ "expirationSeconds" - ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TokenRequestSpec-instance A.FromJSON V1TokenRequestSpec where- parseJSON = A.withObject "V1TokenRequestSpec" $ \o ->- V1TokenRequestSpec- <$> (o .: "audiences")- <*> (o .:? "boundObjectRef")- <*> (o .:? "expirationSeconds")---- | ToJSON V1TokenRequestSpec-instance A.ToJSON V1TokenRequestSpec where- toJSON V1TokenRequestSpec {..} =- _omitNulls- [ "audiences" .= v1TokenRequestSpecAudiences- , "boundObjectRef" .= v1TokenRequestSpecBoundObjectRef- , "expirationSeconds" .= v1TokenRequestSpecExpirationSeconds- ]----- | Construct a value of type 'V1TokenRequestSpec' (by applying it's required fields, if any)-mkV1TokenRequestSpec- :: [Text] -- ^ 'v1TokenRequestSpecAudiences': Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.- -> V1TokenRequestSpec-mkV1TokenRequestSpec v1TokenRequestSpecAudiences =- V1TokenRequestSpec- { v1TokenRequestSpecAudiences- , v1TokenRequestSpecBoundObjectRef = Nothing- , v1TokenRequestSpecExpirationSeconds = Nothing- }---- ** V1TokenRequestStatus--- | V1TokenRequestStatus--- TokenRequestStatus is the result of a token request.-data V1TokenRequestStatus = V1TokenRequestStatus- { v1TokenRequestStatusExpirationTimestamp :: !(DateTime) -- ^ /Required/ "expirationTimestamp" - ExpirationTimestamp is the time of expiration of the returned token.- , v1TokenRequestStatusToken :: !(Text) -- ^ /Required/ "token" - Token is the opaque bearer token.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TokenRequestStatus-instance A.FromJSON V1TokenRequestStatus where- parseJSON = A.withObject "V1TokenRequestStatus" $ \o ->- V1TokenRequestStatus- <$> (o .: "expirationTimestamp")- <*> (o .: "token")---- | ToJSON V1TokenRequestStatus-instance A.ToJSON V1TokenRequestStatus where- toJSON V1TokenRequestStatus {..} =- _omitNulls- [ "expirationTimestamp" .= v1TokenRequestStatusExpirationTimestamp- , "token" .= v1TokenRequestStatusToken- ]----- | Construct a value of type 'V1TokenRequestStatus' (by applying it's required fields, if any)-mkV1TokenRequestStatus- :: DateTime -- ^ 'v1TokenRequestStatusExpirationTimestamp': ExpirationTimestamp is the time of expiration of the returned token.- -> Text -- ^ 'v1TokenRequestStatusToken': Token is the opaque bearer token.- -> V1TokenRequestStatus-mkV1TokenRequestStatus v1TokenRequestStatusExpirationTimestamp v1TokenRequestStatusToken =- V1TokenRequestStatus- { v1TokenRequestStatusExpirationTimestamp- , v1TokenRequestStatusToken- }---- ** V1TokenReview--- | V1TokenReview--- TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.-data V1TokenReview = V1TokenReview- { v1TokenReviewApiVersion :: !(Maybe Text) -- ^ "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- , v1TokenReviewKind :: !(Maybe Text) -- ^ "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- , v1TokenReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1TokenReviewSpec :: !(V1TokenReviewSpec) -- ^ /Required/ "spec"- , v1TokenReviewStatus :: !(Maybe V1TokenReviewStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TokenReview-instance A.FromJSON V1TokenReview where- parseJSON = A.withObject "V1TokenReview" $ \o ->- V1TokenReview- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1TokenReview-instance A.ToJSON V1TokenReview where- toJSON V1TokenReview {..} =- _omitNulls- [ "apiVersion" .= v1TokenReviewApiVersion- , "kind" .= v1TokenReviewKind- , "metadata" .= v1TokenReviewMetadata- , "spec" .= v1TokenReviewSpec- , "status" .= v1TokenReviewStatus- ]----- | Construct a value of type 'V1TokenReview' (by applying it's required fields, if any)-mkV1TokenReview- :: V1TokenReviewSpec -- ^ 'v1TokenReviewSpec' - -> V1TokenReview-mkV1TokenReview v1TokenReviewSpec =- V1TokenReview- { v1TokenReviewApiVersion = Nothing- , v1TokenReviewKind = Nothing- , v1TokenReviewMetadata = Nothing- , v1TokenReviewSpec- , v1TokenReviewStatus = Nothing- }---- ** V1TokenReviewSpec--- | V1TokenReviewSpec--- TokenReviewSpec is a description of the token authentication request.-data V1TokenReviewSpec = V1TokenReviewSpec- { v1TokenReviewSpecAudiences :: !(Maybe [Text]) -- ^ "audiences" - Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.- , v1TokenReviewSpecToken :: !(Maybe Text) -- ^ "token" - Token is the opaque bearer token.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TokenReviewSpec-instance A.FromJSON V1TokenReviewSpec where- parseJSON = A.withObject "V1TokenReviewSpec" $ \o ->- V1TokenReviewSpec- <$> (o .:? "audiences")- <*> (o .:? "token")---- | ToJSON V1TokenReviewSpec-instance A.ToJSON V1TokenReviewSpec where- toJSON V1TokenReviewSpec {..} =- _omitNulls- [ "audiences" .= v1TokenReviewSpecAudiences- , "token" .= v1TokenReviewSpecToken- ]----- | Construct a value of type 'V1TokenReviewSpec' (by applying it's required fields, if any)-mkV1TokenReviewSpec- :: V1TokenReviewSpec-mkV1TokenReviewSpec =- V1TokenReviewSpec- { v1TokenReviewSpecAudiences = Nothing- , v1TokenReviewSpecToken = Nothing- }---- ** V1TokenReviewStatus--- | V1TokenReviewStatus--- TokenReviewStatus is the result of the token authentication request.-data V1TokenReviewStatus = V1TokenReviewStatus- { v1TokenReviewStatusAudiences :: !(Maybe [Text]) -- ^ "audiences" - Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.- , v1TokenReviewStatusAuthenticated :: !(Maybe Bool) -- ^ "authenticated" - Authenticated indicates that the token was associated with a known user.- , v1TokenReviewStatusError :: !(Maybe Text) -- ^ "error" - Error indicates that the token couldn't be checked- , v1TokenReviewStatusUser :: !(Maybe V1UserInfo) -- ^ "user"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TokenReviewStatus-instance A.FromJSON V1TokenReviewStatus where- parseJSON = A.withObject "V1TokenReviewStatus" $ \o ->- V1TokenReviewStatus- <$> (o .:? "audiences")- <*> (o .:? "authenticated")- <*> (o .:? "error")- <*> (o .:? "user")---- | ToJSON V1TokenReviewStatus-instance A.ToJSON V1TokenReviewStatus where- toJSON V1TokenReviewStatus {..} =- _omitNulls- [ "audiences" .= v1TokenReviewStatusAudiences- , "authenticated" .= v1TokenReviewStatusAuthenticated- , "error" .= v1TokenReviewStatusError- , "user" .= v1TokenReviewStatusUser- ]----- | Construct a value of type 'V1TokenReviewStatus' (by applying it's required fields, if any)-mkV1TokenReviewStatus- :: V1TokenReviewStatus-mkV1TokenReviewStatus =- V1TokenReviewStatus- { v1TokenReviewStatusAudiences = Nothing- , v1TokenReviewStatusAuthenticated = Nothing- , v1TokenReviewStatusError = Nothing- , v1TokenReviewStatusUser = Nothing- }---- ** V1Toleration--- | V1Toleration--- The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.-data V1Toleration = V1Toleration- { v1TolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.- , v1TolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.- , v1TolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.- , v1TolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.- , v1TolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Toleration-instance A.FromJSON V1Toleration where- parseJSON = A.withObject "V1Toleration" $ \o ->- V1Toleration- <$> (o .:? "effect")- <*> (o .:? "key")- <*> (o .:? "operator")- <*> (o .:? "tolerationSeconds")- <*> (o .:? "value")---- | ToJSON V1Toleration-instance A.ToJSON V1Toleration where- toJSON V1Toleration {..} =- _omitNulls- [ "effect" .= v1TolerationEffect- , "key" .= v1TolerationKey- , "operator" .= v1TolerationOperator- , "tolerationSeconds" .= v1TolerationTolerationSeconds- , "value" .= v1TolerationValue- ]----- | Construct a value of type 'V1Toleration' (by applying it's required fields, if any)-mkV1Toleration- :: V1Toleration-mkV1Toleration =- V1Toleration- { v1TolerationEffect = Nothing- , v1TolerationKey = Nothing- , v1TolerationOperator = Nothing- , v1TolerationTolerationSeconds = Nothing- , v1TolerationValue = Nothing- }---- ** V1TopologySelectorLabelRequirement--- | V1TopologySelectorLabelRequirement--- A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.-data V1TopologySelectorLabelRequirement = V1TopologySelectorLabelRequirement- { v1TopologySelectorLabelRequirementKey :: !(Text) -- ^ /Required/ "key" - The label key that the selector applies to.- , v1TopologySelectorLabelRequirementValues :: !([Text]) -- ^ /Required/ "values" - An array of string values. One value must match the label to be selected. Each entry in Values is ORed.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TopologySelectorLabelRequirement-instance A.FromJSON V1TopologySelectorLabelRequirement where- parseJSON = A.withObject "V1TopologySelectorLabelRequirement" $ \o ->- V1TopologySelectorLabelRequirement- <$> (o .: "key")- <*> (o .: "values")---- | ToJSON V1TopologySelectorLabelRequirement-instance A.ToJSON V1TopologySelectorLabelRequirement where- toJSON V1TopologySelectorLabelRequirement {..} =- _omitNulls- [ "key" .= v1TopologySelectorLabelRequirementKey- , "values" .= v1TopologySelectorLabelRequirementValues- ]----- | Construct a value of type 'V1TopologySelectorLabelRequirement' (by applying it's required fields, if any)-mkV1TopologySelectorLabelRequirement- :: Text -- ^ 'v1TopologySelectorLabelRequirementKey': The label key that the selector applies to.- -> [Text] -- ^ 'v1TopologySelectorLabelRequirementValues': An array of string values. One value must match the label to be selected. Each entry in Values is ORed.- -> V1TopologySelectorLabelRequirement-mkV1TopologySelectorLabelRequirement v1TopologySelectorLabelRequirementKey v1TopologySelectorLabelRequirementValues =- V1TopologySelectorLabelRequirement- { v1TopologySelectorLabelRequirementKey- , v1TopologySelectorLabelRequirementValues- }---- ** V1TopologySelectorTerm--- | V1TopologySelectorTerm--- A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.-data V1TopologySelectorTerm = V1TopologySelectorTerm- { v1TopologySelectorTermMatchLabelExpressions :: !(Maybe [V1TopologySelectorLabelRequirement]) -- ^ "matchLabelExpressions" - A list of topology selector requirements by labels.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TopologySelectorTerm-instance A.FromJSON V1TopologySelectorTerm where- parseJSON = A.withObject "V1TopologySelectorTerm" $ \o ->- V1TopologySelectorTerm- <$> (o .:? "matchLabelExpressions")---- | ToJSON V1TopologySelectorTerm-instance A.ToJSON V1TopologySelectorTerm where- toJSON V1TopologySelectorTerm {..} =- _omitNulls- [ "matchLabelExpressions" .= v1TopologySelectorTermMatchLabelExpressions- ]----- | Construct a value of type 'V1TopologySelectorTerm' (by applying it's required fields, if any)-mkV1TopologySelectorTerm- :: V1TopologySelectorTerm-mkV1TopologySelectorTerm =- V1TopologySelectorTerm- { v1TopologySelectorTermMatchLabelExpressions = Nothing- }---- ** V1TopologySpreadConstraint--- | V1TopologySpreadConstraint--- TopologySpreadConstraint specifies how to spread matching pods among the given topology.-data V1TopologySpreadConstraint = V1TopologySpreadConstraint- { v1TopologySpreadConstraintLabelSelector :: !(Maybe V1LabelSelector) -- ^ "labelSelector"- , v1TopologySpreadConstraintMatchLabelKeys :: !(Maybe [Text]) -- ^ "matchLabelKeys" - MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).- , v1TopologySpreadConstraintMaxSkew :: !(Int) -- ^ /Required/ "maxSkew" - MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.- , v1TopologySpreadConstraintMinDomains :: !(Maybe Int) -- ^ "minDomains" - MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.- , v1TopologySpreadConstraintNodeAffinityPolicy :: !(Maybe Text) -- ^ "nodeAffinityPolicy" - NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy.- , v1TopologySpreadConstraintNodeTaintsPolicy :: !(Maybe Text) -- ^ "nodeTaintsPolicy" - NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy.- , v1TopologySpreadConstraintTopologyKey :: !(Text) -- ^ /Required/ "topologyKey" - TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field.- , v1TopologySpreadConstraintWhenUnsatisfiable :: !(Text) -- ^ /Required/ "whenUnsatisfiable" - WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assignment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TopologySpreadConstraint-instance A.FromJSON V1TopologySpreadConstraint where- parseJSON = A.withObject "V1TopologySpreadConstraint" $ \o ->- V1TopologySpreadConstraint- <$> (o .:? "labelSelector")- <*> (o .:? "matchLabelKeys")- <*> (o .: "maxSkew")- <*> (o .:? "minDomains")- <*> (o .:? "nodeAffinityPolicy")- <*> (o .:? "nodeTaintsPolicy")- <*> (o .: "topologyKey")- <*> (o .: "whenUnsatisfiable")---- | ToJSON V1TopologySpreadConstraint-instance A.ToJSON V1TopologySpreadConstraint where- toJSON V1TopologySpreadConstraint {..} =- _omitNulls- [ "labelSelector" .= v1TopologySpreadConstraintLabelSelector- , "matchLabelKeys" .= v1TopologySpreadConstraintMatchLabelKeys- , "maxSkew" .= v1TopologySpreadConstraintMaxSkew- , "minDomains" .= v1TopologySpreadConstraintMinDomains- , "nodeAffinityPolicy" .= v1TopologySpreadConstraintNodeAffinityPolicy- , "nodeTaintsPolicy" .= v1TopologySpreadConstraintNodeTaintsPolicy- , "topologyKey" .= v1TopologySpreadConstraintTopologyKey- , "whenUnsatisfiable" .= v1TopologySpreadConstraintWhenUnsatisfiable- ]----- | Construct a value of type 'V1TopologySpreadConstraint' (by applying it's required fields, if any)-mkV1TopologySpreadConstraint- :: Int -- ^ 'v1TopologySpreadConstraintMaxSkew': MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.- -> Text -- ^ 'v1TopologySpreadConstraintTopologyKey': TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field.- -> Text -- ^ 'v1TopologySpreadConstraintWhenUnsatisfiable': WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assignment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.- -> V1TopologySpreadConstraint-mkV1TopologySpreadConstraint v1TopologySpreadConstraintMaxSkew v1TopologySpreadConstraintTopologyKey v1TopologySpreadConstraintWhenUnsatisfiable =- V1TopologySpreadConstraint- { v1TopologySpreadConstraintLabelSelector = Nothing- , v1TopologySpreadConstraintMatchLabelKeys = Nothing- , v1TopologySpreadConstraintMaxSkew- , v1TopologySpreadConstraintMinDomains = Nothing- , v1TopologySpreadConstraintNodeAffinityPolicy = Nothing- , v1TopologySpreadConstraintNodeTaintsPolicy = Nothing- , v1TopologySpreadConstraintTopologyKey- , v1TopologySpreadConstraintWhenUnsatisfiable- }---- ** V1TypeChecking--- | V1TypeChecking--- TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy-data V1TypeChecking = V1TypeChecking- { v1TypeCheckingExpressionWarnings :: !(Maybe [V1ExpressionWarning]) -- ^ "expressionWarnings" - The type checking warnings for each expression.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TypeChecking-instance A.FromJSON V1TypeChecking where- parseJSON = A.withObject "V1TypeChecking" $ \o ->- V1TypeChecking- <$> (o .:? "expressionWarnings")---- | ToJSON V1TypeChecking-instance A.ToJSON V1TypeChecking where- toJSON V1TypeChecking {..} =- _omitNulls- [ "expressionWarnings" .= v1TypeCheckingExpressionWarnings- ]----- | Construct a value of type 'V1TypeChecking' (by applying it's required fields, if any)-mkV1TypeChecking- :: V1TypeChecking-mkV1TypeChecking =- V1TypeChecking- { v1TypeCheckingExpressionWarnings = Nothing- }---- ** V1TypedLocalObjectReference--- | V1TypedLocalObjectReference--- TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.-data V1TypedLocalObjectReference = V1TypedLocalObjectReference- { v1TypedLocalObjectReferenceApiGroup :: !(Maybe Text) -- ^ "apiGroup" - 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.- , v1TypedLocalObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced- , v1TypedLocalObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TypedLocalObjectReference-instance A.FromJSON V1TypedLocalObjectReference where- parseJSON = A.withObject "V1TypedLocalObjectReference" $ \o ->- V1TypedLocalObjectReference- <$> (o .:? "apiGroup")- <*> (o .: "kind")- <*> (o .: "name")---- | ToJSON V1TypedLocalObjectReference-instance A.ToJSON V1TypedLocalObjectReference where- toJSON V1TypedLocalObjectReference {..} =- _omitNulls- [ "apiGroup" .= v1TypedLocalObjectReferenceApiGroup- , "kind" .= v1TypedLocalObjectReferenceKind- , "name" .= v1TypedLocalObjectReferenceName- ]----- | Construct a value of type 'V1TypedLocalObjectReference' (by applying it's required fields, if any)-mkV1TypedLocalObjectReference- :: Text -- ^ 'v1TypedLocalObjectReferenceKind': Kind is the type of resource being referenced- -> Text -- ^ 'v1TypedLocalObjectReferenceName': Name is the name of resource being referenced- -> V1TypedLocalObjectReference-mkV1TypedLocalObjectReference v1TypedLocalObjectReferenceKind v1TypedLocalObjectReferenceName =- V1TypedLocalObjectReference- { v1TypedLocalObjectReferenceApiGroup = Nothing- , v1TypedLocalObjectReferenceKind- , v1TypedLocalObjectReferenceName- }---- ** V1TypedObjectReference--- | V1TypedObjectReference--- TypedObjectReference contains enough information to let you locate the typed referenced object-data V1TypedObjectReference = V1TypedObjectReference- { v1TypedObjectReferenceApiGroup :: !(Maybe Text) -- ^ "apiGroup" - 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.- , v1TypedObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced- , v1TypedObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced- , v1TypedObjectReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1TypedObjectReference-instance A.FromJSON V1TypedObjectReference where- parseJSON = A.withObject "V1TypedObjectReference" $ \o ->- V1TypedObjectReference- <$> (o .:? "apiGroup")- <*> (o .: "kind")- <*> (o .: "name")- <*> (o .:? "namespace")---- | ToJSON V1TypedObjectReference-instance A.ToJSON V1TypedObjectReference where- toJSON V1TypedObjectReference {..} =- _omitNulls- [ "apiGroup" .= v1TypedObjectReferenceApiGroup- , "kind" .= v1TypedObjectReferenceKind- , "name" .= v1TypedObjectReferenceName- , "namespace" .= v1TypedObjectReferenceNamespace- ]----- | Construct a value of type 'V1TypedObjectReference' (by applying it's required fields, if any)-mkV1TypedObjectReference- :: Text -- ^ 'v1TypedObjectReferenceKind': Kind is the type of resource being referenced- -> Text -- ^ 'v1TypedObjectReferenceName': Name is the name of resource being referenced- -> V1TypedObjectReference-mkV1TypedObjectReference v1TypedObjectReferenceKind v1TypedObjectReferenceName =- V1TypedObjectReference- { v1TypedObjectReferenceApiGroup = Nothing- , v1TypedObjectReferenceKind- , v1TypedObjectReferenceName- , v1TypedObjectReferenceNamespace = Nothing- }---- ** V1UncountedTerminatedPods--- | V1UncountedTerminatedPods--- UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.-data V1UncountedTerminatedPods = V1UncountedTerminatedPods- { v1UncountedTerminatedPodsFailed :: !(Maybe [Text]) -- ^ "failed" - failed holds UIDs of failed Pods.- , v1UncountedTerminatedPodsSucceeded :: !(Maybe [Text]) -- ^ "succeeded" - succeeded holds UIDs of succeeded Pods.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1UncountedTerminatedPods-instance A.FromJSON V1UncountedTerminatedPods where- parseJSON = A.withObject "V1UncountedTerminatedPods" $ \o ->- V1UncountedTerminatedPods- <$> (o .:? "failed")- <*> (o .:? "succeeded")---- | ToJSON V1UncountedTerminatedPods-instance A.ToJSON V1UncountedTerminatedPods where- toJSON V1UncountedTerminatedPods {..} =- _omitNulls- [ "failed" .= v1UncountedTerminatedPodsFailed- , "succeeded" .= v1UncountedTerminatedPodsSucceeded- ]----- | Construct a value of type 'V1UncountedTerminatedPods' (by applying it's required fields, if any)-mkV1UncountedTerminatedPods- :: V1UncountedTerminatedPods-mkV1UncountedTerminatedPods =- V1UncountedTerminatedPods- { v1UncountedTerminatedPodsFailed = Nothing- , v1UncountedTerminatedPodsSucceeded = Nothing- }---- ** V1UserInfo--- | V1UserInfo--- UserInfo holds the information about the user needed to implement the user.Info interface.-data V1UserInfo = V1UserInfo- { v1UserInfoExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Any additional information provided by the authenticator.- , v1UserInfoGroups :: !(Maybe [Text]) -- ^ "groups" - The names of groups this user is a part of.- , v1UserInfoUid :: !(Maybe Text) -- ^ "uid" - A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.- , v1UserInfoUsername :: !(Maybe Text) -- ^ "username" - The name that uniquely identifies this user among all active users.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1UserInfo-instance A.FromJSON V1UserInfo where- parseJSON = A.withObject "V1UserInfo" $ \o ->- V1UserInfo- <$> (o .:? "extra")- <*> (o .:? "groups")- <*> (o .:? "uid")- <*> (o .:? "username")---- | ToJSON V1UserInfo-instance A.ToJSON V1UserInfo where- toJSON V1UserInfo {..} =- _omitNulls- [ "extra" .= v1UserInfoExtra- , "groups" .= v1UserInfoGroups- , "uid" .= v1UserInfoUid- , "username" .= v1UserInfoUsername- ]----- | Construct a value of type 'V1UserInfo' (by applying it's required fields, if any)-mkV1UserInfo- :: V1UserInfo-mkV1UserInfo =- V1UserInfo- { v1UserInfoExtra = Nothing- , v1UserInfoGroups = Nothing- , v1UserInfoUid = Nothing- , v1UserInfoUsername = Nothing- }---- ** V1UserSubject--- | V1UserSubject--- UserSubject holds detailed information for user-kind subject.-data V1UserSubject = V1UserSubject- { v1UserSubjectName :: !(Text) -- ^ /Required/ "name" - `name` is the username that matches, or \"*\" to match all usernames. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1UserSubject-instance A.FromJSON V1UserSubject where- parseJSON = A.withObject "V1UserSubject" $ \o ->- V1UserSubject- <$> (o .: "name")---- | ToJSON V1UserSubject-instance A.ToJSON V1UserSubject where- toJSON V1UserSubject {..} =- _omitNulls- [ "name" .= v1UserSubjectName- ]----- | Construct a value of type 'V1UserSubject' (by applying it's required fields, if any)-mkV1UserSubject- :: Text -- ^ 'v1UserSubjectName': `name` is the username that matches, or \"*\" to match all usernames. Required.- -> V1UserSubject-mkV1UserSubject v1UserSubjectName =- V1UserSubject- { v1UserSubjectName- }---- ** V1ValidatingAdmissionPolicy--- | V1ValidatingAdmissionPolicy--- ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.-data V1ValidatingAdmissionPolicy = V1ValidatingAdmissionPolicy- { v1ValidatingAdmissionPolicyApiVersion :: !(Maybe Text) -- ^ "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- , v1ValidatingAdmissionPolicyKind :: !(Maybe Text) -- ^ "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- , v1ValidatingAdmissionPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ValidatingAdmissionPolicySpec :: !(Maybe V1ValidatingAdmissionPolicySpec) -- ^ "spec"- , v1ValidatingAdmissionPolicyStatus :: !(Maybe V1ValidatingAdmissionPolicyStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingAdmissionPolicy-instance A.FromJSON V1ValidatingAdmissionPolicy where- parseJSON = A.withObject "V1ValidatingAdmissionPolicy" $ \o ->- V1ValidatingAdmissionPolicy- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1ValidatingAdmissionPolicy-instance A.ToJSON V1ValidatingAdmissionPolicy where- toJSON V1ValidatingAdmissionPolicy {..} =- _omitNulls- [ "apiVersion" .= v1ValidatingAdmissionPolicyApiVersion- , "kind" .= v1ValidatingAdmissionPolicyKind- , "metadata" .= v1ValidatingAdmissionPolicyMetadata- , "spec" .= v1ValidatingAdmissionPolicySpec- , "status" .= v1ValidatingAdmissionPolicyStatus- ]----- | Construct a value of type 'V1ValidatingAdmissionPolicy' (by applying it's required fields, if any)-mkV1ValidatingAdmissionPolicy- :: V1ValidatingAdmissionPolicy-mkV1ValidatingAdmissionPolicy =- V1ValidatingAdmissionPolicy- { v1ValidatingAdmissionPolicyApiVersion = Nothing- , v1ValidatingAdmissionPolicyKind = Nothing- , v1ValidatingAdmissionPolicyMetadata = Nothing- , v1ValidatingAdmissionPolicySpec = Nothing- , v1ValidatingAdmissionPolicyStatus = Nothing- }---- ** V1ValidatingAdmissionPolicyBinding--- | V1ValidatingAdmissionPolicyBinding--- 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.-data V1ValidatingAdmissionPolicyBinding = V1ValidatingAdmissionPolicyBinding- { v1ValidatingAdmissionPolicyBindingApiVersion :: !(Maybe Text) -- ^ "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- , v1ValidatingAdmissionPolicyBindingKind :: !(Maybe Text) -- ^ "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- , v1ValidatingAdmissionPolicyBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ValidatingAdmissionPolicyBindingSpec :: !(Maybe V1ValidatingAdmissionPolicyBindingSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingAdmissionPolicyBinding-instance A.FromJSON V1ValidatingAdmissionPolicyBinding where- parseJSON = A.withObject "V1ValidatingAdmissionPolicyBinding" $ \o ->- V1ValidatingAdmissionPolicyBinding- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1ValidatingAdmissionPolicyBinding-instance A.ToJSON V1ValidatingAdmissionPolicyBinding where- toJSON V1ValidatingAdmissionPolicyBinding {..} =- _omitNulls- [ "apiVersion" .= v1ValidatingAdmissionPolicyBindingApiVersion- , "kind" .= v1ValidatingAdmissionPolicyBindingKind- , "metadata" .= v1ValidatingAdmissionPolicyBindingMetadata- , "spec" .= v1ValidatingAdmissionPolicyBindingSpec- ]----- | Construct a value of type 'V1ValidatingAdmissionPolicyBinding' (by applying it's required fields, if any)-mkV1ValidatingAdmissionPolicyBinding- :: V1ValidatingAdmissionPolicyBinding-mkV1ValidatingAdmissionPolicyBinding =- V1ValidatingAdmissionPolicyBinding- { v1ValidatingAdmissionPolicyBindingApiVersion = Nothing- , v1ValidatingAdmissionPolicyBindingKind = Nothing- , v1ValidatingAdmissionPolicyBindingMetadata = Nothing- , v1ValidatingAdmissionPolicyBindingSpec = Nothing- }---- ** V1ValidatingAdmissionPolicyBindingList--- | V1ValidatingAdmissionPolicyBindingList--- ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.-data V1ValidatingAdmissionPolicyBindingList = V1ValidatingAdmissionPolicyBindingList- { v1ValidatingAdmissionPolicyBindingListApiVersion :: !(Maybe Text) -- ^ "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- , v1ValidatingAdmissionPolicyBindingListItems :: !([V1ValidatingAdmissionPolicyBinding]) -- ^ /Required/ "items" - List of PolicyBinding.- , v1ValidatingAdmissionPolicyBindingListKind :: !(Maybe Text) -- ^ "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- , v1ValidatingAdmissionPolicyBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingAdmissionPolicyBindingList-instance A.FromJSON V1ValidatingAdmissionPolicyBindingList where- parseJSON = A.withObject "V1ValidatingAdmissionPolicyBindingList" $ \o ->- V1ValidatingAdmissionPolicyBindingList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ValidatingAdmissionPolicyBindingList-instance A.ToJSON V1ValidatingAdmissionPolicyBindingList where- toJSON V1ValidatingAdmissionPolicyBindingList {..} =- _omitNulls- [ "apiVersion" .= v1ValidatingAdmissionPolicyBindingListApiVersion- , "items" .= v1ValidatingAdmissionPolicyBindingListItems- , "kind" .= v1ValidatingAdmissionPolicyBindingListKind- , "metadata" .= v1ValidatingAdmissionPolicyBindingListMetadata- ]----- | Construct a value of type 'V1ValidatingAdmissionPolicyBindingList' (by applying it's required fields, if any)-mkV1ValidatingAdmissionPolicyBindingList- :: [V1ValidatingAdmissionPolicyBinding] -- ^ 'v1ValidatingAdmissionPolicyBindingListItems': List of PolicyBinding.- -> V1ValidatingAdmissionPolicyBindingList-mkV1ValidatingAdmissionPolicyBindingList v1ValidatingAdmissionPolicyBindingListItems =- V1ValidatingAdmissionPolicyBindingList- { v1ValidatingAdmissionPolicyBindingListApiVersion = Nothing- , v1ValidatingAdmissionPolicyBindingListItems- , v1ValidatingAdmissionPolicyBindingListKind = Nothing- , v1ValidatingAdmissionPolicyBindingListMetadata = Nothing- }---- ** V1ValidatingAdmissionPolicyBindingSpec--- | V1ValidatingAdmissionPolicyBindingSpec--- ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.-data V1ValidatingAdmissionPolicyBindingSpec = V1ValidatingAdmissionPolicyBindingSpec- { v1ValidatingAdmissionPolicyBindingSpecMatchResources :: !(Maybe V1MatchResources) -- ^ "matchResources"- , v1ValidatingAdmissionPolicyBindingSpecParamRef :: !(Maybe V1ParamRef) -- ^ "paramRef"- , v1ValidatingAdmissionPolicyBindingSpecPolicyName :: !(Maybe Text) -- ^ "policyName" - 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.- , v1ValidatingAdmissionPolicyBindingSpecValidationActions :: !(Maybe [Text]) -- ^ "validationActions" - validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions. Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy. validationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action. The supported actions values are: \"Deny\" specifies that a validation failure results in a denied request. \"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\\\"]}]\"` Clients should expect to handle additional values by ignoring any values not recognized. \"Deny\" and \"Warn\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingAdmissionPolicyBindingSpec-instance A.FromJSON V1ValidatingAdmissionPolicyBindingSpec where- parseJSON = A.withObject "V1ValidatingAdmissionPolicyBindingSpec" $ \o ->- V1ValidatingAdmissionPolicyBindingSpec- <$> (o .:? "matchResources")- <*> (o .:? "paramRef")- <*> (o .:? "policyName")- <*> (o .:? "validationActions")---- | ToJSON V1ValidatingAdmissionPolicyBindingSpec-instance A.ToJSON V1ValidatingAdmissionPolicyBindingSpec where- toJSON V1ValidatingAdmissionPolicyBindingSpec {..} =- _omitNulls- [ "matchResources" .= v1ValidatingAdmissionPolicyBindingSpecMatchResources- , "paramRef" .= v1ValidatingAdmissionPolicyBindingSpecParamRef- , "policyName" .= v1ValidatingAdmissionPolicyBindingSpecPolicyName- , "validationActions" .= v1ValidatingAdmissionPolicyBindingSpecValidationActions- ]----- | Construct a value of type 'V1ValidatingAdmissionPolicyBindingSpec' (by applying it's required fields, if any)-mkV1ValidatingAdmissionPolicyBindingSpec- :: V1ValidatingAdmissionPolicyBindingSpec-mkV1ValidatingAdmissionPolicyBindingSpec =- V1ValidatingAdmissionPolicyBindingSpec- { v1ValidatingAdmissionPolicyBindingSpecMatchResources = Nothing- , v1ValidatingAdmissionPolicyBindingSpecParamRef = Nothing- , v1ValidatingAdmissionPolicyBindingSpecPolicyName = Nothing- , v1ValidatingAdmissionPolicyBindingSpecValidationActions = Nothing- }---- ** V1ValidatingAdmissionPolicyList--- | V1ValidatingAdmissionPolicyList--- ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.-data V1ValidatingAdmissionPolicyList = V1ValidatingAdmissionPolicyList- { v1ValidatingAdmissionPolicyListApiVersion :: !(Maybe Text) -- ^ "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- , v1ValidatingAdmissionPolicyListItems :: !([V1ValidatingAdmissionPolicy]) -- ^ /Required/ "items" - List of ValidatingAdmissionPolicy.- , v1ValidatingAdmissionPolicyListKind :: !(Maybe Text) -- ^ "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- , v1ValidatingAdmissionPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingAdmissionPolicyList-instance A.FromJSON V1ValidatingAdmissionPolicyList where- parseJSON = A.withObject "V1ValidatingAdmissionPolicyList" $ \o ->- V1ValidatingAdmissionPolicyList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ValidatingAdmissionPolicyList-instance A.ToJSON V1ValidatingAdmissionPolicyList where- toJSON V1ValidatingAdmissionPolicyList {..} =- _omitNulls- [ "apiVersion" .= v1ValidatingAdmissionPolicyListApiVersion- , "items" .= v1ValidatingAdmissionPolicyListItems- , "kind" .= v1ValidatingAdmissionPolicyListKind- , "metadata" .= v1ValidatingAdmissionPolicyListMetadata- ]----- | Construct a value of type 'V1ValidatingAdmissionPolicyList' (by applying it's required fields, if any)-mkV1ValidatingAdmissionPolicyList- :: [V1ValidatingAdmissionPolicy] -- ^ 'v1ValidatingAdmissionPolicyListItems': List of ValidatingAdmissionPolicy.- -> V1ValidatingAdmissionPolicyList-mkV1ValidatingAdmissionPolicyList v1ValidatingAdmissionPolicyListItems =- V1ValidatingAdmissionPolicyList- { v1ValidatingAdmissionPolicyListApiVersion = Nothing- , v1ValidatingAdmissionPolicyListItems- , v1ValidatingAdmissionPolicyListKind = Nothing- , v1ValidatingAdmissionPolicyListMetadata = Nothing- }---- ** V1ValidatingAdmissionPolicySpec--- | V1ValidatingAdmissionPolicySpec--- ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.-data V1ValidatingAdmissionPolicySpec = V1ValidatingAdmissionPolicySpec- { v1ValidatingAdmissionPolicySpecAuditAnnotations :: !(Maybe [V1AuditAnnotation]) -- ^ "auditAnnotations" - 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.- , v1ValidatingAdmissionPolicySpecFailurePolicy :: !(Maybe Text) -- ^ "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.- , v1ValidatingAdmissionPolicySpecMatchConditions :: !(Maybe [V1MatchCondition]) -- ^ "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 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. 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- , v1ValidatingAdmissionPolicySpecMatchConstraints :: !(Maybe V1MatchResources) -- ^ "matchConstraints"- , v1ValidatingAdmissionPolicySpecParamKind :: !(Maybe V1ParamKind) -- ^ "paramKind"- , v1ValidatingAdmissionPolicySpecValidations :: !(Maybe [V1Validation]) -- ^ "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.- , v1ValidatingAdmissionPolicySpecVariables :: !(Maybe [V1Variable]) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingAdmissionPolicySpec-instance A.FromJSON V1ValidatingAdmissionPolicySpec where- parseJSON = A.withObject "V1ValidatingAdmissionPolicySpec" $ \o ->- V1ValidatingAdmissionPolicySpec- <$> (o .:? "auditAnnotations")- <*> (o .:? "failurePolicy")- <*> (o .:? "matchConditions")- <*> (o .:? "matchConstraints")- <*> (o .:? "paramKind")- <*> (o .:? "validations")- <*> (o .:? "variables")---- | ToJSON V1ValidatingAdmissionPolicySpec-instance A.ToJSON V1ValidatingAdmissionPolicySpec where- toJSON V1ValidatingAdmissionPolicySpec {..} =- _omitNulls- [ "auditAnnotations" .= v1ValidatingAdmissionPolicySpecAuditAnnotations- , "failurePolicy" .= v1ValidatingAdmissionPolicySpecFailurePolicy- , "matchConditions" .= v1ValidatingAdmissionPolicySpecMatchConditions- , "matchConstraints" .= v1ValidatingAdmissionPolicySpecMatchConstraints- , "paramKind" .= v1ValidatingAdmissionPolicySpecParamKind- , "validations" .= v1ValidatingAdmissionPolicySpecValidations- , "variables" .= v1ValidatingAdmissionPolicySpecVariables- ]----- | Construct a value of type 'V1ValidatingAdmissionPolicySpec' (by applying it's required fields, if any)-mkV1ValidatingAdmissionPolicySpec- :: V1ValidatingAdmissionPolicySpec-mkV1ValidatingAdmissionPolicySpec =- V1ValidatingAdmissionPolicySpec- { v1ValidatingAdmissionPolicySpecAuditAnnotations = Nothing- , v1ValidatingAdmissionPolicySpecFailurePolicy = Nothing- , v1ValidatingAdmissionPolicySpecMatchConditions = Nothing- , v1ValidatingAdmissionPolicySpecMatchConstraints = Nothing- , v1ValidatingAdmissionPolicySpecParamKind = Nothing- , v1ValidatingAdmissionPolicySpecValidations = Nothing- , v1ValidatingAdmissionPolicySpecVariables = Nothing- }---- ** V1ValidatingAdmissionPolicyStatus--- | V1ValidatingAdmissionPolicyStatus--- ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.-data V1ValidatingAdmissionPolicyStatus = V1ValidatingAdmissionPolicyStatus- { v1ValidatingAdmissionPolicyStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - The conditions represent the latest available observations of a policy's current state.- , v1ValidatingAdmissionPolicyStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the controller.- , v1ValidatingAdmissionPolicyStatusTypeChecking :: !(Maybe V1TypeChecking) -- ^ "typeChecking"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingAdmissionPolicyStatus-instance A.FromJSON V1ValidatingAdmissionPolicyStatus where- parseJSON = A.withObject "V1ValidatingAdmissionPolicyStatus" $ \o ->- V1ValidatingAdmissionPolicyStatus- <$> (o .:? "conditions")- <*> (o .:? "observedGeneration")- <*> (o .:? "typeChecking")---- | ToJSON V1ValidatingAdmissionPolicyStatus-instance A.ToJSON V1ValidatingAdmissionPolicyStatus where- toJSON V1ValidatingAdmissionPolicyStatus {..} =- _omitNulls- [ "conditions" .= v1ValidatingAdmissionPolicyStatusConditions- , "observedGeneration" .= v1ValidatingAdmissionPolicyStatusObservedGeneration- , "typeChecking" .= v1ValidatingAdmissionPolicyStatusTypeChecking- ]----- | Construct a value of type 'V1ValidatingAdmissionPolicyStatus' (by applying it's required fields, if any)-mkV1ValidatingAdmissionPolicyStatus- :: V1ValidatingAdmissionPolicyStatus-mkV1ValidatingAdmissionPolicyStatus =- V1ValidatingAdmissionPolicyStatus- { v1ValidatingAdmissionPolicyStatusConditions = Nothing- , v1ValidatingAdmissionPolicyStatusObservedGeneration = Nothing- , v1ValidatingAdmissionPolicyStatusTypeChecking = Nothing- }---- ** V1ValidatingWebhook--- | V1ValidatingWebhook--- ValidatingWebhook describes an admission webhook and the resources and operations it applies to.-data V1ValidatingWebhook = V1ValidatingWebhook- { v1ValidatingWebhookAdmissionReviewVersions :: !([Text]) -- ^ /Required/ "admissionReviewVersions" - AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.- , v1ValidatingWebhookClientConfig :: !(AdmissionregistrationV1WebhookClientConfig) -- ^ /Required/ "clientConfig"- , v1ValidatingWebhookFailurePolicy :: !(Maybe Text) -- ^ "failurePolicy" - FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.- , v1ValidatingWebhookMatchConditions :: !(Maybe [V1MatchCondition]) -- ^ "matchConditions" - MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. 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. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped. 2. If ALL matchConditions evaluate to TRUE, the webhook is called. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the error is ignored and the webhook is skipped- , v1ValidatingWebhookMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - matchPolicy defines how the \"rules\" 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 webhook. - 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 webhook. Defaults to \"Equivalent\"- , v1ValidatingWebhookName :: !(Text) -- ^ /Required/ "name" - The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.- , v1ValidatingWebhookNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"- , v1ValidatingWebhookObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"- , v1ValidatingWebhookRules :: !(Maybe [V1RuleWithOperations]) -- ^ "rules" - Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.- , v1ValidatingWebhookSideEffects :: !(Text) -- ^ /Required/ "sideEffects" - SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.- , v1ValidatingWebhookTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingWebhook-instance A.FromJSON V1ValidatingWebhook where- parseJSON = A.withObject "V1ValidatingWebhook" $ \o ->- V1ValidatingWebhook- <$> (o .: "admissionReviewVersions")- <*> (o .: "clientConfig")- <*> (o .:? "failurePolicy")- <*> (o .:? "matchConditions")- <*> (o .:? "matchPolicy")- <*> (o .: "name")- <*> (o .:? "namespaceSelector")- <*> (o .:? "objectSelector")- <*> (o .:? "rules")- <*> (o .: "sideEffects")- <*> (o .:? "timeoutSeconds")---- | ToJSON V1ValidatingWebhook-instance A.ToJSON V1ValidatingWebhook where- toJSON V1ValidatingWebhook {..} =- _omitNulls- [ "admissionReviewVersions" .= v1ValidatingWebhookAdmissionReviewVersions- , "clientConfig" .= v1ValidatingWebhookClientConfig- , "failurePolicy" .= v1ValidatingWebhookFailurePolicy- , "matchConditions" .= v1ValidatingWebhookMatchConditions- , "matchPolicy" .= v1ValidatingWebhookMatchPolicy- , "name" .= v1ValidatingWebhookName- , "namespaceSelector" .= v1ValidatingWebhookNamespaceSelector- , "objectSelector" .= v1ValidatingWebhookObjectSelector- , "rules" .= v1ValidatingWebhookRules- , "sideEffects" .= v1ValidatingWebhookSideEffects- , "timeoutSeconds" .= v1ValidatingWebhookTimeoutSeconds- ]----- | Construct a value of type 'V1ValidatingWebhook' (by applying it's required fields, if any)-mkV1ValidatingWebhook- :: [Text] -- ^ 'v1ValidatingWebhookAdmissionReviewVersions': AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.- -> AdmissionregistrationV1WebhookClientConfig -- ^ 'v1ValidatingWebhookClientConfig' - -> Text -- ^ 'v1ValidatingWebhookName': The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.- -> Text -- ^ 'v1ValidatingWebhookSideEffects': SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.- -> V1ValidatingWebhook-mkV1ValidatingWebhook v1ValidatingWebhookAdmissionReviewVersions v1ValidatingWebhookClientConfig v1ValidatingWebhookName v1ValidatingWebhookSideEffects =- V1ValidatingWebhook- { v1ValidatingWebhookAdmissionReviewVersions- , v1ValidatingWebhookClientConfig- , v1ValidatingWebhookFailurePolicy = Nothing- , v1ValidatingWebhookMatchConditions = Nothing- , v1ValidatingWebhookMatchPolicy = Nothing- , v1ValidatingWebhookName- , v1ValidatingWebhookNamespaceSelector = Nothing- , v1ValidatingWebhookObjectSelector = Nothing- , v1ValidatingWebhookRules = Nothing- , v1ValidatingWebhookSideEffects- , v1ValidatingWebhookTimeoutSeconds = Nothing- }---- ** V1ValidatingWebhookConfiguration--- | V1ValidatingWebhookConfiguration--- ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.-data V1ValidatingWebhookConfiguration = V1ValidatingWebhookConfiguration- { v1ValidatingWebhookConfigurationApiVersion :: !(Maybe Text) -- ^ "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- , v1ValidatingWebhookConfigurationKind :: !(Maybe Text) -- ^ "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- , v1ValidatingWebhookConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1ValidatingWebhookConfigurationWebhooks :: !(Maybe [V1ValidatingWebhook]) -- ^ "webhooks" - Webhooks is a list of webhooks and the affected resources and operations.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingWebhookConfiguration-instance A.FromJSON V1ValidatingWebhookConfiguration where- parseJSON = A.withObject "V1ValidatingWebhookConfiguration" $ \o ->- V1ValidatingWebhookConfiguration- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "webhooks")---- | ToJSON V1ValidatingWebhookConfiguration-instance A.ToJSON V1ValidatingWebhookConfiguration where- toJSON V1ValidatingWebhookConfiguration {..} =- _omitNulls- [ "apiVersion" .= v1ValidatingWebhookConfigurationApiVersion- , "kind" .= v1ValidatingWebhookConfigurationKind- , "metadata" .= v1ValidatingWebhookConfigurationMetadata- , "webhooks" .= v1ValidatingWebhookConfigurationWebhooks- ]----- | Construct a value of type 'V1ValidatingWebhookConfiguration' (by applying it's required fields, if any)-mkV1ValidatingWebhookConfiguration- :: V1ValidatingWebhookConfiguration-mkV1ValidatingWebhookConfiguration =- V1ValidatingWebhookConfiguration- { v1ValidatingWebhookConfigurationApiVersion = Nothing- , v1ValidatingWebhookConfigurationKind = Nothing- , v1ValidatingWebhookConfigurationMetadata = Nothing- , v1ValidatingWebhookConfigurationWebhooks = Nothing- }---- ** V1ValidatingWebhookConfigurationList--- | V1ValidatingWebhookConfigurationList--- ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.-data V1ValidatingWebhookConfigurationList = V1ValidatingWebhookConfigurationList- { v1ValidatingWebhookConfigurationListApiVersion :: !(Maybe Text) -- ^ "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- , v1ValidatingWebhookConfigurationListItems :: !([V1ValidatingWebhookConfiguration]) -- ^ /Required/ "items" - List of ValidatingWebhookConfiguration.- , v1ValidatingWebhookConfigurationListKind :: !(Maybe Text) -- ^ "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- , v1ValidatingWebhookConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidatingWebhookConfigurationList-instance A.FromJSON V1ValidatingWebhookConfigurationList where- parseJSON = A.withObject "V1ValidatingWebhookConfigurationList" $ \o ->- V1ValidatingWebhookConfigurationList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1ValidatingWebhookConfigurationList-instance A.ToJSON V1ValidatingWebhookConfigurationList where- toJSON V1ValidatingWebhookConfigurationList {..} =- _omitNulls- [ "apiVersion" .= v1ValidatingWebhookConfigurationListApiVersion- , "items" .= v1ValidatingWebhookConfigurationListItems- , "kind" .= v1ValidatingWebhookConfigurationListKind- , "metadata" .= v1ValidatingWebhookConfigurationListMetadata- ]----- | Construct a value of type 'V1ValidatingWebhookConfigurationList' (by applying it's required fields, if any)-mkV1ValidatingWebhookConfigurationList- :: [V1ValidatingWebhookConfiguration] -- ^ 'v1ValidatingWebhookConfigurationListItems': List of ValidatingWebhookConfiguration.- -> V1ValidatingWebhookConfigurationList-mkV1ValidatingWebhookConfigurationList v1ValidatingWebhookConfigurationListItems =- V1ValidatingWebhookConfigurationList- { v1ValidatingWebhookConfigurationListApiVersion = Nothing- , v1ValidatingWebhookConfigurationListItems- , v1ValidatingWebhookConfigurationListKind = Nothing- , v1ValidatingWebhookConfigurationListMetadata = Nothing- }---- ** V1Validation--- | V1Validation--- Validation specifies the CEL expression which is used to apply the validation.-data V1Validation = V1Validation- { v1ValidationExpression :: !(Text) -- ^ /Required/ "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: - '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. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"} - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"} - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"} Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. Required.- , v1ValidationMessage :: !(Maybe Text) -- ^ "message" - Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \"failed Expression: {Expression}\".- , v1ValidationMessageExpression :: !(Maybe Text) -- ^ "messageExpression" - messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \"object.x must be less than max (\"+string(params.max)+\")\"- , v1ValidationReason :: !(Maybe Text) -- ^ "reason" - Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\". If not set, StatusReasonInvalid is used in the response to the client.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Validation-instance A.FromJSON V1Validation where- parseJSON = A.withObject "V1Validation" $ \o ->- V1Validation- <$> (o .: "expression")- <*> (o .:? "message")- <*> (o .:? "messageExpression")- <*> (o .:? "reason")---- | ToJSON V1Validation-instance A.ToJSON V1Validation where- toJSON V1Validation {..} =- _omitNulls- [ "expression" .= v1ValidationExpression- , "message" .= v1ValidationMessage- , "messageExpression" .= v1ValidationMessageExpression- , "reason" .= v1ValidationReason- ]----- | Construct a value of type 'V1Validation' (by applying it's required fields, if any)-mkV1Validation- :: Text -- ^ 'v1ValidationExpression': 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. 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. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"} - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"} - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"} Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. Required.- -> V1Validation-mkV1Validation v1ValidationExpression =- V1Validation- { v1ValidationExpression- , v1ValidationMessage = Nothing- , v1ValidationMessageExpression = Nothing- , v1ValidationReason = Nothing- }---- ** V1ValidationRule--- | V1ValidationRule--- ValidationRule describes a validation rule written in the CEL expression language.-data V1ValidationRule = V1ValidationRule- { v1ValidationRuleFieldPath :: !(Maybe Text) -- ^ "fieldPath" - fieldPath represents the field path returned when the validation fails. It must be a relative JSON path (i.e. with array notation) scoped to the location of this x-kubernetes-validations extension in the schema and refer to an existing field. e.g. when validation checks if a specific attribute `foo` under a map `testMap`, the fieldPath could be set to `.testMap.foo` If the validation checks two lists must have unique attributes, the fieldPath could be set to either of the list: e.g. `.testList` It does not support list numeric index. It supports child operation to refer to an existing field currently. Refer to [JSONPath support in Kubernetes](https://kubernetes.io/docs/reference/kubectl/jsonpath/) for more info. Numeric index of array is not supported. For field name which contains special characters, use `['specialName']` to refer the field name. e.g. for attribute `foo.34$` appears in a list `testList`, the fieldPath could be set to `.testList['foo.34$']`- , v1ValidationRuleMessage :: !(Maybe Text) -- ^ "message" - Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\"- , v1ValidationRuleMessageExpression :: !(Maybe Text) -- ^ "messageExpression" - MessageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a rule, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the rule; the only difference is the return type. Example: \"x must be less than max (\"+string(self.max)+\")\"- , v1ValidationRuleOptionalOldSelf :: !(Maybe Bool) -- ^ "optionalOldSelf" - optionalOldSelf is used to opt a transition rule into evaluation even when the object is first created, or if the old object is missing the value. When enabled `oldSelf` will be a CEL optional whose value will be `None` if there is no old value, or when the object is initially created. You may check for presence of oldSelf using `oldSelf.hasValue()` and unwrap it after checking using `oldSelf.value()`. Check the CEL documentation for Optional types for more information: https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes May not be set unless `oldSelf` is used in `rule`.- , v1ValidationRuleReason :: !(Maybe Text) -- ^ "reason" - reason provides a machine-readable validation failure reason that is returned to the caller when a request fails this validation rule. The HTTP status code returned to the caller will match the reason of the reason of the first failed validation rule. The currently supported reasons are: \"FieldValueInvalid\", \"FieldValueForbidden\", \"FieldValueRequired\", \"FieldValueDuplicate\". If not set, default to use \"FieldValueInvalid\". All future added reasons must be accepted by clients when reading this value and unknown reasons should be treated as FieldValueInvalid.- , v1ValidationRuleRule :: !(Text) -- ^ /Required/ "rule" - Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\"rule\": \"self.status.actual <= self.spec.maxDesired\"} If the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\"rule\": \"self.components['Widget'].priority < 10\"} - Rule scoped to a list of integers: {\"rule\": \"self.values.all(value, value >= 0 && value < 100)\"} - Rule scoped to a string value: {\"rule\": \"self.startsWith('kube')\"} The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible. Unknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \"unknown type\". An \"unknown type\" is recursively defined as: - A schema with no type and x-kubernetes-preserve-unknown-fields set to true - An array where the items schema is of an \"unknown type\" - An object where the additionalProperties schema is of an \"unknown type\" Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Rule accessing a property named \"namespace\": {\"rule\": \"self.__namespace__ > 0\"} - Rule accessing a property named \"x-prop\": {\"rule\": \"self.x__dash__prop > 0\"} - Rule accessing a property named \"redact__d\": {\"rule\": \"self.redact__underscores__d > 0\"} Equality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. If `rule` makes use of the `oldSelf` variable it is implicitly a `transition rule`. By default, the `oldSelf` variable is the same type as `self`. When `optionalOldSelf` is true, the `oldSelf` variable is a CEL optional variable whose value() is the same type as `self`. See the documentation for the `optionalOldSelf` field for details. Transition rules by default are applied only on UPDATE requests and are skipped if an old value could not be found. You can opt a transition rule into unconditional evaluation by setting `optionalOldSelf` to true.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1ValidationRule-instance A.FromJSON V1ValidationRule where- parseJSON = A.withObject "V1ValidationRule" $ \o ->- V1ValidationRule- <$> (o .:? "fieldPath")- <*> (o .:? "message")- <*> (o .:? "messageExpression")- <*> (o .:? "optionalOldSelf")- <*> (o .:? "reason")- <*> (o .: "rule")---- | ToJSON V1ValidationRule-instance A.ToJSON V1ValidationRule where- toJSON V1ValidationRule {..} =- _omitNulls- [ "fieldPath" .= v1ValidationRuleFieldPath- , "message" .= v1ValidationRuleMessage- , "messageExpression" .= v1ValidationRuleMessageExpression- , "optionalOldSelf" .= v1ValidationRuleOptionalOldSelf- , "reason" .= v1ValidationRuleReason- , "rule" .= v1ValidationRuleRule- ]----- | Construct a value of type 'V1ValidationRule' (by applying it's required fields, if any)-mkV1ValidationRule- :: Text -- ^ 'v1ValidationRuleRule': Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\"rule\": \"self.status.actual <= self.spec.maxDesired\"} If the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\"rule\": \"self.components['Widget'].priority < 10\"} - Rule scoped to a list of integers: {\"rule\": \"self.values.all(value, value >= 0 && value < 100)\"} - Rule scoped to a string value: {\"rule\": \"self.startsWith('kube')\"} The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible. Unknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \"unknown type\". An \"unknown type\" is recursively defined as: - A schema with no type and x-kubernetes-preserve-unknown-fields set to true - An array where the items schema is of an \"unknown type\" - An object where the additionalProperties schema is of an \"unknown type\" Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Rule accessing a property named \"namespace\": {\"rule\": \"self.__namespace__ > 0\"} - Rule accessing a property named \"x-prop\": {\"rule\": \"self.x__dash__prop > 0\"} - Rule accessing a property named \"redact__d\": {\"rule\": \"self.redact__underscores__d > 0\"} Equality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. If `rule` makes use of the `oldSelf` variable it is implicitly a `transition rule`. By default, the `oldSelf` variable is the same type as `self`. When `optionalOldSelf` is true, the `oldSelf` variable is a CEL optional variable whose value() is the same type as `self`. See the documentation for the `optionalOldSelf` field for details. Transition rules by default are applied only on UPDATE requests and are skipped if an old value could not be found. You can opt a transition rule into unconditional evaluation by setting `optionalOldSelf` to true.- -> V1ValidationRule-mkV1ValidationRule v1ValidationRuleRule =- V1ValidationRule- { v1ValidationRuleFieldPath = Nothing- , v1ValidationRuleMessage = Nothing- , v1ValidationRuleMessageExpression = Nothing- , v1ValidationRuleOptionalOldSelf = Nothing- , v1ValidationRuleReason = Nothing- , v1ValidationRuleRule- }---- ** V1Variable--- | V1Variable--- Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.-data V1Variable = V1Variable- { v1VariableExpression :: !(Text) -- ^ /Required/ "expression" - Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.- , v1VariableName :: !(Text) -- ^ /Required/ "name" - Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Variable-instance A.FromJSON V1Variable where- parseJSON = A.withObject "V1Variable" $ \o ->- V1Variable- <$> (o .: "expression")- <*> (o .: "name")---- | ToJSON V1Variable-instance A.ToJSON V1Variable where- toJSON V1Variable {..} =- _omitNulls- [ "expression" .= v1VariableExpression- , "name" .= v1VariableName- ]----- | Construct a value of type 'V1Variable' (by applying it's required fields, if any)-mkV1Variable- :: Text -- ^ 'v1VariableExpression': Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.- -> Text -- ^ 'v1VariableName': Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`- -> V1Variable-mkV1Variable v1VariableExpression v1VariableName =- V1Variable- { v1VariableExpression- , v1VariableName- }---- ** V1Volume--- | V1Volume--- Volume represents a named volume in a pod that may be accessed by any container in the pod.-data V1Volume = V1Volume- { v1VolumeAwsElasticBlockStore :: !(Maybe V1AWSElasticBlockStoreVolumeSource) -- ^ "awsElasticBlockStore"- , v1VolumeAzureDisk :: !(Maybe V1AzureDiskVolumeSource) -- ^ "azureDisk"- , v1VolumeAzureFile :: !(Maybe V1AzureFileVolumeSource) -- ^ "azureFile"- , v1VolumeCephfs :: !(Maybe V1CephFSVolumeSource) -- ^ "cephfs"- , v1VolumeCinder :: !(Maybe V1CinderVolumeSource) -- ^ "cinder"- , v1VolumeConfigMap :: !(Maybe V1ConfigMapVolumeSource) -- ^ "configMap"- , v1VolumeCsi :: !(Maybe V1CSIVolumeSource) -- ^ "csi"- , v1VolumeDownwardApi :: !(Maybe V1DownwardAPIVolumeSource) -- ^ "downwardAPI"- , v1VolumeEmptyDir :: !(Maybe V1EmptyDirVolumeSource) -- ^ "emptyDir"- , v1VolumeEphemeral :: !(Maybe V1EphemeralVolumeSource) -- ^ "ephemeral"- , v1VolumeFc :: !(Maybe V1FCVolumeSource) -- ^ "fc"- , v1VolumeFlexVolume :: !(Maybe V1FlexVolumeSource) -- ^ "flexVolume"- , v1VolumeFlocker :: !(Maybe V1FlockerVolumeSource) -- ^ "flocker"- , v1VolumeGcePersistentDisk :: !(Maybe V1GCEPersistentDiskVolumeSource) -- ^ "gcePersistentDisk"- , v1VolumeGitRepo :: !(Maybe V1GitRepoVolumeSource) -- ^ "gitRepo"- , v1VolumeGlusterfs :: !(Maybe V1GlusterfsVolumeSource) -- ^ "glusterfs"- , v1VolumeHostPath :: !(Maybe V1HostPathVolumeSource) -- ^ "hostPath"- , v1VolumeImage :: !(Maybe V1ImageVolumeSource) -- ^ "image"- , v1VolumeIscsi :: !(Maybe V1ISCSIVolumeSource) -- ^ "iscsi"- , v1VolumeName :: !(Text) -- ^ /Required/ "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- , v1VolumeNfs :: !(Maybe V1NFSVolumeSource) -- ^ "nfs"- , v1VolumePersistentVolumeClaim :: !(Maybe V1PersistentVolumeClaimVolumeSource) -- ^ "persistentVolumeClaim"- , v1VolumePhotonPersistentDisk :: !(Maybe V1PhotonPersistentDiskVolumeSource) -- ^ "photonPersistentDisk"- , v1VolumePortworxVolume :: !(Maybe V1PortworxVolumeSource) -- ^ "portworxVolume"- , v1VolumeProjected :: !(Maybe V1ProjectedVolumeSource) -- ^ "projected"- , v1VolumeQuobyte :: !(Maybe V1QuobyteVolumeSource) -- ^ "quobyte"- , v1VolumeRbd :: !(Maybe V1RBDVolumeSource) -- ^ "rbd"- , v1VolumeScaleIo :: !(Maybe V1ScaleIOVolumeSource) -- ^ "scaleIO"- , v1VolumeSecret :: !(Maybe V1SecretVolumeSource) -- ^ "secret"- , v1VolumeStorageos :: !(Maybe V1StorageOSVolumeSource) -- ^ "storageos"- , v1VolumeVsphereVolume :: !(Maybe V1VsphereVirtualDiskVolumeSource) -- ^ "vsphereVolume"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1Volume-instance A.FromJSON V1Volume where- parseJSON = A.withObject "V1Volume" $ \o ->- V1Volume- <$> (o .:? "awsElasticBlockStore")- <*> (o .:? "azureDisk")- <*> (o .:? "azureFile")- <*> (o .:? "cephfs")- <*> (o .:? "cinder")- <*> (o .:? "configMap")- <*> (o .:? "csi")- <*> (o .:? "downwardAPI")- <*> (o .:? "emptyDir")- <*> (o .:? "ephemeral")- <*> (o .:? "fc")- <*> (o .:? "flexVolume")- <*> (o .:? "flocker")- <*> (o .:? "gcePersistentDisk")- <*> (o .:? "gitRepo")- <*> (o .:? "glusterfs")- <*> (o .:? "hostPath")- <*> (o .:? "image")- <*> (o .:? "iscsi")- <*> (o .: "name")- <*> (o .:? "nfs")- <*> (o .:? "persistentVolumeClaim")- <*> (o .:? "photonPersistentDisk")- <*> (o .:? "portworxVolume")- <*> (o .:? "projected")- <*> (o .:? "quobyte")- <*> (o .:? "rbd")- <*> (o .:? "scaleIO")- <*> (o .:? "secret")- <*> (o .:? "storageos")- <*> (o .:? "vsphereVolume")---- | ToJSON V1Volume-instance A.ToJSON V1Volume where- toJSON V1Volume {..} =- _omitNulls- [ "awsElasticBlockStore" .= v1VolumeAwsElasticBlockStore- , "azureDisk" .= v1VolumeAzureDisk- , "azureFile" .= v1VolumeAzureFile- , "cephfs" .= v1VolumeCephfs- , "cinder" .= v1VolumeCinder- , "configMap" .= v1VolumeConfigMap- , "csi" .= v1VolumeCsi- , "downwardAPI" .= v1VolumeDownwardApi- , "emptyDir" .= v1VolumeEmptyDir- , "ephemeral" .= v1VolumeEphemeral- , "fc" .= v1VolumeFc- , "flexVolume" .= v1VolumeFlexVolume- , "flocker" .= v1VolumeFlocker- , "gcePersistentDisk" .= v1VolumeGcePersistentDisk- , "gitRepo" .= v1VolumeGitRepo- , "glusterfs" .= v1VolumeGlusterfs- , "hostPath" .= v1VolumeHostPath- , "image" .= v1VolumeImage- , "iscsi" .= v1VolumeIscsi- , "name" .= v1VolumeName- , "nfs" .= v1VolumeNfs- , "persistentVolumeClaim" .= v1VolumePersistentVolumeClaim- , "photonPersistentDisk" .= v1VolumePhotonPersistentDisk- , "portworxVolume" .= v1VolumePortworxVolume- , "projected" .= v1VolumeProjected- , "quobyte" .= v1VolumeQuobyte- , "rbd" .= v1VolumeRbd- , "scaleIO" .= v1VolumeScaleIo- , "secret" .= v1VolumeSecret- , "storageos" .= v1VolumeStorageos- , "vsphereVolume" .= v1VolumeVsphereVolume- ]----- | Construct a value of type 'V1Volume' (by applying it's required fields, if any)-mkV1Volume- :: Text -- ^ 'v1VolumeName': 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- -> V1Volume-mkV1Volume v1VolumeName =- V1Volume- { v1VolumeAwsElasticBlockStore = Nothing- , v1VolumeAzureDisk = Nothing- , v1VolumeAzureFile = Nothing- , v1VolumeCephfs = Nothing- , v1VolumeCinder = Nothing- , v1VolumeConfigMap = Nothing- , v1VolumeCsi = Nothing- , v1VolumeDownwardApi = Nothing- , v1VolumeEmptyDir = Nothing- , v1VolumeEphemeral = Nothing- , v1VolumeFc = Nothing- , v1VolumeFlexVolume = Nothing- , v1VolumeFlocker = Nothing- , v1VolumeGcePersistentDisk = Nothing- , v1VolumeGitRepo = Nothing- , v1VolumeGlusterfs = Nothing- , v1VolumeHostPath = Nothing- , v1VolumeImage = Nothing- , v1VolumeIscsi = Nothing- , v1VolumeName- , v1VolumeNfs = Nothing- , v1VolumePersistentVolumeClaim = Nothing- , v1VolumePhotonPersistentDisk = Nothing- , v1VolumePortworxVolume = Nothing- , v1VolumeProjected = Nothing- , v1VolumeQuobyte = Nothing- , v1VolumeRbd = Nothing- , v1VolumeScaleIo = Nothing- , v1VolumeSecret = Nothing- , v1VolumeStorageos = Nothing- , v1VolumeVsphereVolume = Nothing- }---- ** V1VolumeAttachment--- | V1VolumeAttachment--- VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node. VolumeAttachment objects are non-namespaced.-data V1VolumeAttachment = V1VolumeAttachment- { v1VolumeAttachmentApiVersion :: !(Maybe Text) -- ^ "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- , v1VolumeAttachmentKind :: !(Maybe Text) -- ^ "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- , v1VolumeAttachmentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1VolumeAttachmentSpec :: !(V1VolumeAttachmentSpec) -- ^ /Required/ "spec"- , v1VolumeAttachmentStatus :: !(Maybe V1VolumeAttachmentStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeAttachment-instance A.FromJSON V1VolumeAttachment where- parseJSON = A.withObject "V1VolumeAttachment" $ \o ->- V1VolumeAttachment- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1VolumeAttachment-instance A.ToJSON V1VolumeAttachment where- toJSON V1VolumeAttachment {..} =- _omitNulls- [ "apiVersion" .= v1VolumeAttachmentApiVersion- , "kind" .= v1VolumeAttachmentKind- , "metadata" .= v1VolumeAttachmentMetadata- , "spec" .= v1VolumeAttachmentSpec- , "status" .= v1VolumeAttachmentStatus- ]----- | Construct a value of type 'V1VolumeAttachment' (by applying it's required fields, if any)-mkV1VolumeAttachment- :: V1VolumeAttachmentSpec -- ^ 'v1VolumeAttachmentSpec' - -> V1VolumeAttachment-mkV1VolumeAttachment v1VolumeAttachmentSpec =- V1VolumeAttachment- { v1VolumeAttachmentApiVersion = Nothing- , v1VolumeAttachmentKind = Nothing- , v1VolumeAttachmentMetadata = Nothing- , v1VolumeAttachmentSpec- , v1VolumeAttachmentStatus = Nothing- }---- ** V1VolumeAttachmentList--- | V1VolumeAttachmentList--- VolumeAttachmentList is a collection of VolumeAttachment objects.-data V1VolumeAttachmentList = V1VolumeAttachmentList- { v1VolumeAttachmentListApiVersion :: !(Maybe Text) -- ^ "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- , v1VolumeAttachmentListItems :: !([V1VolumeAttachment]) -- ^ /Required/ "items" - items is the list of VolumeAttachments- , v1VolumeAttachmentListKind :: !(Maybe Text) -- ^ "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- , v1VolumeAttachmentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeAttachmentList-instance A.FromJSON V1VolumeAttachmentList where- parseJSON = A.withObject "V1VolumeAttachmentList" $ \o ->- V1VolumeAttachmentList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1VolumeAttachmentList-instance A.ToJSON V1VolumeAttachmentList where- toJSON V1VolumeAttachmentList {..} =- _omitNulls- [ "apiVersion" .= v1VolumeAttachmentListApiVersion- , "items" .= v1VolumeAttachmentListItems- , "kind" .= v1VolumeAttachmentListKind- , "metadata" .= v1VolumeAttachmentListMetadata- ]----- | Construct a value of type 'V1VolumeAttachmentList' (by applying it's required fields, if any)-mkV1VolumeAttachmentList- :: [V1VolumeAttachment] -- ^ 'v1VolumeAttachmentListItems': items is the list of VolumeAttachments- -> V1VolumeAttachmentList-mkV1VolumeAttachmentList v1VolumeAttachmentListItems =- V1VolumeAttachmentList- { v1VolumeAttachmentListApiVersion = Nothing- , v1VolumeAttachmentListItems- , v1VolumeAttachmentListKind = Nothing- , v1VolumeAttachmentListMetadata = Nothing- }---- ** V1VolumeAttachmentSource--- | V1VolumeAttachmentSource--- 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.-data V1VolumeAttachmentSource = V1VolumeAttachmentSource- { v1VolumeAttachmentSourceInlineVolumeSpec :: !(Maybe V1PersistentVolumeSpec) -- ^ "inlineVolumeSpec"- , v1VolumeAttachmentSourcePersistentVolumeName :: !(Maybe Text) -- ^ "persistentVolumeName" - persistentVolumeName represents the name of the persistent volume to attach.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeAttachmentSource-instance A.FromJSON V1VolumeAttachmentSource where- parseJSON = A.withObject "V1VolumeAttachmentSource" $ \o ->- V1VolumeAttachmentSource- <$> (o .:? "inlineVolumeSpec")- <*> (o .:? "persistentVolumeName")---- | ToJSON V1VolumeAttachmentSource-instance A.ToJSON V1VolumeAttachmentSource where- toJSON V1VolumeAttachmentSource {..} =- _omitNulls- [ "inlineVolumeSpec" .= v1VolumeAttachmentSourceInlineVolumeSpec- , "persistentVolumeName" .= v1VolumeAttachmentSourcePersistentVolumeName- ]----- | Construct a value of type 'V1VolumeAttachmentSource' (by applying it's required fields, if any)-mkV1VolumeAttachmentSource- :: V1VolumeAttachmentSource-mkV1VolumeAttachmentSource =- V1VolumeAttachmentSource- { v1VolumeAttachmentSourceInlineVolumeSpec = Nothing- , v1VolumeAttachmentSourcePersistentVolumeName = Nothing- }---- ** V1VolumeAttachmentSpec--- | V1VolumeAttachmentSpec--- VolumeAttachmentSpec is the specification of a VolumeAttachment request.-data V1VolumeAttachmentSpec = V1VolumeAttachmentSpec- { v1VolumeAttachmentSpecAttacher :: !(Text) -- ^ /Required/ "attacher" - attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().- , v1VolumeAttachmentSpecNodeName :: !(Text) -- ^ /Required/ "nodeName" - nodeName represents the node that the volume should be attached to.- , v1VolumeAttachmentSpecSource :: !(V1VolumeAttachmentSource) -- ^ /Required/ "source"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeAttachmentSpec-instance A.FromJSON V1VolumeAttachmentSpec where- parseJSON = A.withObject "V1VolumeAttachmentSpec" $ \o ->- V1VolumeAttachmentSpec- <$> (o .: "attacher")- <*> (o .: "nodeName")- <*> (o .: "source")---- | ToJSON V1VolumeAttachmentSpec-instance A.ToJSON V1VolumeAttachmentSpec where- toJSON V1VolumeAttachmentSpec {..} =- _omitNulls- [ "attacher" .= v1VolumeAttachmentSpecAttacher- , "nodeName" .= v1VolumeAttachmentSpecNodeName- , "source" .= v1VolumeAttachmentSpecSource- ]----- | Construct a value of type 'V1VolumeAttachmentSpec' (by applying it's required fields, if any)-mkV1VolumeAttachmentSpec- :: Text -- ^ 'v1VolumeAttachmentSpecAttacher': attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().- -> Text -- ^ 'v1VolumeAttachmentSpecNodeName': nodeName represents the node that the volume should be attached to.- -> V1VolumeAttachmentSource -- ^ 'v1VolumeAttachmentSpecSource' - -> V1VolumeAttachmentSpec-mkV1VolumeAttachmentSpec v1VolumeAttachmentSpecAttacher v1VolumeAttachmentSpecNodeName v1VolumeAttachmentSpecSource =- V1VolumeAttachmentSpec- { v1VolumeAttachmentSpecAttacher- , v1VolumeAttachmentSpecNodeName- , v1VolumeAttachmentSpecSource- }---- ** V1VolumeAttachmentStatus--- | V1VolumeAttachmentStatus--- VolumeAttachmentStatus is the status of a VolumeAttachment request.-data V1VolumeAttachmentStatus = V1VolumeAttachmentStatus- { v1VolumeAttachmentStatusAttachError :: !(Maybe V1VolumeError) -- ^ "attachError"- , v1VolumeAttachmentStatusAttached :: !(Bool) -- ^ /Required/ "attached" - attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.- , v1VolumeAttachmentStatusAttachmentMetadata :: !(Maybe (Map.Map String Text)) -- ^ "attachmentMetadata" - attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.- , v1VolumeAttachmentStatusDetachError :: !(Maybe V1VolumeError) -- ^ "detachError"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeAttachmentStatus-instance A.FromJSON V1VolumeAttachmentStatus where- parseJSON = A.withObject "V1VolumeAttachmentStatus" $ \o ->- V1VolumeAttachmentStatus- <$> (o .:? "attachError")- <*> (o .: "attached")- <*> (o .:? "attachmentMetadata")- <*> (o .:? "detachError")---- | ToJSON V1VolumeAttachmentStatus-instance A.ToJSON V1VolumeAttachmentStatus where- toJSON V1VolumeAttachmentStatus {..} =- _omitNulls- [ "attachError" .= v1VolumeAttachmentStatusAttachError- , "attached" .= v1VolumeAttachmentStatusAttached- , "attachmentMetadata" .= v1VolumeAttachmentStatusAttachmentMetadata- , "detachError" .= v1VolumeAttachmentStatusDetachError- ]----- | Construct a value of type 'V1VolumeAttachmentStatus' (by applying it's required fields, if any)-mkV1VolumeAttachmentStatus- :: Bool -- ^ 'v1VolumeAttachmentStatusAttached': attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.- -> V1VolumeAttachmentStatus-mkV1VolumeAttachmentStatus v1VolumeAttachmentStatusAttached =- V1VolumeAttachmentStatus- { v1VolumeAttachmentStatusAttachError = Nothing- , v1VolumeAttachmentStatusAttached- , v1VolumeAttachmentStatusAttachmentMetadata = Nothing- , v1VolumeAttachmentStatusDetachError = Nothing- }---- ** V1VolumeAttributesClass--- | V1VolumeAttributesClass--- VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.-data V1VolumeAttributesClass = V1VolumeAttributesClass- { v1VolumeAttributesClassApiVersion :: !(Maybe Text) -- ^ "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- , v1VolumeAttributesClassDriverName :: !(Text) -- ^ /Required/ "driverName" - Name of the CSI driver This field is immutable.- , v1VolumeAttributesClassKind :: !(Maybe Text) -- ^ "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- , v1VolumeAttributesClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1VolumeAttributesClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass. This field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the modifyVolumeStatus field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeAttributesClass-instance A.FromJSON V1VolumeAttributesClass where- parseJSON = A.withObject "V1VolumeAttributesClass" $ \o ->- V1VolumeAttributesClass- <$> (o .:? "apiVersion")- <*> (o .: "driverName")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "parameters")---- | ToJSON V1VolumeAttributesClass-instance A.ToJSON V1VolumeAttributesClass where- toJSON V1VolumeAttributesClass {..} =- _omitNulls- [ "apiVersion" .= v1VolumeAttributesClassApiVersion- , "driverName" .= v1VolumeAttributesClassDriverName- , "kind" .= v1VolumeAttributesClassKind- , "metadata" .= v1VolumeAttributesClassMetadata- , "parameters" .= v1VolumeAttributesClassParameters- ]----- | Construct a value of type 'V1VolumeAttributesClass' (by applying it's required fields, if any)-mkV1VolumeAttributesClass- :: Text -- ^ 'v1VolumeAttributesClassDriverName': Name of the CSI driver This field is immutable.- -> V1VolumeAttributesClass-mkV1VolumeAttributesClass v1VolumeAttributesClassDriverName =- V1VolumeAttributesClass- { v1VolumeAttributesClassApiVersion = Nothing- , v1VolumeAttributesClassDriverName- , v1VolumeAttributesClassKind = Nothing- , v1VolumeAttributesClassMetadata = Nothing- , v1VolumeAttributesClassParameters = Nothing- }---- ** V1VolumeAttributesClassList--- | V1VolumeAttributesClassList--- VolumeAttributesClassList is a collection of VolumeAttributesClass objects.-data V1VolumeAttributesClassList = V1VolumeAttributesClassList- { v1VolumeAttributesClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1VolumeAttributesClassListItems :: !([V1VolumeAttributesClass]) -- ^ /Required/ "items" - items is the list of VolumeAttributesClass objects.- , v1VolumeAttributesClassListKind :: !(Maybe Text) -- ^ "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- , v1VolumeAttributesClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeAttributesClassList-instance A.FromJSON V1VolumeAttributesClassList where- parseJSON = A.withObject "V1VolumeAttributesClassList" $ \o ->- V1VolumeAttributesClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1VolumeAttributesClassList-instance A.ToJSON V1VolumeAttributesClassList where- toJSON V1VolumeAttributesClassList {..} =- _omitNulls- [ "apiVersion" .= v1VolumeAttributesClassListApiVersion- , "items" .= v1VolumeAttributesClassListItems- , "kind" .= v1VolumeAttributesClassListKind- , "metadata" .= v1VolumeAttributesClassListMetadata- ]----- | Construct a value of type 'V1VolumeAttributesClassList' (by applying it's required fields, if any)-mkV1VolumeAttributesClassList- :: [V1VolumeAttributesClass] -- ^ 'v1VolumeAttributesClassListItems': items is the list of VolumeAttributesClass objects.- -> V1VolumeAttributesClassList-mkV1VolumeAttributesClassList v1VolumeAttributesClassListItems =- V1VolumeAttributesClassList- { v1VolumeAttributesClassListApiVersion = Nothing- , v1VolumeAttributesClassListItems- , v1VolumeAttributesClassListKind = Nothing- , v1VolumeAttributesClassListMetadata = Nothing- }---- ** V1VolumeDevice--- | V1VolumeDevice--- volumeDevice describes a mapping of a raw block device within a container.-data V1VolumeDevice = V1VolumeDevice- { v1VolumeDeviceDevicePath :: !(Text) -- ^ /Required/ "devicePath" - devicePath is the path inside of the container that the device will be mapped to.- , v1VolumeDeviceName :: !(Text) -- ^ /Required/ "name" - name must match the name of a persistentVolumeClaim in the pod- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeDevice-instance A.FromJSON V1VolumeDevice where- parseJSON = A.withObject "V1VolumeDevice" $ \o ->- V1VolumeDevice- <$> (o .: "devicePath")- <*> (o .: "name")---- | ToJSON V1VolumeDevice-instance A.ToJSON V1VolumeDevice where- toJSON V1VolumeDevice {..} =- _omitNulls- [ "devicePath" .= v1VolumeDeviceDevicePath- , "name" .= v1VolumeDeviceName- ]----- | Construct a value of type 'V1VolumeDevice' (by applying it's required fields, if any)-mkV1VolumeDevice- :: Text -- ^ 'v1VolumeDeviceDevicePath': devicePath is the path inside of the container that the device will be mapped to.- -> Text -- ^ 'v1VolumeDeviceName': name must match the name of a persistentVolumeClaim in the pod- -> V1VolumeDevice-mkV1VolumeDevice v1VolumeDeviceDevicePath v1VolumeDeviceName =- V1VolumeDevice- { v1VolumeDeviceDevicePath- , v1VolumeDeviceName- }---- ** V1VolumeError--- | V1VolumeError--- VolumeError captures an error encountered during a volume operation.-data V1VolumeError = V1VolumeError- { v1VolumeErrorErrorCode :: !(Maybe Int) -- ^ "errorCode" - errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations. This is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.- , v1VolumeErrorMessage :: !(Maybe Text) -- ^ "message" - message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.- , v1VolumeErrorTime :: !(Maybe DateTime) -- ^ "time" - time represents the time the error was encountered.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeError-instance A.FromJSON V1VolumeError where- parseJSON = A.withObject "V1VolumeError" $ \o ->- V1VolumeError- <$> (o .:? "errorCode")- <*> (o .:? "message")- <*> (o .:? "time")---- | ToJSON V1VolumeError-instance A.ToJSON V1VolumeError where- toJSON V1VolumeError {..} =- _omitNulls- [ "errorCode" .= v1VolumeErrorErrorCode- , "message" .= v1VolumeErrorMessage- , "time" .= v1VolumeErrorTime- ]----- | Construct a value of type 'V1VolumeError' (by applying it's required fields, if any)-mkV1VolumeError- :: V1VolumeError-mkV1VolumeError =- V1VolumeError- { v1VolumeErrorErrorCode = Nothing- , v1VolumeErrorMessage = Nothing- , v1VolumeErrorTime = Nothing- }---- ** V1VolumeMount--- | V1VolumeMount--- VolumeMount describes a mounting of a Volume within a container.-data V1VolumeMount = V1VolumeMount- { v1VolumeMountMountPath :: !(Text) -- ^ /Required/ "mountPath" - Path within the container at which the volume should be mounted. Must not contain ':'.- , v1VolumeMountMountPropagation :: !(Maybe Text) -- ^ "mountPropagation" - mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).- , v1VolumeMountName :: !(Text) -- ^ /Required/ "name" - This must match the Name of a Volume.- , v1VolumeMountReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.- , v1VolumeMountRecursiveReadOnly :: !(Maybe Text) -- ^ "recursiveReadOnly" - RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.- , v1VolumeMountSubPath :: !(Maybe Text) -- ^ "subPath" - Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).- , v1VolumeMountSubPathExpr :: !(Maybe Text) -- ^ "subPathExpr" - Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeMount-instance A.FromJSON V1VolumeMount where- parseJSON = A.withObject "V1VolumeMount" $ \o ->- V1VolumeMount- <$> (o .: "mountPath")- <*> (o .:? "mountPropagation")- <*> (o .: "name")- <*> (o .:? "readOnly")- <*> (o .:? "recursiveReadOnly")- <*> (o .:? "subPath")- <*> (o .:? "subPathExpr")---- | ToJSON V1VolumeMount-instance A.ToJSON V1VolumeMount where- toJSON V1VolumeMount {..} =- _omitNulls- [ "mountPath" .= v1VolumeMountMountPath- , "mountPropagation" .= v1VolumeMountMountPropagation- , "name" .= v1VolumeMountName- , "readOnly" .= v1VolumeMountReadOnly- , "recursiveReadOnly" .= v1VolumeMountRecursiveReadOnly- , "subPath" .= v1VolumeMountSubPath- , "subPathExpr" .= v1VolumeMountSubPathExpr- ]----- | Construct a value of type 'V1VolumeMount' (by applying it's required fields, if any)-mkV1VolumeMount- :: Text -- ^ 'v1VolumeMountMountPath': Path within the container at which the volume should be mounted. Must not contain ':'.- -> Text -- ^ 'v1VolumeMountName': This must match the Name of a Volume.- -> V1VolumeMount-mkV1VolumeMount v1VolumeMountMountPath v1VolumeMountName =- V1VolumeMount- { v1VolumeMountMountPath- , v1VolumeMountMountPropagation = Nothing- , v1VolumeMountName- , v1VolumeMountReadOnly = Nothing- , v1VolumeMountRecursiveReadOnly = Nothing- , v1VolumeMountSubPath = Nothing- , v1VolumeMountSubPathExpr = Nothing- }---- ** V1VolumeMountStatus--- | V1VolumeMountStatus--- VolumeMountStatus shows status of volume mounts.-data V1VolumeMountStatus = V1VolumeMountStatus- { v1VolumeMountStatusMountPath :: !(Text) -- ^ /Required/ "mountPath" - MountPath corresponds to the original VolumeMount.- , v1VolumeMountStatusName :: !(Text) -- ^ /Required/ "name" - Name corresponds to the name of the original VolumeMount.- , v1VolumeMountStatusReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly corresponds to the original VolumeMount.- , v1VolumeMountStatusRecursiveReadOnly :: !(Maybe Text) -- ^ "recursiveReadOnly" - RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeMountStatus-instance A.FromJSON V1VolumeMountStatus where- parseJSON = A.withObject "V1VolumeMountStatus" $ \o ->- V1VolumeMountStatus- <$> (o .: "mountPath")- <*> (o .: "name")- <*> (o .:? "readOnly")- <*> (o .:? "recursiveReadOnly")---- | ToJSON V1VolumeMountStatus-instance A.ToJSON V1VolumeMountStatus where- toJSON V1VolumeMountStatus {..} =- _omitNulls- [ "mountPath" .= v1VolumeMountStatusMountPath- , "name" .= v1VolumeMountStatusName- , "readOnly" .= v1VolumeMountStatusReadOnly- , "recursiveReadOnly" .= v1VolumeMountStatusRecursiveReadOnly- ]----- | Construct a value of type 'V1VolumeMountStatus' (by applying it's required fields, if any)-mkV1VolumeMountStatus- :: Text -- ^ 'v1VolumeMountStatusMountPath': MountPath corresponds to the original VolumeMount.- -> Text -- ^ 'v1VolumeMountStatusName': Name corresponds to the name of the original VolumeMount.- -> V1VolumeMountStatus-mkV1VolumeMountStatus v1VolumeMountStatusMountPath v1VolumeMountStatusName =- V1VolumeMountStatus- { v1VolumeMountStatusMountPath- , v1VolumeMountStatusName- , v1VolumeMountStatusReadOnly = Nothing- , v1VolumeMountStatusRecursiveReadOnly = Nothing- }---- ** V1VolumeNodeAffinity--- | V1VolumeNodeAffinity--- VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.-data V1VolumeNodeAffinity = V1VolumeNodeAffinity- { v1VolumeNodeAffinityRequired :: !(Maybe V1NodeSelector) -- ^ "required"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeNodeAffinity-instance A.FromJSON V1VolumeNodeAffinity where- parseJSON = A.withObject "V1VolumeNodeAffinity" $ \o ->- V1VolumeNodeAffinity- <$> (o .:? "required")---- | ToJSON V1VolumeNodeAffinity-instance A.ToJSON V1VolumeNodeAffinity where- toJSON V1VolumeNodeAffinity {..} =- _omitNulls- [ "required" .= v1VolumeNodeAffinityRequired- ]----- | Construct a value of type 'V1VolumeNodeAffinity' (by applying it's required fields, if any)-mkV1VolumeNodeAffinity- :: V1VolumeNodeAffinity-mkV1VolumeNodeAffinity =- V1VolumeNodeAffinity- { v1VolumeNodeAffinityRequired = Nothing- }---- ** V1VolumeNodeResources--- | V1VolumeNodeResources--- VolumeNodeResources is a set of resource limits for scheduling of volumes.-data V1VolumeNodeResources = V1VolumeNodeResources- { v1VolumeNodeResourcesCount :: !(Maybe Int) -- ^ "count" - count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeNodeResources-instance A.FromJSON V1VolumeNodeResources where- parseJSON = A.withObject "V1VolumeNodeResources" $ \o ->- V1VolumeNodeResources- <$> (o .:? "count")---- | ToJSON V1VolumeNodeResources-instance A.ToJSON V1VolumeNodeResources where- toJSON V1VolumeNodeResources {..} =- _omitNulls- [ "count" .= v1VolumeNodeResourcesCount- ]----- | Construct a value of type 'V1VolumeNodeResources' (by applying it's required fields, if any)-mkV1VolumeNodeResources- :: V1VolumeNodeResources-mkV1VolumeNodeResources =- V1VolumeNodeResources- { v1VolumeNodeResourcesCount = Nothing- }---- ** V1VolumeProjection--- | V1VolumeProjection--- Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.-data V1VolumeProjection = V1VolumeProjection- { v1VolumeProjectionClusterTrustBundle :: !(Maybe V1ClusterTrustBundleProjection) -- ^ "clusterTrustBundle"- , v1VolumeProjectionConfigMap :: !(Maybe V1ConfigMapProjection) -- ^ "configMap"- , v1VolumeProjectionDownwardApi :: !(Maybe V1DownwardAPIProjection) -- ^ "downwardAPI"- , v1VolumeProjectionPodCertificate :: !(Maybe V1PodCertificateProjection) -- ^ "podCertificate"- , v1VolumeProjectionSecret :: !(Maybe V1SecretProjection) -- ^ "secret"- , v1VolumeProjectionServiceAccountToken :: !(Maybe V1ServiceAccountTokenProjection) -- ^ "serviceAccountToken"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeProjection-instance A.FromJSON V1VolumeProjection where- parseJSON = A.withObject "V1VolumeProjection" $ \o ->- V1VolumeProjection- <$> (o .:? "clusterTrustBundle")- <*> (o .:? "configMap")- <*> (o .:? "downwardAPI")- <*> (o .:? "podCertificate")- <*> (o .:? "secret")- <*> (o .:? "serviceAccountToken")---- | ToJSON V1VolumeProjection-instance A.ToJSON V1VolumeProjection where- toJSON V1VolumeProjection {..} =- _omitNulls- [ "clusterTrustBundle" .= v1VolumeProjectionClusterTrustBundle- , "configMap" .= v1VolumeProjectionConfigMap- , "downwardAPI" .= v1VolumeProjectionDownwardApi- , "podCertificate" .= v1VolumeProjectionPodCertificate- , "secret" .= v1VolumeProjectionSecret- , "serviceAccountToken" .= v1VolumeProjectionServiceAccountToken- ]----- | Construct a value of type 'V1VolumeProjection' (by applying it's required fields, if any)-mkV1VolumeProjection- :: V1VolumeProjection-mkV1VolumeProjection =- V1VolumeProjection- { v1VolumeProjectionClusterTrustBundle = Nothing- , v1VolumeProjectionConfigMap = Nothing- , v1VolumeProjectionDownwardApi = Nothing- , v1VolumeProjectionPodCertificate = Nothing- , v1VolumeProjectionSecret = Nothing- , v1VolumeProjectionServiceAccountToken = Nothing- }---- ** V1VolumeResourceRequirements--- | V1VolumeResourceRequirements--- VolumeResourceRequirements describes the storage resource requirements for a volume.-data V1VolumeResourceRequirements = V1VolumeResourceRequirements- { v1VolumeResourceRequirementsLimits :: !(Maybe (Map.Map String Quantity)) -- ^ "limits" - Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/- , v1VolumeResourceRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VolumeResourceRequirements-instance A.FromJSON V1VolumeResourceRequirements where- parseJSON = A.withObject "V1VolumeResourceRequirements" $ \o ->- V1VolumeResourceRequirements- <$> (o .:? "limits")- <*> (o .:? "requests")---- | ToJSON V1VolumeResourceRequirements-instance A.ToJSON V1VolumeResourceRequirements where- toJSON V1VolumeResourceRequirements {..} =- _omitNulls- [ "limits" .= v1VolumeResourceRequirementsLimits- , "requests" .= v1VolumeResourceRequirementsRequests- ]----- | Construct a value of type 'V1VolumeResourceRequirements' (by applying it's required fields, if any)-mkV1VolumeResourceRequirements- :: V1VolumeResourceRequirements-mkV1VolumeResourceRequirements =- V1VolumeResourceRequirements- { v1VolumeResourceRequirementsLimits = Nothing- , v1VolumeResourceRequirementsRequests = Nothing- }---- ** V1VsphereVirtualDiskVolumeSource--- | V1VsphereVirtualDiskVolumeSource--- Represents a vSphere volume resource.-data V1VsphereVirtualDiskVolumeSource = V1VsphereVirtualDiskVolumeSource- { v1VsphereVirtualDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.- , v1VsphereVirtualDiskVolumeSourceStoragePolicyId :: !(Maybe Text) -- ^ "storagePolicyID" - storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.- , v1VsphereVirtualDiskVolumeSourceStoragePolicyName :: !(Maybe Text) -- ^ "storagePolicyName" - storagePolicyName is the storage Policy Based Management (SPBM) profile name.- , v1VsphereVirtualDiskVolumeSourceVolumePath :: !(Text) -- ^ /Required/ "volumePath" - volumePath is the path that identifies vSphere volume vmdk- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1VsphereVirtualDiskVolumeSource-instance A.FromJSON V1VsphereVirtualDiskVolumeSource where- parseJSON = A.withObject "V1VsphereVirtualDiskVolumeSource" $ \o ->- V1VsphereVirtualDiskVolumeSource- <$> (o .:? "fsType")- <*> (o .:? "storagePolicyID")- <*> (o .:? "storagePolicyName")- <*> (o .: "volumePath")---- | ToJSON V1VsphereVirtualDiskVolumeSource-instance A.ToJSON V1VsphereVirtualDiskVolumeSource where- toJSON V1VsphereVirtualDiskVolumeSource {..} =- _omitNulls- [ "fsType" .= v1VsphereVirtualDiskVolumeSourceFsType- , "storagePolicyID" .= v1VsphereVirtualDiskVolumeSourceStoragePolicyId- , "storagePolicyName" .= v1VsphereVirtualDiskVolumeSourceStoragePolicyName- , "volumePath" .= v1VsphereVirtualDiskVolumeSourceVolumePath- ]----- | Construct a value of type 'V1VsphereVirtualDiskVolumeSource' (by applying it's required fields, if any)-mkV1VsphereVirtualDiskVolumeSource- :: Text -- ^ 'v1VsphereVirtualDiskVolumeSourceVolumePath': volumePath is the path that identifies vSphere volume vmdk- -> V1VsphereVirtualDiskVolumeSource-mkV1VsphereVirtualDiskVolumeSource v1VsphereVirtualDiskVolumeSourceVolumePath =- V1VsphereVirtualDiskVolumeSource- { v1VsphereVirtualDiskVolumeSourceFsType = Nothing- , v1VsphereVirtualDiskVolumeSourceStoragePolicyId = Nothing- , v1VsphereVirtualDiskVolumeSourceStoragePolicyName = Nothing- , v1VsphereVirtualDiskVolumeSourceVolumePath- }---- ** V1WatchEvent--- | V1WatchEvent--- Event represents a single event to a watched resource.-data V1WatchEvent = V1WatchEvent- { v1WatchEventObject :: !(A.Value) -- ^ /Required/ "object" - Object is: * If Type is Added or Modified: the new state of the object. * If Type is Deleted: the state of the object immediately before deletion. * If Type is Error: *Status is recommended; other types may make sense depending on context.- , v1WatchEventType :: !(Text) -- ^ /Required/ "type"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1WatchEvent-instance A.FromJSON V1WatchEvent where- parseJSON = A.withObject "V1WatchEvent" $ \o ->- V1WatchEvent- <$> (o .: "object")- <*> (o .: "type")---- | ToJSON V1WatchEvent-instance A.ToJSON V1WatchEvent where- toJSON V1WatchEvent {..} =- _omitNulls- [ "object" .= v1WatchEventObject- , "type" .= v1WatchEventType- ]----- | Construct a value of type 'V1WatchEvent' (by applying it's required fields, if any)-mkV1WatchEvent- :: A.Value -- ^ 'v1WatchEventObject': Object is: * If Type is Added or Modified: the new state of the object. * If Type is Deleted: the state of the object immediately before deletion. * If Type is Error: *Status is recommended; other types may make sense depending on context.- -> Text -- ^ 'v1WatchEventType' - -> V1WatchEvent-mkV1WatchEvent v1WatchEventObject v1WatchEventType =- V1WatchEvent- { v1WatchEventObject- , v1WatchEventType- }---- ** V1WebhookConversion--- | V1WebhookConversion--- WebhookConversion describes how to call a conversion webhook-data V1WebhookConversion = V1WebhookConversion- { v1WebhookConversionClientConfig :: !(Maybe ApiextensionsV1WebhookClientConfig) -- ^ "clientConfig"- , v1WebhookConversionConversionReviewVersions :: !([Text]) -- ^ /Required/ "conversionReviewVersions" - conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1WebhookConversion-instance A.FromJSON V1WebhookConversion where- parseJSON = A.withObject "V1WebhookConversion" $ \o ->- V1WebhookConversion- <$> (o .:? "clientConfig")- <*> (o .: "conversionReviewVersions")---- | ToJSON V1WebhookConversion-instance A.ToJSON V1WebhookConversion where- toJSON V1WebhookConversion {..} =- _omitNulls- [ "clientConfig" .= v1WebhookConversionClientConfig- , "conversionReviewVersions" .= v1WebhookConversionConversionReviewVersions- ]----- | Construct a value of type 'V1WebhookConversion' (by applying it's required fields, if any)-mkV1WebhookConversion- :: [Text] -- ^ 'v1WebhookConversionConversionReviewVersions': conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.- -> V1WebhookConversion-mkV1WebhookConversion v1WebhookConversionConversionReviewVersions =- V1WebhookConversion- { v1WebhookConversionClientConfig = Nothing- , v1WebhookConversionConversionReviewVersions- }---- ** V1WeightedPodAffinityTerm--- | V1WeightedPodAffinityTerm--- The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)-data V1WeightedPodAffinityTerm = V1WeightedPodAffinityTerm- { v1WeightedPodAffinityTermPodAffinityTerm :: !(V1PodAffinityTerm) -- ^ /Required/ "podAffinityTerm"- , v1WeightedPodAffinityTermWeight :: !(Int) -- ^ /Required/ "weight" - weight associated with matching the corresponding podAffinityTerm, in the range 1-100.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1WeightedPodAffinityTerm-instance A.FromJSON V1WeightedPodAffinityTerm where- parseJSON = A.withObject "V1WeightedPodAffinityTerm" $ \o ->- V1WeightedPodAffinityTerm- <$> (o .: "podAffinityTerm")- <*> (o .: "weight")---- | ToJSON V1WeightedPodAffinityTerm-instance A.ToJSON V1WeightedPodAffinityTerm where- toJSON V1WeightedPodAffinityTerm {..} =- _omitNulls- [ "podAffinityTerm" .= v1WeightedPodAffinityTermPodAffinityTerm- , "weight" .= v1WeightedPodAffinityTermWeight- ]----- | Construct a value of type 'V1WeightedPodAffinityTerm' (by applying it's required fields, if any)-mkV1WeightedPodAffinityTerm- :: V1PodAffinityTerm -- ^ 'v1WeightedPodAffinityTermPodAffinityTerm' - -> Int -- ^ 'v1WeightedPodAffinityTermWeight': weight associated with matching the corresponding podAffinityTerm, in the range 1-100.- -> V1WeightedPodAffinityTerm-mkV1WeightedPodAffinityTerm v1WeightedPodAffinityTermPodAffinityTerm v1WeightedPodAffinityTermWeight =- V1WeightedPodAffinityTerm- { v1WeightedPodAffinityTermPodAffinityTerm- , v1WeightedPodAffinityTermWeight- }---- ** V1WindowsSecurityContextOptions--- | V1WindowsSecurityContextOptions--- WindowsSecurityContextOptions contain Windows-specific options and credentials.-data V1WindowsSecurityContextOptions = V1WindowsSecurityContextOptions- { v1WindowsSecurityContextOptionsGmsaCredentialSpec :: !(Maybe Text) -- ^ "gmsaCredentialSpec" - GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.- , v1WindowsSecurityContextOptionsGmsaCredentialSpecName :: !(Maybe Text) -- ^ "gmsaCredentialSpecName" - GMSACredentialSpecName is the name of the GMSA credential spec to use.- , v1WindowsSecurityContextOptionsHostProcess :: !(Maybe Bool) -- ^ "hostProcess" - HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.- , v1WindowsSecurityContextOptionsRunAsUserName :: !(Maybe Text) -- ^ "runAsUserName" - The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1WindowsSecurityContextOptions-instance A.FromJSON V1WindowsSecurityContextOptions where- parseJSON = A.withObject "V1WindowsSecurityContextOptions" $ \o ->- V1WindowsSecurityContextOptions- <$> (o .:? "gmsaCredentialSpec")- <*> (o .:? "gmsaCredentialSpecName")- <*> (o .:? "hostProcess")- <*> (o .:? "runAsUserName")---- | ToJSON V1WindowsSecurityContextOptions-instance A.ToJSON V1WindowsSecurityContextOptions where- toJSON V1WindowsSecurityContextOptions {..} =- _omitNulls- [ "gmsaCredentialSpec" .= v1WindowsSecurityContextOptionsGmsaCredentialSpec- , "gmsaCredentialSpecName" .= v1WindowsSecurityContextOptionsGmsaCredentialSpecName- , "hostProcess" .= v1WindowsSecurityContextOptionsHostProcess- , "runAsUserName" .= v1WindowsSecurityContextOptionsRunAsUserName- ]----- | Construct a value of type 'V1WindowsSecurityContextOptions' (by applying it's required fields, if any)-mkV1WindowsSecurityContextOptions- :: V1WindowsSecurityContextOptions-mkV1WindowsSecurityContextOptions =- V1WindowsSecurityContextOptions- { v1WindowsSecurityContextOptionsGmsaCredentialSpec = Nothing- , v1WindowsSecurityContextOptionsGmsaCredentialSpecName = Nothing- , v1WindowsSecurityContextOptionsHostProcess = Nothing- , v1WindowsSecurityContextOptionsRunAsUserName = Nothing- }---- ** V1alpha1ApplyConfiguration--- | V1alpha1ApplyConfiguration--- ApplyConfiguration defines the desired configuration values of an object.-data V1alpha1ApplyConfiguration = V1alpha1ApplyConfiguration- { v1alpha1ApplyConfigurationExpression :: !(Maybe Text) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1ApplyConfiguration-instance A.FromJSON V1alpha1ApplyConfiguration where- parseJSON = A.withObject "V1alpha1ApplyConfiguration" $ \o ->- V1alpha1ApplyConfiguration- <$> (o .:? "expression")---- | ToJSON V1alpha1ApplyConfiguration-instance A.ToJSON V1alpha1ApplyConfiguration where- toJSON V1alpha1ApplyConfiguration {..} =- _omitNulls- [ "expression" .= v1alpha1ApplyConfigurationExpression- ]----- | Construct a value of type 'V1alpha1ApplyConfiguration' (by applying it's required fields, if any)-mkV1alpha1ApplyConfiguration- :: V1alpha1ApplyConfiguration-mkV1alpha1ApplyConfiguration =- V1alpha1ApplyConfiguration- { v1alpha1ApplyConfigurationExpression = Nothing- }---- ** V1alpha1ClusterTrustBundle--- | V1alpha1ClusterTrustBundle--- ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates). ClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to. It can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.-data V1alpha1ClusterTrustBundle = V1alpha1ClusterTrustBundle- { v1alpha1ClusterTrustBundleApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1ClusterTrustBundleKind :: !(Maybe Text) -- ^ "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- , v1alpha1ClusterTrustBundleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha1ClusterTrustBundleSpec :: !(V1alpha1ClusterTrustBundleSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1ClusterTrustBundle-instance A.FromJSON V1alpha1ClusterTrustBundle where- parseJSON = A.withObject "V1alpha1ClusterTrustBundle" $ \o ->- V1alpha1ClusterTrustBundle- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1alpha1ClusterTrustBundle-instance A.ToJSON V1alpha1ClusterTrustBundle where- toJSON V1alpha1ClusterTrustBundle {..} =- _omitNulls- [ "apiVersion" .= v1alpha1ClusterTrustBundleApiVersion- , "kind" .= v1alpha1ClusterTrustBundleKind- , "metadata" .= v1alpha1ClusterTrustBundleMetadata- , "spec" .= v1alpha1ClusterTrustBundleSpec- ]----- | Construct a value of type 'V1alpha1ClusterTrustBundle' (by applying it's required fields, if any)-mkV1alpha1ClusterTrustBundle- :: V1alpha1ClusterTrustBundleSpec -- ^ 'v1alpha1ClusterTrustBundleSpec' - -> V1alpha1ClusterTrustBundle-mkV1alpha1ClusterTrustBundle v1alpha1ClusterTrustBundleSpec =- V1alpha1ClusterTrustBundle- { v1alpha1ClusterTrustBundleApiVersion = Nothing- , v1alpha1ClusterTrustBundleKind = Nothing- , v1alpha1ClusterTrustBundleMetadata = Nothing- , v1alpha1ClusterTrustBundleSpec- }---- ** V1alpha1ClusterTrustBundleList--- | V1alpha1ClusterTrustBundleList--- ClusterTrustBundleList is a collection of ClusterTrustBundle objects-data V1alpha1ClusterTrustBundleList = V1alpha1ClusterTrustBundleList- { v1alpha1ClusterTrustBundleListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1ClusterTrustBundleListItems :: !([V1alpha1ClusterTrustBundle]) -- ^ /Required/ "items" - items is a collection of ClusterTrustBundle objects- , v1alpha1ClusterTrustBundleListKind :: !(Maybe Text) -- ^ "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- , v1alpha1ClusterTrustBundleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1ClusterTrustBundleList-instance A.FromJSON V1alpha1ClusterTrustBundleList where- parseJSON = A.withObject "V1alpha1ClusterTrustBundleList" $ \o ->- V1alpha1ClusterTrustBundleList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha1ClusterTrustBundleList-instance A.ToJSON V1alpha1ClusterTrustBundleList where- toJSON V1alpha1ClusterTrustBundleList {..} =- _omitNulls- [ "apiVersion" .= v1alpha1ClusterTrustBundleListApiVersion- , "items" .= v1alpha1ClusterTrustBundleListItems- , "kind" .= v1alpha1ClusterTrustBundleListKind- , "metadata" .= v1alpha1ClusterTrustBundleListMetadata- ]----- | Construct a value of type 'V1alpha1ClusterTrustBundleList' (by applying it's required fields, if any)-mkV1alpha1ClusterTrustBundleList- :: [V1alpha1ClusterTrustBundle] -- ^ 'v1alpha1ClusterTrustBundleListItems': items is a collection of ClusterTrustBundle objects- -> V1alpha1ClusterTrustBundleList-mkV1alpha1ClusterTrustBundleList v1alpha1ClusterTrustBundleListItems =- V1alpha1ClusterTrustBundleList- { v1alpha1ClusterTrustBundleListApiVersion = Nothing- , v1alpha1ClusterTrustBundleListItems- , v1alpha1ClusterTrustBundleListKind = Nothing- , v1alpha1ClusterTrustBundleListMetadata = Nothing- }---- ** V1alpha1ClusterTrustBundleSpec--- | V1alpha1ClusterTrustBundleSpec--- ClusterTrustBundleSpec contains the signer and trust anchors.-data V1alpha1ClusterTrustBundleSpec = V1alpha1ClusterTrustBundleSpec- { v1alpha1ClusterTrustBundleSpecSignerName :: !(Maybe Text) -- ^ "signerName" - signerName indicates the associated signer, if any. In order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName=<the signer name> verb=attest. If signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`. If signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix. List/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.- , v1alpha1ClusterTrustBundleSpecTrustBundle :: !(Text) -- ^ /Required/ "trustBundle" - trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1ClusterTrustBundleSpec-instance A.FromJSON V1alpha1ClusterTrustBundleSpec where- parseJSON = A.withObject "V1alpha1ClusterTrustBundleSpec" $ \o ->- V1alpha1ClusterTrustBundleSpec- <$> (o .:? "signerName")- <*> (o .: "trustBundle")---- | ToJSON V1alpha1ClusterTrustBundleSpec-instance A.ToJSON V1alpha1ClusterTrustBundleSpec where- toJSON V1alpha1ClusterTrustBundleSpec {..} =- _omitNulls- [ "signerName" .= v1alpha1ClusterTrustBundleSpecSignerName- , "trustBundle" .= v1alpha1ClusterTrustBundleSpecTrustBundle- ]----- | Construct a value of type 'V1alpha1ClusterTrustBundleSpec' (by applying it's required fields, if any)-mkV1alpha1ClusterTrustBundleSpec- :: Text -- ^ 'v1alpha1ClusterTrustBundleSpecTrustBundle': trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.- -> V1alpha1ClusterTrustBundleSpec-mkV1alpha1ClusterTrustBundleSpec v1alpha1ClusterTrustBundleSpecTrustBundle =- V1alpha1ClusterTrustBundleSpec- { v1alpha1ClusterTrustBundleSpecSignerName = Nothing- , v1alpha1ClusterTrustBundleSpecTrustBundle- }---- ** V1alpha1GroupVersionResource--- | V1alpha1GroupVersionResource--- The names of the group, the version, and the resource.-data V1alpha1GroupVersionResource = V1alpha1GroupVersionResource- { v1alpha1GroupVersionResourceGroup :: !(Maybe Text) -- ^ "group" - The name of the group.- , v1alpha1GroupVersionResourceResource :: !(Maybe Text) -- ^ "resource" - The name of the resource.- , v1alpha1GroupVersionResourceVersion :: !(Maybe Text) -- ^ "version" - The name of the version.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1GroupVersionResource-instance A.FromJSON V1alpha1GroupVersionResource where- parseJSON = A.withObject "V1alpha1GroupVersionResource" $ \o ->- V1alpha1GroupVersionResource- <$> (o .:? "group")- <*> (o .:? "resource")- <*> (o .:? "version")---- | ToJSON V1alpha1GroupVersionResource-instance A.ToJSON V1alpha1GroupVersionResource where- toJSON V1alpha1GroupVersionResource {..} =- _omitNulls- [ "group" .= v1alpha1GroupVersionResourceGroup- , "resource" .= v1alpha1GroupVersionResourceResource- , "version" .= v1alpha1GroupVersionResourceVersion- ]----- | Construct a value of type 'V1alpha1GroupVersionResource' (by applying it's required fields, if any)-mkV1alpha1GroupVersionResource- :: V1alpha1GroupVersionResource-mkV1alpha1GroupVersionResource =- V1alpha1GroupVersionResource- { v1alpha1GroupVersionResourceGroup = Nothing- , v1alpha1GroupVersionResourceResource = Nothing- , v1alpha1GroupVersionResourceVersion = Nothing- }---- ** V1alpha1JSONPatch--- | V1alpha1JSONPatch--- JSONPatch defines a JSON Patch.-data V1alpha1JSONPatch = V1alpha1JSONPatch- { v1alpha1JSONPatchExpression :: !(Maybe Text) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1JSONPatch-instance A.FromJSON V1alpha1JSONPatch where- parseJSON = A.withObject "V1alpha1JSONPatch" $ \o ->- V1alpha1JSONPatch- <$> (o .:? "expression")---- | ToJSON V1alpha1JSONPatch-instance A.ToJSON V1alpha1JSONPatch where- toJSON V1alpha1JSONPatch {..} =- _omitNulls- [ "expression" .= v1alpha1JSONPatchExpression- ]----- | Construct a value of type 'V1alpha1JSONPatch' (by applying it's required fields, if any)-mkV1alpha1JSONPatch- :: V1alpha1JSONPatch-mkV1alpha1JSONPatch =- V1alpha1JSONPatch- { v1alpha1JSONPatchExpression = Nothing- }---- ** V1alpha1MatchCondition--- | V1alpha1MatchCondition-data V1alpha1MatchCondition = V1alpha1MatchCondition- { v1alpha1MatchConditionExpression :: !(Text) -- ^ /Required/ "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.- , v1alpha1MatchConditionName :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MatchCondition-instance A.FromJSON V1alpha1MatchCondition where- parseJSON = A.withObject "V1alpha1MatchCondition" $ \o ->- V1alpha1MatchCondition- <$> (o .: "expression")- <*> (o .: "name")---- | ToJSON V1alpha1MatchCondition-instance A.ToJSON V1alpha1MatchCondition where- toJSON V1alpha1MatchCondition {..} =- _omitNulls- [ "expression" .= v1alpha1MatchConditionExpression- , "name" .= v1alpha1MatchConditionName- ]----- | Construct a value of type 'V1alpha1MatchCondition' (by applying it's required fields, if any)-mkV1alpha1MatchCondition- :: Text -- ^ 'v1alpha1MatchConditionExpression': 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.- -> Text -- ^ 'v1alpha1MatchConditionName': 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.- -> V1alpha1MatchCondition-mkV1alpha1MatchCondition v1alpha1MatchConditionExpression v1alpha1MatchConditionName =- V1alpha1MatchCondition- { v1alpha1MatchConditionExpression- , v1alpha1MatchConditionName- }---- ** V1alpha1MatchResources--- | V1alpha1MatchResources--- 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)-data V1alpha1MatchResources = V1alpha1MatchResources- { v1alpha1MatchResourcesExcludeResourceRules :: !(Maybe [V1alpha1NamedRuleWithOperations]) -- ^ "excludeResourceRules" - ExcludeResourceRules describes what operations on what resources/subresources the policy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)- , v1alpha1MatchResourcesMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - 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\"]`, the admission policy does not consider requests to apps/v1beta1 or extensions/v1beta1 API groups. - 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\"]`, the admission policy **does** consider requests made to apps/v1beta1 or extensions/v1beta1 API groups. The API server translates the request to a matched resource API if necessary. Defaults to \"Equivalent\"- , v1alpha1MatchResourcesNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"- , v1alpha1MatchResourcesObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"- , v1alpha1MatchResourcesResourceRules :: !(Maybe [V1alpha1NamedRuleWithOperations]) -- ^ "resourceRules" - ResourceRules describes what operations on what resources/subresources the admission policy matches. The policy cares about an operation if it matches _any_ Rule.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MatchResources-instance A.FromJSON V1alpha1MatchResources where- parseJSON = A.withObject "V1alpha1MatchResources" $ \o ->- V1alpha1MatchResources- <$> (o .:? "excludeResourceRules")- <*> (o .:? "matchPolicy")- <*> (o .:? "namespaceSelector")- <*> (o .:? "objectSelector")- <*> (o .:? "resourceRules")---- | ToJSON V1alpha1MatchResources-instance A.ToJSON V1alpha1MatchResources where- toJSON V1alpha1MatchResources {..} =- _omitNulls- [ "excludeResourceRules" .= v1alpha1MatchResourcesExcludeResourceRules- , "matchPolicy" .= v1alpha1MatchResourcesMatchPolicy- , "namespaceSelector" .= v1alpha1MatchResourcesNamespaceSelector- , "objectSelector" .= v1alpha1MatchResourcesObjectSelector- , "resourceRules" .= v1alpha1MatchResourcesResourceRules- ]----- | Construct a value of type 'V1alpha1MatchResources' (by applying it's required fields, if any)-mkV1alpha1MatchResources- :: V1alpha1MatchResources-mkV1alpha1MatchResources =- V1alpha1MatchResources- { v1alpha1MatchResourcesExcludeResourceRules = Nothing- , v1alpha1MatchResourcesMatchPolicy = Nothing- , v1alpha1MatchResourcesNamespaceSelector = Nothing- , v1alpha1MatchResourcesObjectSelector = Nothing- , v1alpha1MatchResourcesResourceRules = Nothing- }---- ** V1alpha1MigrationCondition--- | V1alpha1MigrationCondition--- Describes the state of a migration at a certain point.-data V1alpha1MigrationCondition = V1alpha1MigrationCondition- { v1alpha1MigrationConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - The last time this condition was updated.- , v1alpha1MigrationConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.- , v1alpha1MigrationConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.- , v1alpha1MigrationConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1alpha1MigrationConditionType :: !(Text) -- ^ /Required/ "type" - Type of the condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MigrationCondition-instance A.FromJSON V1alpha1MigrationCondition where- parseJSON = A.withObject "V1alpha1MigrationCondition" $ \o ->- V1alpha1MigrationCondition- <$> (o .:? "lastUpdateTime")- <*> (o .:? "message")- <*> (o .:? "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1alpha1MigrationCondition-instance A.ToJSON V1alpha1MigrationCondition where- toJSON V1alpha1MigrationCondition {..} =- _omitNulls- [ "lastUpdateTime" .= v1alpha1MigrationConditionLastUpdateTime- , "message" .= v1alpha1MigrationConditionMessage- , "reason" .= v1alpha1MigrationConditionReason- , "status" .= v1alpha1MigrationConditionStatus- , "type" .= v1alpha1MigrationConditionType- ]----- | Construct a value of type 'V1alpha1MigrationCondition' (by applying it's required fields, if any)-mkV1alpha1MigrationCondition- :: Text -- ^ 'v1alpha1MigrationConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1alpha1MigrationConditionType': Type of the condition.- -> V1alpha1MigrationCondition-mkV1alpha1MigrationCondition v1alpha1MigrationConditionStatus v1alpha1MigrationConditionType =- V1alpha1MigrationCondition- { v1alpha1MigrationConditionLastUpdateTime = Nothing- , v1alpha1MigrationConditionMessage = Nothing- , v1alpha1MigrationConditionReason = Nothing- , v1alpha1MigrationConditionStatus- , v1alpha1MigrationConditionType- }---- ** V1alpha1MutatingAdmissionPolicy--- | V1alpha1MutatingAdmissionPolicy--- MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.-data V1alpha1MutatingAdmissionPolicy = V1alpha1MutatingAdmissionPolicy- { v1alpha1MutatingAdmissionPolicyApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1MutatingAdmissionPolicyKind :: !(Maybe Text) -- ^ "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- , v1alpha1MutatingAdmissionPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha1MutatingAdmissionPolicySpec :: !(Maybe V1alpha1MutatingAdmissionPolicySpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MutatingAdmissionPolicy-instance A.FromJSON V1alpha1MutatingAdmissionPolicy where- parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicy" $ \o ->- V1alpha1MutatingAdmissionPolicy- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1alpha1MutatingAdmissionPolicy-instance A.ToJSON V1alpha1MutatingAdmissionPolicy where- toJSON V1alpha1MutatingAdmissionPolicy {..} =- _omitNulls- [ "apiVersion" .= v1alpha1MutatingAdmissionPolicyApiVersion- , "kind" .= v1alpha1MutatingAdmissionPolicyKind- , "metadata" .= v1alpha1MutatingAdmissionPolicyMetadata- , "spec" .= v1alpha1MutatingAdmissionPolicySpec- ]----- | Construct a value of type 'V1alpha1MutatingAdmissionPolicy' (by applying it's required fields, if any)-mkV1alpha1MutatingAdmissionPolicy- :: V1alpha1MutatingAdmissionPolicy-mkV1alpha1MutatingAdmissionPolicy =- V1alpha1MutatingAdmissionPolicy- { v1alpha1MutatingAdmissionPolicyApiVersion = Nothing- , v1alpha1MutatingAdmissionPolicyKind = Nothing- , v1alpha1MutatingAdmissionPolicyMetadata = Nothing- , v1alpha1MutatingAdmissionPolicySpec = Nothing- }---- ** V1alpha1MutatingAdmissionPolicyBinding--- | V1alpha1MutatingAdmissionPolicyBinding--- 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.-data V1alpha1MutatingAdmissionPolicyBinding = V1alpha1MutatingAdmissionPolicyBinding- { v1alpha1MutatingAdmissionPolicyBindingApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1MutatingAdmissionPolicyBindingKind :: !(Maybe Text) -- ^ "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- , v1alpha1MutatingAdmissionPolicyBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha1MutatingAdmissionPolicyBindingSpec :: !(Maybe V1alpha1MutatingAdmissionPolicyBindingSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MutatingAdmissionPolicyBinding-instance A.FromJSON V1alpha1MutatingAdmissionPolicyBinding where- parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicyBinding" $ \o ->- V1alpha1MutatingAdmissionPolicyBinding- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1alpha1MutatingAdmissionPolicyBinding-instance A.ToJSON V1alpha1MutatingAdmissionPolicyBinding where- toJSON V1alpha1MutatingAdmissionPolicyBinding {..} =- _omitNulls- [ "apiVersion" .= v1alpha1MutatingAdmissionPolicyBindingApiVersion- , "kind" .= v1alpha1MutatingAdmissionPolicyBindingKind- , "metadata" .= v1alpha1MutatingAdmissionPolicyBindingMetadata- , "spec" .= v1alpha1MutatingAdmissionPolicyBindingSpec- ]----- | Construct a value of type 'V1alpha1MutatingAdmissionPolicyBinding' (by applying it's required fields, if any)-mkV1alpha1MutatingAdmissionPolicyBinding- :: V1alpha1MutatingAdmissionPolicyBinding-mkV1alpha1MutatingAdmissionPolicyBinding =- V1alpha1MutatingAdmissionPolicyBinding- { v1alpha1MutatingAdmissionPolicyBindingApiVersion = Nothing- , v1alpha1MutatingAdmissionPolicyBindingKind = Nothing- , v1alpha1MutatingAdmissionPolicyBindingMetadata = Nothing- , v1alpha1MutatingAdmissionPolicyBindingSpec = Nothing- }---- ** V1alpha1MutatingAdmissionPolicyBindingList--- | V1alpha1MutatingAdmissionPolicyBindingList--- MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.-data V1alpha1MutatingAdmissionPolicyBindingList = V1alpha1MutatingAdmissionPolicyBindingList- { v1alpha1MutatingAdmissionPolicyBindingListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1MutatingAdmissionPolicyBindingListItems :: !([V1alpha1MutatingAdmissionPolicyBinding]) -- ^ /Required/ "items" - List of PolicyBinding.- , v1alpha1MutatingAdmissionPolicyBindingListKind :: !(Maybe Text) -- ^ "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- , v1alpha1MutatingAdmissionPolicyBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MutatingAdmissionPolicyBindingList-instance A.FromJSON V1alpha1MutatingAdmissionPolicyBindingList where- parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicyBindingList" $ \o ->- V1alpha1MutatingAdmissionPolicyBindingList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha1MutatingAdmissionPolicyBindingList-instance A.ToJSON V1alpha1MutatingAdmissionPolicyBindingList where- toJSON V1alpha1MutatingAdmissionPolicyBindingList {..} =- _omitNulls- [ "apiVersion" .= v1alpha1MutatingAdmissionPolicyBindingListApiVersion- , "items" .= v1alpha1MutatingAdmissionPolicyBindingListItems- , "kind" .= v1alpha1MutatingAdmissionPolicyBindingListKind- , "metadata" .= v1alpha1MutatingAdmissionPolicyBindingListMetadata- ]----- | Construct a value of type 'V1alpha1MutatingAdmissionPolicyBindingList' (by applying it's required fields, if any)-mkV1alpha1MutatingAdmissionPolicyBindingList- :: [V1alpha1MutatingAdmissionPolicyBinding] -- ^ 'v1alpha1MutatingAdmissionPolicyBindingListItems': List of PolicyBinding.- -> V1alpha1MutatingAdmissionPolicyBindingList-mkV1alpha1MutatingAdmissionPolicyBindingList v1alpha1MutatingAdmissionPolicyBindingListItems =- V1alpha1MutatingAdmissionPolicyBindingList- { v1alpha1MutatingAdmissionPolicyBindingListApiVersion = Nothing- , v1alpha1MutatingAdmissionPolicyBindingListItems- , v1alpha1MutatingAdmissionPolicyBindingListKind = Nothing- , v1alpha1MutatingAdmissionPolicyBindingListMetadata = Nothing- }---- ** V1alpha1MutatingAdmissionPolicyBindingSpec--- | V1alpha1MutatingAdmissionPolicyBindingSpec--- MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.-data V1alpha1MutatingAdmissionPolicyBindingSpec = V1alpha1MutatingAdmissionPolicyBindingSpec- { v1alpha1MutatingAdmissionPolicyBindingSpecMatchResources :: !(Maybe V1alpha1MatchResources) -- ^ "matchResources"- , v1alpha1MutatingAdmissionPolicyBindingSpecParamRef :: !(Maybe V1alpha1ParamRef) -- ^ "paramRef"- , v1alpha1MutatingAdmissionPolicyBindingSpecPolicyName :: !(Maybe Text) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MutatingAdmissionPolicyBindingSpec-instance A.FromJSON V1alpha1MutatingAdmissionPolicyBindingSpec where- parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicyBindingSpec" $ \o ->- V1alpha1MutatingAdmissionPolicyBindingSpec- <$> (o .:? "matchResources")- <*> (o .:? "paramRef")- <*> (o .:? "policyName")---- | ToJSON V1alpha1MutatingAdmissionPolicyBindingSpec-instance A.ToJSON V1alpha1MutatingAdmissionPolicyBindingSpec where- toJSON V1alpha1MutatingAdmissionPolicyBindingSpec {..} =- _omitNulls- [ "matchResources" .= v1alpha1MutatingAdmissionPolicyBindingSpecMatchResources- , "paramRef" .= v1alpha1MutatingAdmissionPolicyBindingSpecParamRef- , "policyName" .= v1alpha1MutatingAdmissionPolicyBindingSpecPolicyName- ]----- | Construct a value of type 'V1alpha1MutatingAdmissionPolicyBindingSpec' (by applying it's required fields, if any)-mkV1alpha1MutatingAdmissionPolicyBindingSpec- :: V1alpha1MutatingAdmissionPolicyBindingSpec-mkV1alpha1MutatingAdmissionPolicyBindingSpec =- V1alpha1MutatingAdmissionPolicyBindingSpec- { v1alpha1MutatingAdmissionPolicyBindingSpecMatchResources = Nothing- , v1alpha1MutatingAdmissionPolicyBindingSpecParamRef = Nothing- , v1alpha1MutatingAdmissionPolicyBindingSpecPolicyName = Nothing- }---- ** V1alpha1MutatingAdmissionPolicyList--- | V1alpha1MutatingAdmissionPolicyList--- MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.-data V1alpha1MutatingAdmissionPolicyList = V1alpha1MutatingAdmissionPolicyList- { v1alpha1MutatingAdmissionPolicyListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1MutatingAdmissionPolicyListItems :: !([V1alpha1MutatingAdmissionPolicy]) -- ^ /Required/ "items" - List of ValidatingAdmissionPolicy.- , v1alpha1MutatingAdmissionPolicyListKind :: !(Maybe Text) -- ^ "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- , v1alpha1MutatingAdmissionPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MutatingAdmissionPolicyList-instance A.FromJSON V1alpha1MutatingAdmissionPolicyList where- parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicyList" $ \o ->- V1alpha1MutatingAdmissionPolicyList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha1MutatingAdmissionPolicyList-instance A.ToJSON V1alpha1MutatingAdmissionPolicyList where- toJSON V1alpha1MutatingAdmissionPolicyList {..} =- _omitNulls- [ "apiVersion" .= v1alpha1MutatingAdmissionPolicyListApiVersion- , "items" .= v1alpha1MutatingAdmissionPolicyListItems- , "kind" .= v1alpha1MutatingAdmissionPolicyListKind- , "metadata" .= v1alpha1MutatingAdmissionPolicyListMetadata- ]----- | Construct a value of type 'V1alpha1MutatingAdmissionPolicyList' (by applying it's required fields, if any)-mkV1alpha1MutatingAdmissionPolicyList- :: [V1alpha1MutatingAdmissionPolicy] -- ^ 'v1alpha1MutatingAdmissionPolicyListItems': List of ValidatingAdmissionPolicy.- -> V1alpha1MutatingAdmissionPolicyList-mkV1alpha1MutatingAdmissionPolicyList v1alpha1MutatingAdmissionPolicyListItems =- V1alpha1MutatingAdmissionPolicyList- { v1alpha1MutatingAdmissionPolicyListApiVersion = Nothing- , v1alpha1MutatingAdmissionPolicyListItems- , v1alpha1MutatingAdmissionPolicyListKind = Nothing- , v1alpha1MutatingAdmissionPolicyListMetadata = Nothing- }---- ** V1alpha1MutatingAdmissionPolicySpec--- | V1alpha1MutatingAdmissionPolicySpec--- MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.-data V1alpha1MutatingAdmissionPolicySpec = V1alpha1MutatingAdmissionPolicySpec- { v1alpha1MutatingAdmissionPolicySpecFailurePolicy :: !(Maybe Text) -- ^ "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.- , v1alpha1MutatingAdmissionPolicySpecMatchConditions :: !(Maybe [V1alpha1MatchCondition]) -- ^ "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- , v1alpha1MutatingAdmissionPolicySpecMatchConstraints :: !(Maybe V1alpha1MatchResources) -- ^ "matchConstraints"- , v1alpha1MutatingAdmissionPolicySpecMutations :: !(Maybe [V1alpha1Mutation]) -- ^ "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.- , v1alpha1MutatingAdmissionPolicySpecParamKind :: !(Maybe V1alpha1ParamKind) -- ^ "paramKind"- , v1alpha1MutatingAdmissionPolicySpecReinvocationPolicy :: !(Maybe Text) -- ^ "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.- , v1alpha1MutatingAdmissionPolicySpecVariables :: !(Maybe [V1alpha1Variable]) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1MutatingAdmissionPolicySpec-instance A.FromJSON V1alpha1MutatingAdmissionPolicySpec where- parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicySpec" $ \o ->- V1alpha1MutatingAdmissionPolicySpec- <$> (o .:? "failurePolicy")- <*> (o .:? "matchConditions")- <*> (o .:? "matchConstraints")- <*> (o .:? "mutations")- <*> (o .:? "paramKind")- <*> (o .:? "reinvocationPolicy")- <*> (o .:? "variables")---- | ToJSON V1alpha1MutatingAdmissionPolicySpec-instance A.ToJSON V1alpha1MutatingAdmissionPolicySpec where- toJSON V1alpha1MutatingAdmissionPolicySpec {..} =- _omitNulls- [ "failurePolicy" .= v1alpha1MutatingAdmissionPolicySpecFailurePolicy- , "matchConditions" .= v1alpha1MutatingAdmissionPolicySpecMatchConditions- , "matchConstraints" .= v1alpha1MutatingAdmissionPolicySpecMatchConstraints- , "mutations" .= v1alpha1MutatingAdmissionPolicySpecMutations- , "paramKind" .= v1alpha1MutatingAdmissionPolicySpecParamKind- , "reinvocationPolicy" .= v1alpha1MutatingAdmissionPolicySpecReinvocationPolicy- , "variables" .= v1alpha1MutatingAdmissionPolicySpecVariables- ]----- | Construct a value of type 'V1alpha1MutatingAdmissionPolicySpec' (by applying it's required fields, if any)-mkV1alpha1MutatingAdmissionPolicySpec- :: V1alpha1MutatingAdmissionPolicySpec-mkV1alpha1MutatingAdmissionPolicySpec =- V1alpha1MutatingAdmissionPolicySpec- { v1alpha1MutatingAdmissionPolicySpecFailurePolicy = Nothing- , v1alpha1MutatingAdmissionPolicySpecMatchConditions = Nothing- , v1alpha1MutatingAdmissionPolicySpecMatchConstraints = Nothing- , v1alpha1MutatingAdmissionPolicySpecMutations = Nothing- , v1alpha1MutatingAdmissionPolicySpecParamKind = Nothing- , v1alpha1MutatingAdmissionPolicySpecReinvocationPolicy = Nothing- , v1alpha1MutatingAdmissionPolicySpecVariables = Nothing- }---- ** V1alpha1Mutation--- | V1alpha1Mutation--- Mutation specifies the CEL expression which is used to apply the Mutation.-data V1alpha1Mutation = V1alpha1Mutation- { v1alpha1MutationApplyConfiguration :: !(Maybe V1alpha1ApplyConfiguration) -- ^ "applyConfiguration"- , v1alpha1MutationJsonPatch :: !(Maybe V1alpha1JSONPatch) -- ^ "jsonPatch"- , v1alpha1MutationPatchType :: !(Text) -- ^ /Required/ "patchType" - patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1Mutation-instance A.FromJSON V1alpha1Mutation where- parseJSON = A.withObject "V1alpha1Mutation" $ \o ->- V1alpha1Mutation- <$> (o .:? "applyConfiguration")- <*> (o .:? "jsonPatch")- <*> (o .: "patchType")---- | ToJSON V1alpha1Mutation-instance A.ToJSON V1alpha1Mutation where- toJSON V1alpha1Mutation {..} =- _omitNulls- [ "applyConfiguration" .= v1alpha1MutationApplyConfiguration- , "jsonPatch" .= v1alpha1MutationJsonPatch- , "patchType" .= v1alpha1MutationPatchType- ]----- | Construct a value of type 'V1alpha1Mutation' (by applying it's required fields, if any)-mkV1alpha1Mutation- :: Text -- ^ 'v1alpha1MutationPatchType': patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.- -> V1alpha1Mutation-mkV1alpha1Mutation v1alpha1MutationPatchType =- V1alpha1Mutation- { v1alpha1MutationApplyConfiguration = Nothing- , v1alpha1MutationJsonPatch = Nothing- , v1alpha1MutationPatchType- }---- ** V1alpha1NamedRuleWithOperations--- | V1alpha1NamedRuleWithOperations--- NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.-data V1alpha1NamedRuleWithOperations = V1alpha1NamedRuleWithOperations- { v1alpha1NamedRuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.- , v1alpha1NamedRuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.- , v1alpha1NamedRuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - 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.- , v1alpha1NamedRuleWithOperationsResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.- , v1alpha1NamedRuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - 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.- , v1alpha1NamedRuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - 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 \"*\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1NamedRuleWithOperations-instance A.FromJSON V1alpha1NamedRuleWithOperations where- parseJSON = A.withObject "V1alpha1NamedRuleWithOperations" $ \o ->- V1alpha1NamedRuleWithOperations- <$> (o .:? "apiGroups")- <*> (o .:? "apiVersions")- <*> (o .:? "operations")- <*> (o .:? "resourceNames")- <*> (o .:? "resources")- <*> (o .:? "scope")---- | ToJSON V1alpha1NamedRuleWithOperations-instance A.ToJSON V1alpha1NamedRuleWithOperations where- toJSON V1alpha1NamedRuleWithOperations {..} =- _omitNulls- [ "apiGroups" .= v1alpha1NamedRuleWithOperationsApiGroups- , "apiVersions" .= v1alpha1NamedRuleWithOperationsApiVersions- , "operations" .= v1alpha1NamedRuleWithOperationsOperations- , "resourceNames" .= v1alpha1NamedRuleWithOperationsResourceNames- , "resources" .= v1alpha1NamedRuleWithOperationsResources- , "scope" .= v1alpha1NamedRuleWithOperationsScope- ]----- | Construct a value of type 'V1alpha1NamedRuleWithOperations' (by applying it's required fields, if any)-mkV1alpha1NamedRuleWithOperations- :: V1alpha1NamedRuleWithOperations-mkV1alpha1NamedRuleWithOperations =- V1alpha1NamedRuleWithOperations- { v1alpha1NamedRuleWithOperationsApiGroups = Nothing- , v1alpha1NamedRuleWithOperationsApiVersions = Nothing- , v1alpha1NamedRuleWithOperationsOperations = Nothing- , v1alpha1NamedRuleWithOperationsResourceNames = Nothing- , v1alpha1NamedRuleWithOperationsResources = Nothing- , v1alpha1NamedRuleWithOperationsScope = Nothing- }---- ** V1alpha1ParamKind--- | V1alpha1ParamKind--- ParamKind is a tuple of Group Kind and Version.-data V1alpha1ParamKind = V1alpha1ParamKind- { v1alpha1ParamKindApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.- , v1alpha1ParamKindKind :: !(Maybe Text) -- ^ "kind" - Kind is the API kind the resources belong to. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1ParamKind-instance A.FromJSON V1alpha1ParamKind where- parseJSON = A.withObject "V1alpha1ParamKind" $ \o ->- V1alpha1ParamKind- <$> (o .:? "apiVersion")- <*> (o .:? "kind")---- | ToJSON V1alpha1ParamKind-instance A.ToJSON V1alpha1ParamKind where- toJSON V1alpha1ParamKind {..} =- _omitNulls- [ "apiVersion" .= v1alpha1ParamKindApiVersion- , "kind" .= v1alpha1ParamKindKind- ]----- | Construct a value of type 'V1alpha1ParamKind' (by applying it's required fields, if any)-mkV1alpha1ParamKind- :: V1alpha1ParamKind-mkV1alpha1ParamKind =- V1alpha1ParamKind- { v1alpha1ParamKindApiVersion = Nothing- , v1alpha1ParamKindKind = Nothing- }---- ** V1alpha1ParamRef--- | V1alpha1ParamRef--- ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.-data V1alpha1ParamRef = V1alpha1ParamRef- { v1alpha1ParamRefName :: !(Maybe Text) -- ^ "name" - `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.- , v1alpha1ParamRefNamespace :: !(Maybe Text) -- ^ "namespace" - 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.- , v1alpha1ParamRefParameterNotFoundAction :: !(Maybe Text) -- ^ "parameterNotFoundAction" - `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`- , v1alpha1ParamRefSelector :: !(Maybe V1LabelSelector) -- ^ "selector"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1ParamRef-instance A.FromJSON V1alpha1ParamRef where- parseJSON = A.withObject "V1alpha1ParamRef" $ \o ->- V1alpha1ParamRef- <$> (o .:? "name")- <*> (o .:? "namespace")- <*> (o .:? "parameterNotFoundAction")- <*> (o .:? "selector")---- | ToJSON V1alpha1ParamRef-instance A.ToJSON V1alpha1ParamRef where- toJSON V1alpha1ParamRef {..} =- _omitNulls- [ "name" .= v1alpha1ParamRefName- , "namespace" .= v1alpha1ParamRefNamespace- , "parameterNotFoundAction" .= v1alpha1ParamRefParameterNotFoundAction- , "selector" .= v1alpha1ParamRefSelector- ]----- | Construct a value of type 'V1alpha1ParamRef' (by applying it's required fields, if any)-mkV1alpha1ParamRef- :: V1alpha1ParamRef-mkV1alpha1ParamRef =- V1alpha1ParamRef- { v1alpha1ParamRefName = Nothing- , v1alpha1ParamRefNamespace = Nothing- , v1alpha1ParamRefParameterNotFoundAction = Nothing- , v1alpha1ParamRefSelector = Nothing- }---- ** V1alpha1PodCertificateRequest--- | V1alpha1PodCertificateRequest--- PodCertificateRequest encodes a pod requesting a certificate from a given signer. Kubelets use this API to implement podCertificate projected volumes-data V1alpha1PodCertificateRequest = V1alpha1PodCertificateRequest- { v1alpha1PodCertificateRequestApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1PodCertificateRequestKind :: !(Maybe Text) -- ^ "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- , v1alpha1PodCertificateRequestMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha1PodCertificateRequestSpec :: !(V1alpha1PodCertificateRequestSpec) -- ^ /Required/ "spec"- , v1alpha1PodCertificateRequestStatus :: !(Maybe V1alpha1PodCertificateRequestStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1PodCertificateRequest-instance A.FromJSON V1alpha1PodCertificateRequest where- parseJSON = A.withObject "V1alpha1PodCertificateRequest" $ \o ->- V1alpha1PodCertificateRequest- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1alpha1PodCertificateRequest-instance A.ToJSON V1alpha1PodCertificateRequest where- toJSON V1alpha1PodCertificateRequest {..} =- _omitNulls- [ "apiVersion" .= v1alpha1PodCertificateRequestApiVersion- , "kind" .= v1alpha1PodCertificateRequestKind- , "metadata" .= v1alpha1PodCertificateRequestMetadata- , "spec" .= v1alpha1PodCertificateRequestSpec- , "status" .= v1alpha1PodCertificateRequestStatus- ]----- | Construct a value of type 'V1alpha1PodCertificateRequest' (by applying it's required fields, if any)-mkV1alpha1PodCertificateRequest- :: V1alpha1PodCertificateRequestSpec -- ^ 'v1alpha1PodCertificateRequestSpec' - -> V1alpha1PodCertificateRequest-mkV1alpha1PodCertificateRequest v1alpha1PodCertificateRequestSpec =- V1alpha1PodCertificateRequest- { v1alpha1PodCertificateRequestApiVersion = Nothing- , v1alpha1PodCertificateRequestKind = Nothing- , v1alpha1PodCertificateRequestMetadata = Nothing- , v1alpha1PodCertificateRequestSpec- , v1alpha1PodCertificateRequestStatus = Nothing- }---- ** V1alpha1PodCertificateRequestList--- | V1alpha1PodCertificateRequestList--- PodCertificateRequestList is a collection of PodCertificateRequest objects-data V1alpha1PodCertificateRequestList = V1alpha1PodCertificateRequestList- { v1alpha1PodCertificateRequestListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1PodCertificateRequestListItems :: !([V1alpha1PodCertificateRequest]) -- ^ /Required/ "items" - items is a collection of PodCertificateRequest objects- , v1alpha1PodCertificateRequestListKind :: !(Maybe Text) -- ^ "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- , v1alpha1PodCertificateRequestListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1PodCertificateRequestList-instance A.FromJSON V1alpha1PodCertificateRequestList where- parseJSON = A.withObject "V1alpha1PodCertificateRequestList" $ \o ->- V1alpha1PodCertificateRequestList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha1PodCertificateRequestList-instance A.ToJSON V1alpha1PodCertificateRequestList where- toJSON V1alpha1PodCertificateRequestList {..} =- _omitNulls- [ "apiVersion" .= v1alpha1PodCertificateRequestListApiVersion- , "items" .= v1alpha1PodCertificateRequestListItems- , "kind" .= v1alpha1PodCertificateRequestListKind- , "metadata" .= v1alpha1PodCertificateRequestListMetadata- ]----- | Construct a value of type 'V1alpha1PodCertificateRequestList' (by applying it's required fields, if any)-mkV1alpha1PodCertificateRequestList- :: [V1alpha1PodCertificateRequest] -- ^ 'v1alpha1PodCertificateRequestListItems': items is a collection of PodCertificateRequest objects- -> V1alpha1PodCertificateRequestList-mkV1alpha1PodCertificateRequestList v1alpha1PodCertificateRequestListItems =- V1alpha1PodCertificateRequestList- { v1alpha1PodCertificateRequestListApiVersion = Nothing- , v1alpha1PodCertificateRequestListItems- , v1alpha1PodCertificateRequestListKind = Nothing- , v1alpha1PodCertificateRequestListMetadata = Nothing- }---- ** V1alpha1PodCertificateRequestSpec--- | V1alpha1PodCertificateRequestSpec--- PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation.-data V1alpha1PodCertificateRequestSpec = V1alpha1PodCertificateRequestSpec- { v1alpha1PodCertificateRequestSpecMaxExpirationSeconds :: !(Maybe Int) -- ^ "maxExpirationSeconds" - maxExpirationSeconds is the maximum lifetime permitted for the certificate. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.- , v1alpha1PodCertificateRequestSpecNodeName :: !(Text) -- ^ /Required/ "nodeName" - nodeName is the name of the node the pod is assigned to.- , v1alpha1PodCertificateRequestSpecNodeUid :: !(Text) -- ^ /Required/ "nodeUID" - nodeUID is the UID of the node the pod is assigned to.- , v1alpha1PodCertificateRequestSpecPkixPublicKey :: !(ByteArray) -- ^ /Required/ "pkixPublicKey" - pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of \"Denied\" and a reason of \"UnsupportedKeyType\". It may also suggest a key type that it does support in the message field.- , v1alpha1PodCertificateRequestSpecPodName :: !(Text) -- ^ /Required/ "podName" - podName is the name of the pod into which the certificate will be mounted.- , v1alpha1PodCertificateRequestSpecPodUid :: !(Text) -- ^ /Required/ "podUID" - podUID is the UID of the pod into which the certificate will be mounted.- , v1alpha1PodCertificateRequestSpecProofOfPossession :: !(ByteArray) -- ^ /Required/ "proofOfPossession" - proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign).- , v1alpha1PodCertificateRequestSpecServiceAccountName :: !(Text) -- ^ /Required/ "serviceAccountName" - serviceAccountName is the name of the service account the pod is running as.- , v1alpha1PodCertificateRequestSpecServiceAccountUid :: !(Text) -- ^ /Required/ "serviceAccountUID" - serviceAccountUID is the UID of the service account the pod is running as.- , v1alpha1PodCertificateRequestSpecSignerName :: !(Text) -- ^ /Required/ "signerName" - signerName indicates the requested signer. All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1PodCertificateRequestSpec-instance A.FromJSON V1alpha1PodCertificateRequestSpec where- parseJSON = A.withObject "V1alpha1PodCertificateRequestSpec" $ \o ->- V1alpha1PodCertificateRequestSpec- <$> (o .:? "maxExpirationSeconds")- <*> (o .: "nodeName")- <*> (o .: "nodeUID")- <*> (o .: "pkixPublicKey")- <*> (o .: "podName")- <*> (o .: "podUID")- <*> (o .: "proofOfPossession")- <*> (o .: "serviceAccountName")- <*> (o .: "serviceAccountUID")- <*> (o .: "signerName")---- | ToJSON V1alpha1PodCertificateRequestSpec-instance A.ToJSON V1alpha1PodCertificateRequestSpec where- toJSON V1alpha1PodCertificateRequestSpec {..} =- _omitNulls- [ "maxExpirationSeconds" .= v1alpha1PodCertificateRequestSpecMaxExpirationSeconds- , "nodeName" .= v1alpha1PodCertificateRequestSpecNodeName- , "nodeUID" .= v1alpha1PodCertificateRequestSpecNodeUid- , "pkixPublicKey" .= v1alpha1PodCertificateRequestSpecPkixPublicKey- , "podName" .= v1alpha1PodCertificateRequestSpecPodName- , "podUID" .= v1alpha1PodCertificateRequestSpecPodUid- , "proofOfPossession" .= v1alpha1PodCertificateRequestSpecProofOfPossession- , "serviceAccountName" .= v1alpha1PodCertificateRequestSpecServiceAccountName- , "serviceAccountUID" .= v1alpha1PodCertificateRequestSpecServiceAccountUid- , "signerName" .= v1alpha1PodCertificateRequestSpecSignerName- ]----- | Construct a value of type 'V1alpha1PodCertificateRequestSpec' (by applying it's required fields, if any)-mkV1alpha1PodCertificateRequestSpec- :: Text -- ^ 'v1alpha1PodCertificateRequestSpecNodeName': nodeName is the name of the node the pod is assigned to.- -> Text -- ^ 'v1alpha1PodCertificateRequestSpecNodeUid': nodeUID is the UID of the node the pod is assigned to.- -> ByteArray -- ^ 'v1alpha1PodCertificateRequestSpecPkixPublicKey': pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of \"Denied\" and a reason of \"UnsupportedKeyType\". It may also suggest a key type that it does support in the message field.- -> Text -- ^ 'v1alpha1PodCertificateRequestSpecPodName': podName is the name of the pod into which the certificate will be mounted.- -> Text -- ^ 'v1alpha1PodCertificateRequestSpecPodUid': podUID is the UID of the pod into which the certificate will be mounted.- -> ByteArray -- ^ 'v1alpha1PodCertificateRequestSpecProofOfPossession': proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign).- -> Text -- ^ 'v1alpha1PodCertificateRequestSpecServiceAccountName': serviceAccountName is the name of the service account the pod is running as.- -> Text -- ^ 'v1alpha1PodCertificateRequestSpecServiceAccountUid': serviceAccountUID is the UID of the service account the pod is running as.- -> Text -- ^ 'v1alpha1PodCertificateRequestSpecSignerName': signerName indicates the requested signer. All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented.- -> V1alpha1PodCertificateRequestSpec-mkV1alpha1PodCertificateRequestSpec v1alpha1PodCertificateRequestSpecNodeName v1alpha1PodCertificateRequestSpecNodeUid v1alpha1PodCertificateRequestSpecPkixPublicKey v1alpha1PodCertificateRequestSpecPodName v1alpha1PodCertificateRequestSpecPodUid v1alpha1PodCertificateRequestSpecProofOfPossession v1alpha1PodCertificateRequestSpecServiceAccountName v1alpha1PodCertificateRequestSpecServiceAccountUid v1alpha1PodCertificateRequestSpecSignerName =- V1alpha1PodCertificateRequestSpec- { v1alpha1PodCertificateRequestSpecMaxExpirationSeconds = Nothing- , v1alpha1PodCertificateRequestSpecNodeName- , v1alpha1PodCertificateRequestSpecNodeUid- , v1alpha1PodCertificateRequestSpecPkixPublicKey- , v1alpha1PodCertificateRequestSpecPodName- , v1alpha1PodCertificateRequestSpecPodUid- , v1alpha1PodCertificateRequestSpecProofOfPossession- , v1alpha1PodCertificateRequestSpecServiceAccountName- , v1alpha1PodCertificateRequestSpecServiceAccountUid- , v1alpha1PodCertificateRequestSpecSignerName- }---- ** V1alpha1PodCertificateRequestStatus--- | V1alpha1PodCertificateRequestStatus--- PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued.-data V1alpha1PodCertificateRequestStatus = V1alpha1PodCertificateRequestStatus- { v1alpha1PodCertificateRequestStatusBeginRefreshAt :: !(Maybe DateTime) -- ^ "beginRefreshAt" - beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. This field is only a hint. Kubelet may start refreshing before or after this time if necessary.- , v1alpha1PodCertificateRequestStatusCertificateChain :: !(Maybe Text) -- ^ "certificateChain" - certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. If the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty. Validation requirements: 1. certificateChain must consist of one or more PEM-formatted certificates. 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as described in section 4 of RFC5280. If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers.- , v1alpha1PodCertificateRequestStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - conditions applied to the request. The types \"Issued\", \"Denied\", and \"Failed\" have special handling. At most one of these conditions may be present, and they must have status \"True\". If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field.- , v1alpha1PodCertificateRequestStatusNotAfter :: !(Maybe DateTime) -- ^ "notAfter" - notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain.- , v1alpha1PodCertificateRequestStatusNotBefore :: !(Maybe DateTime) -- ^ "notBefore" - notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1PodCertificateRequestStatus-instance A.FromJSON V1alpha1PodCertificateRequestStatus where- parseJSON = A.withObject "V1alpha1PodCertificateRequestStatus" $ \o ->- V1alpha1PodCertificateRequestStatus- <$> (o .:? "beginRefreshAt")- <*> (o .:? "certificateChain")- <*> (o .:? "conditions")- <*> (o .:? "notAfter")- <*> (o .:? "notBefore")---- | ToJSON V1alpha1PodCertificateRequestStatus-instance A.ToJSON V1alpha1PodCertificateRequestStatus where- toJSON V1alpha1PodCertificateRequestStatus {..} =- _omitNulls- [ "beginRefreshAt" .= v1alpha1PodCertificateRequestStatusBeginRefreshAt- , "certificateChain" .= v1alpha1PodCertificateRequestStatusCertificateChain- , "conditions" .= v1alpha1PodCertificateRequestStatusConditions- , "notAfter" .= v1alpha1PodCertificateRequestStatusNotAfter- , "notBefore" .= v1alpha1PodCertificateRequestStatusNotBefore- ]----- | Construct a value of type 'V1alpha1PodCertificateRequestStatus' (by applying it's required fields, if any)-mkV1alpha1PodCertificateRequestStatus- :: V1alpha1PodCertificateRequestStatus-mkV1alpha1PodCertificateRequestStatus =- V1alpha1PodCertificateRequestStatus- { v1alpha1PodCertificateRequestStatusBeginRefreshAt = Nothing- , v1alpha1PodCertificateRequestStatusCertificateChain = Nothing- , v1alpha1PodCertificateRequestStatusConditions = Nothing- , v1alpha1PodCertificateRequestStatusNotAfter = Nothing- , v1alpha1PodCertificateRequestStatusNotBefore = Nothing- }---- ** V1alpha1ServerStorageVersion--- | V1alpha1ServerStorageVersion--- An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.-data V1alpha1ServerStorageVersion = V1alpha1ServerStorageVersion- { v1alpha1ServerStorageVersionApiServerId :: !(Maybe Text) -- ^ "apiServerID" - The ID of the reporting API server.- , v1alpha1ServerStorageVersionDecodableVersions :: !(Maybe [Text]) -- ^ "decodableVersions" - The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions.- , v1alpha1ServerStorageVersionEncodingVersion :: !(Maybe Text) -- ^ "encodingVersion" - The API server encodes the object to this version when persisting it in the backend (e.g., etcd).- , v1alpha1ServerStorageVersionServedVersions :: !(Maybe [Text]) -- ^ "servedVersions" - The API server can serve these versions. DecodableVersions must include all ServedVersions.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1ServerStorageVersion-instance A.FromJSON V1alpha1ServerStorageVersion where- parseJSON = A.withObject "V1alpha1ServerStorageVersion" $ \o ->- V1alpha1ServerStorageVersion- <$> (o .:? "apiServerID")- <*> (o .:? "decodableVersions")- <*> (o .:? "encodingVersion")- <*> (o .:? "servedVersions")---- | ToJSON V1alpha1ServerStorageVersion-instance A.ToJSON V1alpha1ServerStorageVersion where- toJSON V1alpha1ServerStorageVersion {..} =- _omitNulls- [ "apiServerID" .= v1alpha1ServerStorageVersionApiServerId- , "decodableVersions" .= v1alpha1ServerStorageVersionDecodableVersions- , "encodingVersion" .= v1alpha1ServerStorageVersionEncodingVersion- , "servedVersions" .= v1alpha1ServerStorageVersionServedVersions- ]----- | Construct a value of type 'V1alpha1ServerStorageVersion' (by applying it's required fields, if any)-mkV1alpha1ServerStorageVersion- :: V1alpha1ServerStorageVersion-mkV1alpha1ServerStorageVersion =- V1alpha1ServerStorageVersion- { v1alpha1ServerStorageVersionApiServerId = Nothing- , v1alpha1ServerStorageVersionDecodableVersions = Nothing- , v1alpha1ServerStorageVersionEncodingVersion = Nothing- , v1alpha1ServerStorageVersionServedVersions = Nothing- }---- ** V1alpha1StorageVersion--- | V1alpha1StorageVersion--- Storage version of a specific resource.-data V1alpha1StorageVersion = V1alpha1StorageVersion- { v1alpha1StorageVersionApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1StorageVersionKind :: !(Maybe Text) -- ^ "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- , v1alpha1StorageVersionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha1StorageVersionSpec :: !(A.Value) -- ^ /Required/ "spec" - Spec is an empty spec. It is here to comply with Kubernetes API style.- , v1alpha1StorageVersionStatus :: !(V1alpha1StorageVersionStatus) -- ^ /Required/ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1StorageVersion-instance A.FromJSON V1alpha1StorageVersion where- parseJSON = A.withObject "V1alpha1StorageVersion" $ \o ->- V1alpha1StorageVersion- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .: "status")---- | ToJSON V1alpha1StorageVersion-instance A.ToJSON V1alpha1StorageVersion where- toJSON V1alpha1StorageVersion {..} =- _omitNulls- [ "apiVersion" .= v1alpha1StorageVersionApiVersion- , "kind" .= v1alpha1StorageVersionKind- , "metadata" .= v1alpha1StorageVersionMetadata- , "spec" .= v1alpha1StorageVersionSpec- , "status" .= v1alpha1StorageVersionStatus- ]----- | Construct a value of type 'V1alpha1StorageVersion' (by applying it's required fields, if any)-mkV1alpha1StorageVersion- :: A.Value -- ^ 'v1alpha1StorageVersionSpec': Spec is an empty spec. It is here to comply with Kubernetes API style.- -> V1alpha1StorageVersionStatus -- ^ 'v1alpha1StorageVersionStatus' - -> V1alpha1StorageVersion-mkV1alpha1StorageVersion v1alpha1StorageVersionSpec v1alpha1StorageVersionStatus =- V1alpha1StorageVersion- { v1alpha1StorageVersionApiVersion = Nothing- , v1alpha1StorageVersionKind = Nothing- , v1alpha1StorageVersionMetadata = Nothing- , v1alpha1StorageVersionSpec- , v1alpha1StorageVersionStatus- }---- ** V1alpha1StorageVersionCondition--- | V1alpha1StorageVersionCondition--- Describes the state of the storageVersion at a certain point.-data V1alpha1StorageVersionCondition = V1alpha1StorageVersionCondition- { v1alpha1StorageVersionConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.- , v1alpha1StorageVersionConditionMessage :: !(Text) -- ^ /Required/ "message" - A human readable message indicating details about the transition.- , v1alpha1StorageVersionConditionObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - If set, this represents the .metadata.generation that the condition was set based upon.- , v1alpha1StorageVersionConditionReason :: !(Text) -- ^ /Required/ "reason" - The reason for the condition's last transition.- , v1alpha1StorageVersionConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.- , v1alpha1StorageVersionConditionType :: !(Text) -- ^ /Required/ "type" - Type of the condition.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1StorageVersionCondition-instance A.FromJSON V1alpha1StorageVersionCondition where- parseJSON = A.withObject "V1alpha1StorageVersionCondition" $ \o ->- V1alpha1StorageVersionCondition- <$> (o .:? "lastTransitionTime")- <*> (o .: "message")- <*> (o .:? "observedGeneration")- <*> (o .: "reason")- <*> (o .: "status")- <*> (o .: "type")---- | ToJSON V1alpha1StorageVersionCondition-instance A.ToJSON V1alpha1StorageVersionCondition where- toJSON V1alpha1StorageVersionCondition {..} =- _omitNulls- [ "lastTransitionTime" .= v1alpha1StorageVersionConditionLastTransitionTime- , "message" .= v1alpha1StorageVersionConditionMessage- , "observedGeneration" .= v1alpha1StorageVersionConditionObservedGeneration- , "reason" .= v1alpha1StorageVersionConditionReason- , "status" .= v1alpha1StorageVersionConditionStatus- , "type" .= v1alpha1StorageVersionConditionType- ]----- | Construct a value of type 'V1alpha1StorageVersionCondition' (by applying it's required fields, if any)-mkV1alpha1StorageVersionCondition- :: Text -- ^ 'v1alpha1StorageVersionConditionMessage': A human readable message indicating details about the transition.- -> Text -- ^ 'v1alpha1StorageVersionConditionReason': The reason for the condition's last transition.- -> Text -- ^ 'v1alpha1StorageVersionConditionStatus': Status of the condition, one of True, False, Unknown.- -> Text -- ^ 'v1alpha1StorageVersionConditionType': Type of the condition.- -> V1alpha1StorageVersionCondition-mkV1alpha1StorageVersionCondition v1alpha1StorageVersionConditionMessage v1alpha1StorageVersionConditionReason v1alpha1StorageVersionConditionStatus v1alpha1StorageVersionConditionType =- V1alpha1StorageVersionCondition- { v1alpha1StorageVersionConditionLastTransitionTime = Nothing- , v1alpha1StorageVersionConditionMessage- , v1alpha1StorageVersionConditionObservedGeneration = Nothing- , v1alpha1StorageVersionConditionReason- , v1alpha1StorageVersionConditionStatus- , v1alpha1StorageVersionConditionType- }---- ** V1alpha1StorageVersionList--- | V1alpha1StorageVersionList--- A list of StorageVersions.-data V1alpha1StorageVersionList = V1alpha1StorageVersionList- { v1alpha1StorageVersionListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1StorageVersionListItems :: !([V1alpha1StorageVersion]) -- ^ /Required/ "items" - Items holds a list of StorageVersion- , v1alpha1StorageVersionListKind :: !(Maybe Text) -- ^ "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- , v1alpha1StorageVersionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1StorageVersionList-instance A.FromJSON V1alpha1StorageVersionList where- parseJSON = A.withObject "V1alpha1StorageVersionList" $ \o ->- V1alpha1StorageVersionList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha1StorageVersionList-instance A.ToJSON V1alpha1StorageVersionList where- toJSON V1alpha1StorageVersionList {..} =- _omitNulls- [ "apiVersion" .= v1alpha1StorageVersionListApiVersion- , "items" .= v1alpha1StorageVersionListItems- , "kind" .= v1alpha1StorageVersionListKind- , "metadata" .= v1alpha1StorageVersionListMetadata- ]----- | Construct a value of type 'V1alpha1StorageVersionList' (by applying it's required fields, if any)-mkV1alpha1StorageVersionList- :: [V1alpha1StorageVersion] -- ^ 'v1alpha1StorageVersionListItems': Items holds a list of StorageVersion- -> V1alpha1StorageVersionList-mkV1alpha1StorageVersionList v1alpha1StorageVersionListItems =- V1alpha1StorageVersionList- { v1alpha1StorageVersionListApiVersion = Nothing- , v1alpha1StorageVersionListItems- , v1alpha1StorageVersionListKind = Nothing- , v1alpha1StorageVersionListMetadata = Nothing- }---- ** V1alpha1StorageVersionMigration--- | V1alpha1StorageVersionMigration--- StorageVersionMigration represents a migration of stored data to the latest storage version.-data V1alpha1StorageVersionMigration = V1alpha1StorageVersionMigration- { v1alpha1StorageVersionMigrationApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1StorageVersionMigrationKind :: !(Maybe Text) -- ^ "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- , v1alpha1StorageVersionMigrationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha1StorageVersionMigrationSpec :: !(Maybe V1alpha1StorageVersionMigrationSpec) -- ^ "spec"- , v1alpha1StorageVersionMigrationStatus :: !(Maybe V1alpha1StorageVersionMigrationStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1StorageVersionMigration-instance A.FromJSON V1alpha1StorageVersionMigration where- parseJSON = A.withObject "V1alpha1StorageVersionMigration" $ \o ->- V1alpha1StorageVersionMigration- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1alpha1StorageVersionMigration-instance A.ToJSON V1alpha1StorageVersionMigration where- toJSON V1alpha1StorageVersionMigration {..} =- _omitNulls- [ "apiVersion" .= v1alpha1StorageVersionMigrationApiVersion- , "kind" .= v1alpha1StorageVersionMigrationKind- , "metadata" .= v1alpha1StorageVersionMigrationMetadata- , "spec" .= v1alpha1StorageVersionMigrationSpec- , "status" .= v1alpha1StorageVersionMigrationStatus- ]----- | Construct a value of type 'V1alpha1StorageVersionMigration' (by applying it's required fields, if any)-mkV1alpha1StorageVersionMigration- :: V1alpha1StorageVersionMigration-mkV1alpha1StorageVersionMigration =- V1alpha1StorageVersionMigration- { v1alpha1StorageVersionMigrationApiVersion = Nothing- , v1alpha1StorageVersionMigrationKind = Nothing- , v1alpha1StorageVersionMigrationMetadata = Nothing- , v1alpha1StorageVersionMigrationSpec = Nothing- , v1alpha1StorageVersionMigrationStatus = Nothing- }---- ** V1alpha1StorageVersionMigrationList--- | V1alpha1StorageVersionMigrationList--- StorageVersionMigrationList is a collection of storage version migrations.-data V1alpha1StorageVersionMigrationList = V1alpha1StorageVersionMigrationList- { v1alpha1StorageVersionMigrationListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1StorageVersionMigrationListItems :: !([V1alpha1StorageVersionMigration]) -- ^ /Required/ "items" - Items is the list of StorageVersionMigration- , v1alpha1StorageVersionMigrationListKind :: !(Maybe Text) -- ^ "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- , v1alpha1StorageVersionMigrationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1StorageVersionMigrationList-instance A.FromJSON V1alpha1StorageVersionMigrationList where- parseJSON = A.withObject "V1alpha1StorageVersionMigrationList" $ \o ->- V1alpha1StorageVersionMigrationList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha1StorageVersionMigrationList-instance A.ToJSON V1alpha1StorageVersionMigrationList where- toJSON V1alpha1StorageVersionMigrationList {..} =- _omitNulls- [ "apiVersion" .= v1alpha1StorageVersionMigrationListApiVersion- , "items" .= v1alpha1StorageVersionMigrationListItems- , "kind" .= v1alpha1StorageVersionMigrationListKind- , "metadata" .= v1alpha1StorageVersionMigrationListMetadata- ]----- | Construct a value of type 'V1alpha1StorageVersionMigrationList' (by applying it's required fields, if any)-mkV1alpha1StorageVersionMigrationList- :: [V1alpha1StorageVersionMigration] -- ^ 'v1alpha1StorageVersionMigrationListItems': Items is the list of StorageVersionMigration- -> V1alpha1StorageVersionMigrationList-mkV1alpha1StorageVersionMigrationList v1alpha1StorageVersionMigrationListItems =- V1alpha1StorageVersionMigrationList- { v1alpha1StorageVersionMigrationListApiVersion = Nothing- , v1alpha1StorageVersionMigrationListItems- , v1alpha1StorageVersionMigrationListKind = Nothing- , v1alpha1StorageVersionMigrationListMetadata = Nothing- }---- ** V1alpha1StorageVersionMigrationSpec--- | V1alpha1StorageVersionMigrationSpec--- Spec of the storage version migration.-data V1alpha1StorageVersionMigrationSpec = V1alpha1StorageVersionMigrationSpec- { v1alpha1StorageVersionMigrationSpecContinueToken :: !(Maybe Text) -- ^ "continueToken" - The token used in the list options to get the next chunk of objects to migrate. When the .status.conditions indicates the migration is \"Running\", users can use this token to check the progress of the migration.- , v1alpha1StorageVersionMigrationSpecResource :: !(V1alpha1GroupVersionResource) -- ^ /Required/ "resource"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1StorageVersionMigrationSpec-instance A.FromJSON V1alpha1StorageVersionMigrationSpec where- parseJSON = A.withObject "V1alpha1StorageVersionMigrationSpec" $ \o ->- V1alpha1StorageVersionMigrationSpec- <$> (o .:? "continueToken")- <*> (o .: "resource")---- | ToJSON V1alpha1StorageVersionMigrationSpec-instance A.ToJSON V1alpha1StorageVersionMigrationSpec where- toJSON V1alpha1StorageVersionMigrationSpec {..} =- _omitNulls- [ "continueToken" .= v1alpha1StorageVersionMigrationSpecContinueToken- , "resource" .= v1alpha1StorageVersionMigrationSpecResource- ]----- | Construct a value of type 'V1alpha1StorageVersionMigrationSpec' (by applying it's required fields, if any)-mkV1alpha1StorageVersionMigrationSpec- :: V1alpha1GroupVersionResource -- ^ 'v1alpha1StorageVersionMigrationSpecResource' - -> V1alpha1StorageVersionMigrationSpec-mkV1alpha1StorageVersionMigrationSpec v1alpha1StorageVersionMigrationSpecResource =- V1alpha1StorageVersionMigrationSpec- { v1alpha1StorageVersionMigrationSpecContinueToken = Nothing- , v1alpha1StorageVersionMigrationSpecResource- }---- ** V1alpha1StorageVersionMigrationStatus--- | V1alpha1StorageVersionMigrationStatus--- Status of the storage version migration.-data V1alpha1StorageVersionMigrationStatus = V1alpha1StorageVersionMigrationStatus- { v1alpha1StorageVersionMigrationStatusConditions :: !(Maybe [V1alpha1MigrationCondition]) -- ^ "conditions" - The latest available observations of the migration's current state.- , v1alpha1StorageVersionMigrationStatusResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - ResourceVersion to compare with the GC cache for performing the migration. This is the current resource version of given group, version and resource when kube-controller-manager first observes this StorageVersionMigration resource.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1StorageVersionMigrationStatus-instance A.FromJSON V1alpha1StorageVersionMigrationStatus where- parseJSON = A.withObject "V1alpha1StorageVersionMigrationStatus" $ \o ->- V1alpha1StorageVersionMigrationStatus- <$> (o .:? "conditions")- <*> (o .:? "resourceVersion")---- | ToJSON V1alpha1StorageVersionMigrationStatus-instance A.ToJSON V1alpha1StorageVersionMigrationStatus where- toJSON V1alpha1StorageVersionMigrationStatus {..} =- _omitNulls- [ "conditions" .= v1alpha1StorageVersionMigrationStatusConditions- , "resourceVersion" .= v1alpha1StorageVersionMigrationStatusResourceVersion- ]----- | Construct a value of type 'V1alpha1StorageVersionMigrationStatus' (by applying it's required fields, if any)-mkV1alpha1StorageVersionMigrationStatus- :: V1alpha1StorageVersionMigrationStatus-mkV1alpha1StorageVersionMigrationStatus =- V1alpha1StorageVersionMigrationStatus- { v1alpha1StorageVersionMigrationStatusConditions = Nothing- , v1alpha1StorageVersionMigrationStatusResourceVersion = Nothing- }---- ** V1alpha1StorageVersionStatus--- | V1alpha1StorageVersionStatus--- API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.-data V1alpha1StorageVersionStatus = V1alpha1StorageVersionStatus- { v1alpha1StorageVersionStatusCommonEncodingVersion :: !(Maybe Text) -- ^ "commonEncodingVersion" - If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality.- , v1alpha1StorageVersionStatusConditions :: !(Maybe [V1alpha1StorageVersionCondition]) -- ^ "conditions" - The latest available observations of the storageVersion's state.- , v1alpha1StorageVersionStatusStorageVersions :: !(Maybe [V1alpha1ServerStorageVersion]) -- ^ "storageVersions" - The reported versions per API server instance.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1StorageVersionStatus-instance A.FromJSON V1alpha1StorageVersionStatus where- parseJSON = A.withObject "V1alpha1StorageVersionStatus" $ \o ->- V1alpha1StorageVersionStatus- <$> (o .:? "commonEncodingVersion")- <*> (o .:? "conditions")- <*> (o .:? "storageVersions")---- | ToJSON V1alpha1StorageVersionStatus-instance A.ToJSON V1alpha1StorageVersionStatus where- toJSON V1alpha1StorageVersionStatus {..} =- _omitNulls- [ "commonEncodingVersion" .= v1alpha1StorageVersionStatusCommonEncodingVersion- , "conditions" .= v1alpha1StorageVersionStatusConditions- , "storageVersions" .= v1alpha1StorageVersionStatusStorageVersions- ]----- | Construct a value of type 'V1alpha1StorageVersionStatus' (by applying it's required fields, if any)-mkV1alpha1StorageVersionStatus- :: V1alpha1StorageVersionStatus-mkV1alpha1StorageVersionStatus =- V1alpha1StorageVersionStatus- { v1alpha1StorageVersionStatusCommonEncodingVersion = Nothing- , v1alpha1StorageVersionStatusConditions = Nothing- , v1alpha1StorageVersionStatusStorageVersions = Nothing- }---- ** V1alpha1Variable--- | V1alpha1Variable--- Variable is the definition of a variable that is used for composition.-data V1alpha1Variable = V1alpha1Variable- { v1alpha1VariableExpression :: !(Text) -- ^ /Required/ "expression" - Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.- , v1alpha1VariableName :: !(Text) -- ^ /Required/ "name" - Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1Variable-instance A.FromJSON V1alpha1Variable where- parseJSON = A.withObject "V1alpha1Variable" $ \o ->- V1alpha1Variable- <$> (o .: "expression")- <*> (o .: "name")---- | ToJSON V1alpha1Variable-instance A.ToJSON V1alpha1Variable where- toJSON V1alpha1Variable {..} =- _omitNulls- [ "expression" .= v1alpha1VariableExpression- , "name" .= v1alpha1VariableName- ]----- | Construct a value of type 'V1alpha1Variable' (by applying it's required fields, if any)-mkV1alpha1Variable- :: Text -- ^ 'v1alpha1VariableExpression': Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.- -> Text -- ^ 'v1alpha1VariableName': Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`- -> V1alpha1Variable-mkV1alpha1Variable v1alpha1VariableExpression v1alpha1VariableName =- V1alpha1Variable- { v1alpha1VariableExpression- , v1alpha1VariableName- }---- ** V1alpha1VolumeAttributesClass--- | V1alpha1VolumeAttributesClass--- VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.-data V1alpha1VolumeAttributesClass = V1alpha1VolumeAttributesClass- { v1alpha1VolumeAttributesClassApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1VolumeAttributesClassDriverName :: !(Text) -- ^ /Required/ "driverName" - Name of the CSI driver This field is immutable.- , v1alpha1VolumeAttributesClassKind :: !(Maybe Text) -- ^ "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- , v1alpha1VolumeAttributesClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha1VolumeAttributesClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass. This field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the modifyVolumeStatus field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1VolumeAttributesClass-instance A.FromJSON V1alpha1VolumeAttributesClass where- parseJSON = A.withObject "V1alpha1VolumeAttributesClass" $ \o ->- V1alpha1VolumeAttributesClass- <$> (o .:? "apiVersion")- <*> (o .: "driverName")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "parameters")---- | ToJSON V1alpha1VolumeAttributesClass-instance A.ToJSON V1alpha1VolumeAttributesClass where- toJSON V1alpha1VolumeAttributesClass {..} =- _omitNulls- [ "apiVersion" .= v1alpha1VolumeAttributesClassApiVersion- , "driverName" .= v1alpha1VolumeAttributesClassDriverName- , "kind" .= v1alpha1VolumeAttributesClassKind- , "metadata" .= v1alpha1VolumeAttributesClassMetadata- , "parameters" .= v1alpha1VolumeAttributesClassParameters- ]----- | Construct a value of type 'V1alpha1VolumeAttributesClass' (by applying it's required fields, if any)-mkV1alpha1VolumeAttributesClass- :: Text -- ^ 'v1alpha1VolumeAttributesClassDriverName': Name of the CSI driver This field is immutable.- -> V1alpha1VolumeAttributesClass-mkV1alpha1VolumeAttributesClass v1alpha1VolumeAttributesClassDriverName =- V1alpha1VolumeAttributesClass- { v1alpha1VolumeAttributesClassApiVersion = Nothing- , v1alpha1VolumeAttributesClassDriverName- , v1alpha1VolumeAttributesClassKind = Nothing- , v1alpha1VolumeAttributesClassMetadata = Nothing- , v1alpha1VolumeAttributesClassParameters = Nothing- }---- ** V1alpha1VolumeAttributesClassList--- | V1alpha1VolumeAttributesClassList--- VolumeAttributesClassList is a collection of VolumeAttributesClass objects.-data V1alpha1VolumeAttributesClassList = V1alpha1VolumeAttributesClassList- { v1alpha1VolumeAttributesClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha1VolumeAttributesClassListItems :: !([V1alpha1VolumeAttributesClass]) -- ^ /Required/ "items" - items is the list of VolumeAttributesClass objects.- , v1alpha1VolumeAttributesClassListKind :: !(Maybe Text) -- ^ "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- , v1alpha1VolumeAttributesClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha1VolumeAttributesClassList-instance A.FromJSON V1alpha1VolumeAttributesClassList where- parseJSON = A.withObject "V1alpha1VolumeAttributesClassList" $ \o ->- V1alpha1VolumeAttributesClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha1VolumeAttributesClassList-instance A.ToJSON V1alpha1VolumeAttributesClassList where- toJSON V1alpha1VolumeAttributesClassList {..} =- _omitNulls- [ "apiVersion" .= v1alpha1VolumeAttributesClassListApiVersion- , "items" .= v1alpha1VolumeAttributesClassListItems- , "kind" .= v1alpha1VolumeAttributesClassListKind- , "metadata" .= v1alpha1VolumeAttributesClassListMetadata- ]----- | Construct a value of type 'V1alpha1VolumeAttributesClassList' (by applying it's required fields, if any)-mkV1alpha1VolumeAttributesClassList- :: [V1alpha1VolumeAttributesClass] -- ^ 'v1alpha1VolumeAttributesClassListItems': items is the list of VolumeAttributesClass objects.- -> V1alpha1VolumeAttributesClassList-mkV1alpha1VolumeAttributesClassList v1alpha1VolumeAttributesClassListItems =- V1alpha1VolumeAttributesClassList- { v1alpha1VolumeAttributesClassListApiVersion = Nothing- , v1alpha1VolumeAttributesClassListItems- , v1alpha1VolumeAttributesClassListKind = Nothing- , v1alpha1VolumeAttributesClassListMetadata = Nothing- }---- ** V1alpha2LeaseCandidate--- | V1alpha2LeaseCandidate--- 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.-data V1alpha2LeaseCandidate = V1alpha2LeaseCandidate- { v1alpha2LeaseCandidateApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha2LeaseCandidateKind :: !(Maybe Text) -- ^ "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- , v1alpha2LeaseCandidateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha2LeaseCandidateSpec :: !(Maybe V1alpha2LeaseCandidateSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha2LeaseCandidate-instance A.FromJSON V1alpha2LeaseCandidate where- parseJSON = A.withObject "V1alpha2LeaseCandidate" $ \o ->- V1alpha2LeaseCandidate- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1alpha2LeaseCandidate-instance A.ToJSON V1alpha2LeaseCandidate where- toJSON V1alpha2LeaseCandidate {..} =- _omitNulls- [ "apiVersion" .= v1alpha2LeaseCandidateApiVersion- , "kind" .= v1alpha2LeaseCandidateKind- , "metadata" .= v1alpha2LeaseCandidateMetadata- , "spec" .= v1alpha2LeaseCandidateSpec- ]----- | Construct a value of type 'V1alpha2LeaseCandidate' (by applying it's required fields, if any)-mkV1alpha2LeaseCandidate- :: V1alpha2LeaseCandidate-mkV1alpha2LeaseCandidate =- V1alpha2LeaseCandidate- { v1alpha2LeaseCandidateApiVersion = Nothing- , v1alpha2LeaseCandidateKind = Nothing- , v1alpha2LeaseCandidateMetadata = Nothing- , v1alpha2LeaseCandidateSpec = Nothing- }---- ** V1alpha2LeaseCandidateList--- | V1alpha2LeaseCandidateList--- LeaseCandidateList is a list of Lease objects.-data V1alpha2LeaseCandidateList = V1alpha2LeaseCandidateList- { v1alpha2LeaseCandidateListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha2LeaseCandidateListItems :: !([V1alpha2LeaseCandidate]) -- ^ /Required/ "items" - items is a list of schema objects.- , v1alpha2LeaseCandidateListKind :: !(Maybe Text) -- ^ "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- , v1alpha2LeaseCandidateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha2LeaseCandidateList-instance A.FromJSON V1alpha2LeaseCandidateList where- parseJSON = A.withObject "V1alpha2LeaseCandidateList" $ \o ->- V1alpha2LeaseCandidateList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha2LeaseCandidateList-instance A.ToJSON V1alpha2LeaseCandidateList where- toJSON V1alpha2LeaseCandidateList {..} =- _omitNulls- [ "apiVersion" .= v1alpha2LeaseCandidateListApiVersion- , "items" .= v1alpha2LeaseCandidateListItems- , "kind" .= v1alpha2LeaseCandidateListKind- , "metadata" .= v1alpha2LeaseCandidateListMetadata- ]----- | Construct a value of type 'V1alpha2LeaseCandidateList' (by applying it's required fields, if any)-mkV1alpha2LeaseCandidateList- :: [V1alpha2LeaseCandidate] -- ^ 'v1alpha2LeaseCandidateListItems': items is a list of schema objects.- -> V1alpha2LeaseCandidateList-mkV1alpha2LeaseCandidateList v1alpha2LeaseCandidateListItems =- V1alpha2LeaseCandidateList- { v1alpha2LeaseCandidateListApiVersion = Nothing- , v1alpha2LeaseCandidateListItems- , v1alpha2LeaseCandidateListKind = Nothing- , v1alpha2LeaseCandidateListMetadata = Nothing- }---- ** V1alpha2LeaseCandidateSpec--- | V1alpha2LeaseCandidateSpec--- LeaseCandidateSpec is a specification of a Lease.-data V1alpha2LeaseCandidateSpec = V1alpha2LeaseCandidateSpec- { v1alpha2LeaseCandidateSpecBinaryVersion :: !(Text) -- ^ /Required/ "binaryVersion" - BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.- , v1alpha2LeaseCandidateSpecEmulationVersion :: !(Maybe Text) -- ^ "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\"- , v1alpha2LeaseCandidateSpecLeaseName :: !(Text) -- ^ /Required/ "leaseName" - LeaseName is the name of the lease for which this candidate is contending. This field is immutable.- , v1alpha2LeaseCandidateSpecPingTime :: !(Maybe DateTime) -- ^ "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.- , v1alpha2LeaseCandidateSpecRenewTime :: !(Maybe DateTime) -- ^ "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.- , v1alpha2LeaseCandidateSpecStrategy :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha2LeaseCandidateSpec-instance A.FromJSON V1alpha2LeaseCandidateSpec where- parseJSON = A.withObject "V1alpha2LeaseCandidateSpec" $ \o ->- V1alpha2LeaseCandidateSpec- <$> (o .: "binaryVersion")- <*> (o .:? "emulationVersion")- <*> (o .: "leaseName")- <*> (o .:? "pingTime")- <*> (o .:? "renewTime")- <*> (o .: "strategy")---- | ToJSON V1alpha2LeaseCandidateSpec-instance A.ToJSON V1alpha2LeaseCandidateSpec where- toJSON V1alpha2LeaseCandidateSpec {..} =- _omitNulls- [ "binaryVersion" .= v1alpha2LeaseCandidateSpecBinaryVersion- , "emulationVersion" .= v1alpha2LeaseCandidateSpecEmulationVersion- , "leaseName" .= v1alpha2LeaseCandidateSpecLeaseName- , "pingTime" .= v1alpha2LeaseCandidateSpecPingTime- , "renewTime" .= v1alpha2LeaseCandidateSpecRenewTime- , "strategy" .= v1alpha2LeaseCandidateSpecStrategy- ]----- | Construct a value of type 'V1alpha2LeaseCandidateSpec' (by applying it's required fields, if any)-mkV1alpha2LeaseCandidateSpec- :: Text -- ^ 'v1alpha2LeaseCandidateSpecBinaryVersion': BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.- -> Text -- ^ 'v1alpha2LeaseCandidateSpecLeaseName': LeaseName is the name of the lease for which this candidate is contending. This field is immutable.- -> Text -- ^ 'v1alpha2LeaseCandidateSpecStrategy': 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.- -> V1alpha2LeaseCandidateSpec-mkV1alpha2LeaseCandidateSpec v1alpha2LeaseCandidateSpecBinaryVersion v1alpha2LeaseCandidateSpecLeaseName v1alpha2LeaseCandidateSpecStrategy =- V1alpha2LeaseCandidateSpec- { v1alpha2LeaseCandidateSpecBinaryVersion- , v1alpha2LeaseCandidateSpecEmulationVersion = Nothing- , v1alpha2LeaseCandidateSpecLeaseName- , v1alpha2LeaseCandidateSpecPingTime = Nothing- , v1alpha2LeaseCandidateSpecRenewTime = Nothing- , v1alpha2LeaseCandidateSpecStrategy- }---- ** V1alpha3CELDeviceSelector--- | V1alpha3CELDeviceSelector--- CELDeviceSelector contains a CEL expression for selecting a device.-data V1alpha3CELDeviceSelector = V1alpha3CELDeviceSelector- { v1alpha3CELDeviceSelectorExpression :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha3CELDeviceSelector-instance A.FromJSON V1alpha3CELDeviceSelector where- parseJSON = A.withObject "V1alpha3CELDeviceSelector" $ \o ->- V1alpha3CELDeviceSelector- <$> (o .: "expression")---- | ToJSON V1alpha3CELDeviceSelector-instance A.ToJSON V1alpha3CELDeviceSelector where- toJSON V1alpha3CELDeviceSelector {..} =- _omitNulls- [ "expression" .= v1alpha3CELDeviceSelectorExpression- ]----- | Construct a value of type 'V1alpha3CELDeviceSelector' (by applying it's required fields, if any)-mkV1alpha3CELDeviceSelector- :: Text -- ^ 'v1alpha3CELDeviceSelectorExpression': 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.- -> V1alpha3CELDeviceSelector-mkV1alpha3CELDeviceSelector v1alpha3CELDeviceSelectorExpression =- V1alpha3CELDeviceSelector- { v1alpha3CELDeviceSelectorExpression- }---- ** V1alpha3DeviceSelector--- | V1alpha3DeviceSelector--- DeviceSelector must have exactly one field set.-data V1alpha3DeviceSelector = V1alpha3DeviceSelector- { v1alpha3DeviceSelectorCel :: !(Maybe V1alpha3CELDeviceSelector) -- ^ "cel"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha3DeviceSelector-instance A.FromJSON V1alpha3DeviceSelector where- parseJSON = A.withObject "V1alpha3DeviceSelector" $ \o ->- V1alpha3DeviceSelector- <$> (o .:? "cel")---- | ToJSON V1alpha3DeviceSelector-instance A.ToJSON V1alpha3DeviceSelector where- toJSON V1alpha3DeviceSelector {..} =- _omitNulls- [ "cel" .= v1alpha3DeviceSelectorCel- ]----- | Construct a value of type 'V1alpha3DeviceSelector' (by applying it's required fields, if any)-mkV1alpha3DeviceSelector- :: V1alpha3DeviceSelector-mkV1alpha3DeviceSelector =- V1alpha3DeviceSelector- { v1alpha3DeviceSelectorCel = Nothing- }---- ** V1alpha3DeviceTaint--- | V1alpha3DeviceTaint--- The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.-data V1alpha3DeviceTaint = V1alpha3DeviceTaint- { v1alpha3DeviceTaintEffect :: !(Text) -- ^ /Required/ "effect" - The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.- , v1alpha3DeviceTaintKey :: !(Text) -- ^ /Required/ "key" - The taint key to be applied to a device. Must be a label name.- , v1alpha3DeviceTaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.- , v1alpha3DeviceTaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key. Must be a label value.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha3DeviceTaint-instance A.FromJSON V1alpha3DeviceTaint where- parseJSON = A.withObject "V1alpha3DeviceTaint" $ \o ->- V1alpha3DeviceTaint- <$> (o .: "effect")- <*> (o .: "key")- <*> (o .:? "timeAdded")- <*> (o .:? "value")---- | ToJSON V1alpha3DeviceTaint-instance A.ToJSON V1alpha3DeviceTaint where- toJSON V1alpha3DeviceTaint {..} =- _omitNulls- [ "effect" .= v1alpha3DeviceTaintEffect- , "key" .= v1alpha3DeviceTaintKey- , "timeAdded" .= v1alpha3DeviceTaintTimeAdded- , "value" .= v1alpha3DeviceTaintValue- ]----- | Construct a value of type 'V1alpha3DeviceTaint' (by applying it's required fields, if any)-mkV1alpha3DeviceTaint- :: Text -- ^ 'v1alpha3DeviceTaintEffect': The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.- -> Text -- ^ 'v1alpha3DeviceTaintKey': The taint key to be applied to a device. Must be a label name.- -> V1alpha3DeviceTaint-mkV1alpha3DeviceTaint v1alpha3DeviceTaintEffect v1alpha3DeviceTaintKey =- V1alpha3DeviceTaint- { v1alpha3DeviceTaintEffect- , v1alpha3DeviceTaintKey- , v1alpha3DeviceTaintTimeAdded = Nothing- , v1alpha3DeviceTaintValue = Nothing- }---- ** V1alpha3DeviceTaintRule--- | V1alpha3DeviceTaintRule--- DeviceTaintRule adds one taint to all devices which match the selector. This has the same effect as if the taint was specified directly in the ResourceSlice by the DRA driver.-data V1alpha3DeviceTaintRule = V1alpha3DeviceTaintRule- { v1alpha3DeviceTaintRuleApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha3DeviceTaintRuleKind :: !(Maybe Text) -- ^ "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- , v1alpha3DeviceTaintRuleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1alpha3DeviceTaintRuleSpec :: !(V1alpha3DeviceTaintRuleSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha3DeviceTaintRule-instance A.FromJSON V1alpha3DeviceTaintRule where- parseJSON = A.withObject "V1alpha3DeviceTaintRule" $ \o ->- V1alpha3DeviceTaintRule- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1alpha3DeviceTaintRule-instance A.ToJSON V1alpha3DeviceTaintRule where- toJSON V1alpha3DeviceTaintRule {..} =- _omitNulls- [ "apiVersion" .= v1alpha3DeviceTaintRuleApiVersion- , "kind" .= v1alpha3DeviceTaintRuleKind- , "metadata" .= v1alpha3DeviceTaintRuleMetadata- , "spec" .= v1alpha3DeviceTaintRuleSpec- ]----- | Construct a value of type 'V1alpha3DeviceTaintRule' (by applying it's required fields, if any)-mkV1alpha3DeviceTaintRule- :: V1alpha3DeviceTaintRuleSpec -- ^ 'v1alpha3DeviceTaintRuleSpec' - -> V1alpha3DeviceTaintRule-mkV1alpha3DeviceTaintRule v1alpha3DeviceTaintRuleSpec =- V1alpha3DeviceTaintRule- { v1alpha3DeviceTaintRuleApiVersion = Nothing- , v1alpha3DeviceTaintRuleKind = Nothing- , v1alpha3DeviceTaintRuleMetadata = Nothing- , v1alpha3DeviceTaintRuleSpec- }---- ** V1alpha3DeviceTaintRuleList--- | V1alpha3DeviceTaintRuleList--- DeviceTaintRuleList is a collection of DeviceTaintRules.-data V1alpha3DeviceTaintRuleList = V1alpha3DeviceTaintRuleList- { v1alpha3DeviceTaintRuleListApiVersion :: !(Maybe Text) -- ^ "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- , v1alpha3DeviceTaintRuleListItems :: !([V1alpha3DeviceTaintRule]) -- ^ /Required/ "items" - Items is the list of DeviceTaintRules.- , v1alpha3DeviceTaintRuleListKind :: !(Maybe Text) -- ^ "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- , v1alpha3DeviceTaintRuleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha3DeviceTaintRuleList-instance A.FromJSON V1alpha3DeviceTaintRuleList where- parseJSON = A.withObject "V1alpha3DeviceTaintRuleList" $ \o ->- V1alpha3DeviceTaintRuleList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1alpha3DeviceTaintRuleList-instance A.ToJSON V1alpha3DeviceTaintRuleList where- toJSON V1alpha3DeviceTaintRuleList {..} =- _omitNulls- [ "apiVersion" .= v1alpha3DeviceTaintRuleListApiVersion- , "items" .= v1alpha3DeviceTaintRuleListItems- , "kind" .= v1alpha3DeviceTaintRuleListKind- , "metadata" .= v1alpha3DeviceTaintRuleListMetadata- ]----- | Construct a value of type 'V1alpha3DeviceTaintRuleList' (by applying it's required fields, if any)-mkV1alpha3DeviceTaintRuleList- :: [V1alpha3DeviceTaintRule] -- ^ 'v1alpha3DeviceTaintRuleListItems': Items is the list of DeviceTaintRules.- -> V1alpha3DeviceTaintRuleList-mkV1alpha3DeviceTaintRuleList v1alpha3DeviceTaintRuleListItems =- V1alpha3DeviceTaintRuleList- { v1alpha3DeviceTaintRuleListApiVersion = Nothing- , v1alpha3DeviceTaintRuleListItems- , v1alpha3DeviceTaintRuleListKind = Nothing- , v1alpha3DeviceTaintRuleListMetadata = Nothing- }---- ** V1alpha3DeviceTaintRuleSpec--- | V1alpha3DeviceTaintRuleSpec--- DeviceTaintRuleSpec specifies the selector and one taint.-data V1alpha3DeviceTaintRuleSpec = V1alpha3DeviceTaintRuleSpec- { v1alpha3DeviceTaintRuleSpecDeviceSelector :: !(Maybe V1alpha3DeviceTaintSelector) -- ^ "deviceSelector"- , v1alpha3DeviceTaintRuleSpecTaint :: !(V1alpha3DeviceTaint) -- ^ /Required/ "taint"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha3DeviceTaintRuleSpec-instance A.FromJSON V1alpha3DeviceTaintRuleSpec where- parseJSON = A.withObject "V1alpha3DeviceTaintRuleSpec" $ \o ->- V1alpha3DeviceTaintRuleSpec- <$> (o .:? "deviceSelector")- <*> (o .: "taint")---- | ToJSON V1alpha3DeviceTaintRuleSpec-instance A.ToJSON V1alpha3DeviceTaintRuleSpec where- toJSON V1alpha3DeviceTaintRuleSpec {..} =- _omitNulls- [ "deviceSelector" .= v1alpha3DeviceTaintRuleSpecDeviceSelector- , "taint" .= v1alpha3DeviceTaintRuleSpecTaint- ]----- | Construct a value of type 'V1alpha3DeviceTaintRuleSpec' (by applying it's required fields, if any)-mkV1alpha3DeviceTaintRuleSpec- :: V1alpha3DeviceTaint -- ^ 'v1alpha3DeviceTaintRuleSpecTaint' - -> V1alpha3DeviceTaintRuleSpec-mkV1alpha3DeviceTaintRuleSpec v1alpha3DeviceTaintRuleSpecTaint =- V1alpha3DeviceTaintRuleSpec- { v1alpha3DeviceTaintRuleSpecDeviceSelector = Nothing- , v1alpha3DeviceTaintRuleSpecTaint- }---- ** V1alpha3DeviceTaintSelector--- | V1alpha3DeviceTaintSelector--- DeviceTaintSelector defines which device(s) a DeviceTaintRule applies to. The empty selector matches all devices. Without a selector, no devices are matched.-data V1alpha3DeviceTaintSelector = V1alpha3DeviceTaintSelector- { v1alpha3DeviceTaintSelectorDevice :: !(Maybe Text) -- ^ "device" - If device is set, only devices with that name are selected. This field corresponds to slice.spec.devices[].name. Setting also driver and pool may be required to avoid ambiguity, but is not required.- , v1alpha3DeviceTaintSelectorDeviceClassName :: !(Maybe Text) -- ^ "deviceClassName" - If DeviceClassName is set, the selectors defined there must be satisfied by a device to be selected. This field corresponds to class.metadata.name.- , v1alpha3DeviceTaintSelectorDriver :: !(Maybe Text) -- ^ "driver" - If driver is set, only devices from that driver are selected. This fields corresponds to slice.spec.driver.- , v1alpha3DeviceTaintSelectorPool :: !(Maybe Text) -- ^ "pool" - If pool is set, only devices in that pool are selected. Also setting the driver name may be useful to avoid ambiguity when different drivers use the same pool name, but this is not required because selecting pools from different drivers may also be useful, for example when drivers with node-local devices use the node name as their pool name.- , v1alpha3DeviceTaintSelectorSelectors :: !(Maybe [V1alpha3DeviceSelector]) -- ^ "selectors" - Selectors contains the same selection criteria as a ResourceClaim. Currently, CEL expressions are supported. All of these selectors must be satisfied.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1alpha3DeviceTaintSelector-instance A.FromJSON V1alpha3DeviceTaintSelector where- parseJSON = A.withObject "V1alpha3DeviceTaintSelector" $ \o ->- V1alpha3DeviceTaintSelector- <$> (o .:? "device")- <*> (o .:? "deviceClassName")- <*> (o .:? "driver")- <*> (o .:? "pool")- <*> (o .:? "selectors")---- | ToJSON V1alpha3DeviceTaintSelector-instance A.ToJSON V1alpha3DeviceTaintSelector where- toJSON V1alpha3DeviceTaintSelector {..} =- _omitNulls- [ "device" .= v1alpha3DeviceTaintSelectorDevice- , "deviceClassName" .= v1alpha3DeviceTaintSelectorDeviceClassName- , "driver" .= v1alpha3DeviceTaintSelectorDriver- , "pool" .= v1alpha3DeviceTaintSelectorPool- , "selectors" .= v1alpha3DeviceTaintSelectorSelectors- ]----- | Construct a value of type 'V1alpha3DeviceTaintSelector' (by applying it's required fields, if any)-mkV1alpha3DeviceTaintSelector- :: V1alpha3DeviceTaintSelector-mkV1alpha3DeviceTaintSelector =- V1alpha3DeviceTaintSelector- { v1alpha3DeviceTaintSelectorDevice = Nothing- , v1alpha3DeviceTaintSelectorDeviceClassName = Nothing- , v1alpha3DeviceTaintSelectorDriver = Nothing- , v1alpha3DeviceTaintSelectorPool = Nothing- , v1alpha3DeviceTaintSelectorSelectors = Nothing- }---- ** V1beta1AllocatedDeviceStatus--- | V1beta1AllocatedDeviceStatus--- AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices.-data V1beta1AllocatedDeviceStatus = V1beta1AllocatedDeviceStatus- { v1beta1AllocatedDeviceStatusConditions :: !(Maybe [V1Condition]) -- ^ "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. Must not contain more than 8 entries.- , v1beta1AllocatedDeviceStatusData :: !(Maybe A.Value) -- ^ "data" - Data contains arbitrary driver-specific data. The length of the raw data must be smaller or equal to 10 Ki.- , v1beta1AllocatedDeviceStatusDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- , v1beta1AllocatedDeviceStatusDriver :: !(Text) -- ^ /Required/ "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.- , v1beta1AllocatedDeviceStatusNetworkData :: !(Maybe V1beta1NetworkDeviceData) -- ^ "networkData"- , v1beta1AllocatedDeviceStatusPool :: !(Text) -- ^ /Required/ "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.- , v1beta1AllocatedDeviceStatusShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1AllocatedDeviceStatus-instance A.FromJSON V1beta1AllocatedDeviceStatus where- parseJSON = A.withObject "V1beta1AllocatedDeviceStatus" $ \o ->- V1beta1AllocatedDeviceStatus- <$> (o .:? "conditions")- <*> (o .:? "data")- <*> (o .: "device")- <*> (o .: "driver")- <*> (o .:? "networkData")- <*> (o .: "pool")- <*> (o .:? "shareID")---- | ToJSON V1beta1AllocatedDeviceStatus-instance A.ToJSON V1beta1AllocatedDeviceStatus where- toJSON V1beta1AllocatedDeviceStatus {..} =- _omitNulls- [ "conditions" .= v1beta1AllocatedDeviceStatusConditions- , "data" .= v1beta1AllocatedDeviceStatusData- , "device" .= v1beta1AllocatedDeviceStatusDevice- , "driver" .= v1beta1AllocatedDeviceStatusDriver- , "networkData" .= v1beta1AllocatedDeviceStatusNetworkData- , "pool" .= v1beta1AllocatedDeviceStatusPool- , "shareID" .= v1beta1AllocatedDeviceStatusShareId- ]----- | Construct a value of type 'V1beta1AllocatedDeviceStatus' (by applying it's required fields, if any)-mkV1beta1AllocatedDeviceStatus- :: Text -- ^ 'v1beta1AllocatedDeviceStatusDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- -> Text -- ^ 'v1beta1AllocatedDeviceStatusDriver': 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.- -> Text -- ^ 'v1beta1AllocatedDeviceStatusPool': 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.- -> V1beta1AllocatedDeviceStatus-mkV1beta1AllocatedDeviceStatus v1beta1AllocatedDeviceStatusDevice v1beta1AllocatedDeviceStatusDriver v1beta1AllocatedDeviceStatusPool =- V1beta1AllocatedDeviceStatus- { v1beta1AllocatedDeviceStatusConditions = Nothing- , v1beta1AllocatedDeviceStatusData = Nothing- , v1beta1AllocatedDeviceStatusDevice- , v1beta1AllocatedDeviceStatusDriver- , v1beta1AllocatedDeviceStatusNetworkData = Nothing- , v1beta1AllocatedDeviceStatusPool- , v1beta1AllocatedDeviceStatusShareId = Nothing- }---- ** V1beta1AllocationResult--- | V1beta1AllocationResult--- AllocationResult contains attributes of an allocated resource.-data V1beta1AllocationResult = V1beta1AllocationResult- { v1beta1AllocationResultAllocationTimestamp :: !(Maybe DateTime) -- ^ "allocationTimestamp" - AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate.- , v1beta1AllocationResultDevices :: !(Maybe V1beta1DeviceAllocationResult) -- ^ "devices"- , v1beta1AllocationResultNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1AllocationResult-instance A.FromJSON V1beta1AllocationResult where- parseJSON = A.withObject "V1beta1AllocationResult" $ \o ->- V1beta1AllocationResult- <$> (o .:? "allocationTimestamp")- <*> (o .:? "devices")- <*> (o .:? "nodeSelector")---- | ToJSON V1beta1AllocationResult-instance A.ToJSON V1beta1AllocationResult where- toJSON V1beta1AllocationResult {..} =- _omitNulls- [ "allocationTimestamp" .= v1beta1AllocationResultAllocationTimestamp- , "devices" .= v1beta1AllocationResultDevices- , "nodeSelector" .= v1beta1AllocationResultNodeSelector- ]----- | Construct a value of type 'V1beta1AllocationResult' (by applying it's required fields, if any)-mkV1beta1AllocationResult- :: V1beta1AllocationResult-mkV1beta1AllocationResult =- V1beta1AllocationResult- { v1beta1AllocationResultAllocationTimestamp = Nothing- , v1beta1AllocationResultDevices = Nothing- , v1beta1AllocationResultNodeSelector = Nothing- }---- ** V1beta1ApplyConfiguration--- | V1beta1ApplyConfiguration--- ApplyConfiguration defines the desired configuration values of an object.-data V1beta1ApplyConfiguration = V1beta1ApplyConfiguration- { v1beta1ApplyConfigurationExpression :: !(Maybe Text) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ApplyConfiguration-instance A.FromJSON V1beta1ApplyConfiguration where- parseJSON = A.withObject "V1beta1ApplyConfiguration" $ \o ->- V1beta1ApplyConfiguration- <$> (o .:? "expression")---- | ToJSON V1beta1ApplyConfiguration-instance A.ToJSON V1beta1ApplyConfiguration where- toJSON V1beta1ApplyConfiguration {..} =- _omitNulls- [ "expression" .= v1beta1ApplyConfigurationExpression- ]----- | Construct a value of type 'V1beta1ApplyConfiguration' (by applying it's required fields, if any)-mkV1beta1ApplyConfiguration- :: V1beta1ApplyConfiguration-mkV1beta1ApplyConfiguration =- V1beta1ApplyConfiguration- { v1beta1ApplyConfigurationExpression = Nothing- }---- ** V1beta1BasicDevice--- | V1beta1BasicDevice--- BasicDevice defines one device instance.-data V1beta1BasicDevice = V1beta1BasicDevice- { v1beta1BasicDeviceAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the device. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.- , v1beta1BasicDeviceAllowMultipleAllocations :: !(Maybe Bool) -- ^ "allowMultipleAllocations" - AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.- , v1beta1BasicDeviceAttributes :: !(Maybe (Map.Map String V1beta1DeviceAttribute)) -- ^ "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.- , v1beta1BasicDeviceBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. The maximum number of binding conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta1BasicDeviceBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is true, a binding failure occurred. The maximum number of binding failure conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta1BasicDeviceBindsToNode :: !(Maybe Bool) -- ^ "bindsToNode" - BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta1BasicDeviceCapacity :: !(Maybe (Map.Map String V1beta1DeviceCapacity)) -- ^ "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.- , v1beta1BasicDeviceConsumesCounters :: !(Maybe [V1beta1DeviceCounterConsumption]) -- ^ "consumesCounters" - ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. There can only be a single entry per counterSet. The total number of device counter consumption entries must be <= 32. In addition, the total number in the entire ResourceSlice must be <= 1024 (for example, 64 devices with 16 counters each).- , v1beta1BasicDeviceNodeName :: !(Maybe Text) -- ^ "nodeName" - NodeName identifies the node where the device is available. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.- , v1beta1BasicDeviceNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- , v1beta1BasicDeviceTaints :: !(Maybe [V1beta1DeviceTaint]) -- ^ "taints" - If specified, these are the driver-defined taints. The maximum number of taints is 4. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1BasicDevice-instance A.FromJSON V1beta1BasicDevice where- parseJSON = A.withObject "V1beta1BasicDevice" $ \o ->- V1beta1BasicDevice- <$> (o .:? "allNodes")- <*> (o .:? "allowMultipleAllocations")- <*> (o .:? "attributes")- <*> (o .:? "bindingConditions")- <*> (o .:? "bindingFailureConditions")- <*> (o .:? "bindsToNode")- <*> (o .:? "capacity")- <*> (o .:? "consumesCounters")- <*> (o .:? "nodeName")- <*> (o .:? "nodeSelector")- <*> (o .:? "taints")---- | ToJSON V1beta1BasicDevice-instance A.ToJSON V1beta1BasicDevice where- toJSON V1beta1BasicDevice {..} =- _omitNulls- [ "allNodes" .= v1beta1BasicDeviceAllNodes- , "allowMultipleAllocations" .= v1beta1BasicDeviceAllowMultipleAllocations- , "attributes" .= v1beta1BasicDeviceAttributes- , "bindingConditions" .= v1beta1BasicDeviceBindingConditions- , "bindingFailureConditions" .= v1beta1BasicDeviceBindingFailureConditions- , "bindsToNode" .= v1beta1BasicDeviceBindsToNode- , "capacity" .= v1beta1BasicDeviceCapacity- , "consumesCounters" .= v1beta1BasicDeviceConsumesCounters- , "nodeName" .= v1beta1BasicDeviceNodeName- , "nodeSelector" .= v1beta1BasicDeviceNodeSelector- , "taints" .= v1beta1BasicDeviceTaints- ]----- | Construct a value of type 'V1beta1BasicDevice' (by applying it's required fields, if any)-mkV1beta1BasicDevice- :: V1beta1BasicDevice-mkV1beta1BasicDevice =- V1beta1BasicDevice- { v1beta1BasicDeviceAllNodes = Nothing- , v1beta1BasicDeviceAllowMultipleAllocations = Nothing- , v1beta1BasicDeviceAttributes = Nothing- , v1beta1BasicDeviceBindingConditions = Nothing- , v1beta1BasicDeviceBindingFailureConditions = Nothing- , v1beta1BasicDeviceBindsToNode = Nothing- , v1beta1BasicDeviceCapacity = Nothing- , v1beta1BasicDeviceConsumesCounters = Nothing- , v1beta1BasicDeviceNodeName = Nothing- , v1beta1BasicDeviceNodeSelector = Nothing- , v1beta1BasicDeviceTaints = Nothing- }---- ** V1beta1CELDeviceSelector--- | V1beta1CELDeviceSelector--- CELDeviceSelector contains a CEL expression for selecting a device.-data V1beta1CELDeviceSelector = V1beta1CELDeviceSelector- { v1beta1CELDeviceSelectorExpression :: !(Text) -- ^ /Required/ "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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1CELDeviceSelector-instance A.FromJSON V1beta1CELDeviceSelector where- parseJSON = A.withObject "V1beta1CELDeviceSelector" $ \o ->- V1beta1CELDeviceSelector- <$> (o .: "expression")---- | ToJSON V1beta1CELDeviceSelector-instance A.ToJSON V1beta1CELDeviceSelector where- toJSON V1beta1CELDeviceSelector {..} =- _omitNulls- [ "expression" .= v1beta1CELDeviceSelectorExpression- ]----- | Construct a value of type 'V1beta1CELDeviceSelector' (by applying it's required fields, if any)-mkV1beta1CELDeviceSelector- :: Text -- ^ 'v1beta1CELDeviceSelectorExpression': 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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.- -> V1beta1CELDeviceSelector-mkV1beta1CELDeviceSelector v1beta1CELDeviceSelectorExpression =- V1beta1CELDeviceSelector- { v1beta1CELDeviceSelectorExpression- }---- ** V1beta1CapacityRequestPolicy--- | V1beta1CapacityRequestPolicy--- CapacityRequestPolicy defines how requests consume device capacity. Must not set more than one ValidRequestValues.-data V1beta1CapacityRequestPolicy = V1beta1CapacityRequestPolicy- { v1beta1CapacityRequestPolicyDefault :: !(Maybe Quantity) -- ^ "default"- , v1beta1CapacityRequestPolicyValidRange :: !(Maybe V1beta1CapacityRequestPolicyRange) -- ^ "validRange"- , v1beta1CapacityRequestPolicyValidValues :: !(Maybe [Quantity]) -- ^ "validValues" - ValidValues defines a set of acceptable quantity values in consuming requests. Must not contain more than 10 entries. Must be sorted in ascending order. If this field is set, Default must be defined and it must be included in ValidValues list. If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≤ max(validValues). If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1CapacityRequestPolicy-instance A.FromJSON V1beta1CapacityRequestPolicy where- parseJSON = A.withObject "V1beta1CapacityRequestPolicy" $ \o ->- V1beta1CapacityRequestPolicy- <$> (o .:? "default")- <*> (o .:? "validRange")- <*> (o .:? "validValues")---- | ToJSON V1beta1CapacityRequestPolicy-instance A.ToJSON V1beta1CapacityRequestPolicy where- toJSON V1beta1CapacityRequestPolicy {..} =- _omitNulls- [ "default" .= v1beta1CapacityRequestPolicyDefault- , "validRange" .= v1beta1CapacityRequestPolicyValidRange- , "validValues" .= v1beta1CapacityRequestPolicyValidValues- ]----- | Construct a value of type 'V1beta1CapacityRequestPolicy' (by applying it's required fields, if any)-mkV1beta1CapacityRequestPolicy- :: V1beta1CapacityRequestPolicy-mkV1beta1CapacityRequestPolicy =- V1beta1CapacityRequestPolicy- { v1beta1CapacityRequestPolicyDefault = Nothing- , v1beta1CapacityRequestPolicyValidRange = Nothing- , v1beta1CapacityRequestPolicyValidValues = Nothing- }---- ** V1beta1CapacityRequestPolicyRange--- | V1beta1CapacityRequestPolicyRange--- CapacityRequestPolicyRange defines a valid range for consumable capacity values. - If the requested amount is less than Min, it is rounded up to the Min value. - If Step is set and the requested amount is between Min and Max but not aligned with Step, it will be rounded up to the next value equal to Min + (n * Step). - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, and the device cannot be allocated.-data V1beta1CapacityRequestPolicyRange = V1beta1CapacityRequestPolicyRange- { v1beta1CapacityRequestPolicyRangeMax :: !(Maybe Quantity) -- ^ "max"- , v1beta1CapacityRequestPolicyRangeMin :: !(Quantity) -- ^ /Required/ "min"- , v1beta1CapacityRequestPolicyRangeStep :: !(Maybe Quantity) -- ^ "step"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1CapacityRequestPolicyRange-instance A.FromJSON V1beta1CapacityRequestPolicyRange where- parseJSON = A.withObject "V1beta1CapacityRequestPolicyRange" $ \o ->- V1beta1CapacityRequestPolicyRange- <$> (o .:? "max")- <*> (o .: "min")- <*> (o .:? "step")---- | ToJSON V1beta1CapacityRequestPolicyRange-instance A.ToJSON V1beta1CapacityRequestPolicyRange where- toJSON V1beta1CapacityRequestPolicyRange {..} =- _omitNulls- [ "max" .= v1beta1CapacityRequestPolicyRangeMax- , "min" .= v1beta1CapacityRequestPolicyRangeMin- , "step" .= v1beta1CapacityRequestPolicyRangeStep- ]----- | Construct a value of type 'V1beta1CapacityRequestPolicyRange' (by applying it's required fields, if any)-mkV1beta1CapacityRequestPolicyRange- :: Quantity -- ^ 'v1beta1CapacityRequestPolicyRangeMin' - -> V1beta1CapacityRequestPolicyRange-mkV1beta1CapacityRequestPolicyRange v1beta1CapacityRequestPolicyRangeMin =- V1beta1CapacityRequestPolicyRange- { v1beta1CapacityRequestPolicyRangeMax = Nothing- , v1beta1CapacityRequestPolicyRangeMin- , v1beta1CapacityRequestPolicyRangeStep = Nothing- }---- ** V1beta1CapacityRequirements--- | V1beta1CapacityRequirements--- CapacityRequirements defines the capacity requirements for a specific device request.-data V1beta1CapacityRequirements = V1beta1CapacityRequirements- { v1beta1CapacityRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[<domain>].<name>.compareTo(quantity(<request quantity>)) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid value—because it exceeds what the requestPolicy allows— the device is considered ineligible for allocation. For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity (i.e., the whole device is claimed). - If a requestPolicy is set, the default consumed capacity is determined according to that policy. If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1CapacityRequirements-instance A.FromJSON V1beta1CapacityRequirements where- parseJSON = A.withObject "V1beta1CapacityRequirements" $ \o ->- V1beta1CapacityRequirements- <$> (o .:? "requests")---- | ToJSON V1beta1CapacityRequirements-instance A.ToJSON V1beta1CapacityRequirements where- toJSON V1beta1CapacityRequirements {..} =- _omitNulls- [ "requests" .= v1beta1CapacityRequirementsRequests- ]----- | Construct a value of type 'V1beta1CapacityRequirements' (by applying it's required fields, if any)-mkV1beta1CapacityRequirements- :: V1beta1CapacityRequirements-mkV1beta1CapacityRequirements =- V1beta1CapacityRequirements- { v1beta1CapacityRequirementsRequests = Nothing- }---- ** V1beta1ClusterTrustBundle--- | V1beta1ClusterTrustBundle--- ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates). ClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to. It can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.-data V1beta1ClusterTrustBundle = V1beta1ClusterTrustBundle- { v1beta1ClusterTrustBundleApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ClusterTrustBundleKind :: !(Maybe Text) -- ^ "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- , v1beta1ClusterTrustBundleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1ClusterTrustBundleSpec :: !(V1beta1ClusterTrustBundleSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ClusterTrustBundle-instance A.FromJSON V1beta1ClusterTrustBundle where- parseJSON = A.withObject "V1beta1ClusterTrustBundle" $ \o ->- V1beta1ClusterTrustBundle- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta1ClusterTrustBundle-instance A.ToJSON V1beta1ClusterTrustBundle where- toJSON V1beta1ClusterTrustBundle {..} =- _omitNulls- [ "apiVersion" .= v1beta1ClusterTrustBundleApiVersion- , "kind" .= v1beta1ClusterTrustBundleKind- , "metadata" .= v1beta1ClusterTrustBundleMetadata- , "spec" .= v1beta1ClusterTrustBundleSpec- ]----- | Construct a value of type 'V1beta1ClusterTrustBundle' (by applying it's required fields, if any)-mkV1beta1ClusterTrustBundle- :: V1beta1ClusterTrustBundleSpec -- ^ 'v1beta1ClusterTrustBundleSpec' - -> V1beta1ClusterTrustBundle-mkV1beta1ClusterTrustBundle v1beta1ClusterTrustBundleSpec =- V1beta1ClusterTrustBundle- { v1beta1ClusterTrustBundleApiVersion = Nothing- , v1beta1ClusterTrustBundleKind = Nothing- , v1beta1ClusterTrustBundleMetadata = Nothing- , v1beta1ClusterTrustBundleSpec- }---- ** V1beta1ClusterTrustBundleList--- | V1beta1ClusterTrustBundleList--- ClusterTrustBundleList is a collection of ClusterTrustBundle objects-data V1beta1ClusterTrustBundleList = V1beta1ClusterTrustBundleList- { v1beta1ClusterTrustBundleListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ClusterTrustBundleListItems :: !([V1beta1ClusterTrustBundle]) -- ^ /Required/ "items" - items is a collection of ClusterTrustBundle objects- , v1beta1ClusterTrustBundleListKind :: !(Maybe Text) -- ^ "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- , v1beta1ClusterTrustBundleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ClusterTrustBundleList-instance A.FromJSON V1beta1ClusterTrustBundleList where- parseJSON = A.withObject "V1beta1ClusterTrustBundleList" $ \o ->- V1beta1ClusterTrustBundleList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1ClusterTrustBundleList-instance A.ToJSON V1beta1ClusterTrustBundleList where- toJSON V1beta1ClusterTrustBundleList {..} =- _omitNulls- [ "apiVersion" .= v1beta1ClusterTrustBundleListApiVersion- , "items" .= v1beta1ClusterTrustBundleListItems- , "kind" .= v1beta1ClusterTrustBundleListKind- , "metadata" .= v1beta1ClusterTrustBundleListMetadata- ]----- | Construct a value of type 'V1beta1ClusterTrustBundleList' (by applying it's required fields, if any)-mkV1beta1ClusterTrustBundleList- :: [V1beta1ClusterTrustBundle] -- ^ 'v1beta1ClusterTrustBundleListItems': items is a collection of ClusterTrustBundle objects- -> V1beta1ClusterTrustBundleList-mkV1beta1ClusterTrustBundleList v1beta1ClusterTrustBundleListItems =- V1beta1ClusterTrustBundleList- { v1beta1ClusterTrustBundleListApiVersion = Nothing- , v1beta1ClusterTrustBundleListItems- , v1beta1ClusterTrustBundleListKind = Nothing- , v1beta1ClusterTrustBundleListMetadata = Nothing- }---- ** V1beta1ClusterTrustBundleSpec--- | V1beta1ClusterTrustBundleSpec--- ClusterTrustBundleSpec contains the signer and trust anchors.-data V1beta1ClusterTrustBundleSpec = V1beta1ClusterTrustBundleSpec- { v1beta1ClusterTrustBundleSpecSignerName :: !(Maybe Text) -- ^ "signerName" - signerName indicates the associated signer, if any. In order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName=<the signer name> verb=attest. If signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`. If signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix. List/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.- , v1beta1ClusterTrustBundleSpecTrustBundle :: !(Text) -- ^ /Required/ "trustBundle" - trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ClusterTrustBundleSpec-instance A.FromJSON V1beta1ClusterTrustBundleSpec where- parseJSON = A.withObject "V1beta1ClusterTrustBundleSpec" $ \o ->- V1beta1ClusterTrustBundleSpec- <$> (o .:? "signerName")- <*> (o .: "trustBundle")---- | ToJSON V1beta1ClusterTrustBundleSpec-instance A.ToJSON V1beta1ClusterTrustBundleSpec where- toJSON V1beta1ClusterTrustBundleSpec {..} =- _omitNulls- [ "signerName" .= v1beta1ClusterTrustBundleSpecSignerName- , "trustBundle" .= v1beta1ClusterTrustBundleSpecTrustBundle- ]----- | Construct a value of type 'V1beta1ClusterTrustBundleSpec' (by applying it's required fields, if any)-mkV1beta1ClusterTrustBundleSpec- :: Text -- ^ 'v1beta1ClusterTrustBundleSpecTrustBundle': trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.- -> V1beta1ClusterTrustBundleSpec-mkV1beta1ClusterTrustBundleSpec v1beta1ClusterTrustBundleSpecTrustBundle =- V1beta1ClusterTrustBundleSpec- { v1beta1ClusterTrustBundleSpecSignerName = Nothing- , v1beta1ClusterTrustBundleSpecTrustBundle- }---- ** V1beta1Counter--- | V1beta1Counter--- Counter describes a quantity associated with a device.-data V1beta1Counter = V1beta1Counter- { v1beta1CounterValue :: !(Quantity) -- ^ /Required/ "value"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1Counter-instance A.FromJSON V1beta1Counter where- parseJSON = A.withObject "V1beta1Counter" $ \o ->- V1beta1Counter- <$> (o .: "value")---- | ToJSON V1beta1Counter-instance A.ToJSON V1beta1Counter where- toJSON V1beta1Counter {..} =- _omitNulls- [ "value" .= v1beta1CounterValue- ]----- | Construct a value of type 'V1beta1Counter' (by applying it's required fields, if any)-mkV1beta1Counter- :: Quantity -- ^ 'v1beta1CounterValue' - -> V1beta1Counter-mkV1beta1Counter v1beta1CounterValue =- V1beta1Counter- { v1beta1CounterValue- }---- ** V1beta1CounterSet--- | V1beta1CounterSet--- CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.-data V1beta1CounterSet = V1beta1CounterSet- { v1beta1CounterSetCounters :: !((Map.Map String V1beta1Counter)) -- ^ /Required/ "counters" - Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters is 32.- , v1beta1CounterSetName :: !(Text) -- ^ /Required/ "name" - Name defines the name of the counter set. It must be a DNS label.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1CounterSet-instance A.FromJSON V1beta1CounterSet where- parseJSON = A.withObject "V1beta1CounterSet" $ \o ->- V1beta1CounterSet- <$> (o .: "counters")- <*> (o .: "name")---- | ToJSON V1beta1CounterSet-instance A.ToJSON V1beta1CounterSet where- toJSON V1beta1CounterSet {..} =- _omitNulls- [ "counters" .= v1beta1CounterSetCounters- , "name" .= v1beta1CounterSetName- ]----- | Construct a value of type 'V1beta1CounterSet' (by applying it's required fields, if any)-mkV1beta1CounterSet- :: (Map.Map String V1beta1Counter) -- ^ 'v1beta1CounterSetCounters': Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters is 32.- -> Text -- ^ 'v1beta1CounterSetName': Name defines the name of the counter set. It must be a DNS label.- -> V1beta1CounterSet-mkV1beta1CounterSet v1beta1CounterSetCounters v1beta1CounterSetName =- V1beta1CounterSet- { v1beta1CounterSetCounters- , v1beta1CounterSetName- }---- ** V1beta1Device--- | V1beta1Device--- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.-data V1beta1Device = V1beta1Device- { v1beta1DeviceBasic :: !(Maybe V1beta1BasicDevice) -- ^ "basic"- , v1beta1DeviceName :: !(Text) -- ^ /Required/ "name" - Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1Device-instance A.FromJSON V1beta1Device where- parseJSON = A.withObject "V1beta1Device" $ \o ->- V1beta1Device- <$> (o .:? "basic")- <*> (o .: "name")---- | ToJSON V1beta1Device-instance A.ToJSON V1beta1Device where- toJSON V1beta1Device {..} =- _omitNulls- [ "basic" .= v1beta1DeviceBasic- , "name" .= v1beta1DeviceName- ]----- | Construct a value of type 'V1beta1Device' (by applying it's required fields, if any)-mkV1beta1Device- :: Text -- ^ 'v1beta1DeviceName': Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.- -> V1beta1Device-mkV1beta1Device v1beta1DeviceName =- V1beta1Device- { v1beta1DeviceBasic = Nothing- , v1beta1DeviceName- }---- ** V1beta1DeviceAllocationConfiguration--- | V1beta1DeviceAllocationConfiguration--- DeviceAllocationConfiguration gets embedded in an AllocationResult.-data V1beta1DeviceAllocationConfiguration = V1beta1DeviceAllocationConfiguration- { v1beta1DeviceAllocationConfigurationOpaque :: !(Maybe V1beta1OpaqueDeviceConfiguration) -- ^ "opaque"- , v1beta1DeviceAllocationConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.- , v1beta1DeviceAllocationConfigurationSource :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceAllocationConfiguration-instance A.FromJSON V1beta1DeviceAllocationConfiguration where- parseJSON = A.withObject "V1beta1DeviceAllocationConfiguration" $ \o ->- V1beta1DeviceAllocationConfiguration- <$> (o .:? "opaque")- <*> (o .:? "requests")- <*> (o .: "source")---- | ToJSON V1beta1DeviceAllocationConfiguration-instance A.ToJSON V1beta1DeviceAllocationConfiguration where- toJSON V1beta1DeviceAllocationConfiguration {..} =- _omitNulls- [ "opaque" .= v1beta1DeviceAllocationConfigurationOpaque- , "requests" .= v1beta1DeviceAllocationConfigurationRequests- , "source" .= v1beta1DeviceAllocationConfigurationSource- ]----- | Construct a value of type 'V1beta1DeviceAllocationConfiguration' (by applying it's required fields, if any)-mkV1beta1DeviceAllocationConfiguration- :: Text -- ^ 'v1beta1DeviceAllocationConfigurationSource': 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.- -> V1beta1DeviceAllocationConfiguration-mkV1beta1DeviceAllocationConfiguration v1beta1DeviceAllocationConfigurationSource =- V1beta1DeviceAllocationConfiguration- { v1beta1DeviceAllocationConfigurationOpaque = Nothing- , v1beta1DeviceAllocationConfigurationRequests = Nothing- , v1beta1DeviceAllocationConfigurationSource- }---- ** V1beta1DeviceAllocationResult--- | V1beta1DeviceAllocationResult--- DeviceAllocationResult is the result of allocating devices.-data V1beta1DeviceAllocationResult = V1beta1DeviceAllocationResult- { v1beta1DeviceAllocationResultConfig :: !(Maybe [V1beta1DeviceAllocationConfiguration]) -- ^ "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.- , v1beta1DeviceAllocationResultResults :: !(Maybe [V1beta1DeviceRequestAllocationResult]) -- ^ "results" - Results lists all allocated devices.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceAllocationResult-instance A.FromJSON V1beta1DeviceAllocationResult where- parseJSON = A.withObject "V1beta1DeviceAllocationResult" $ \o ->- V1beta1DeviceAllocationResult- <$> (o .:? "config")- <*> (o .:? "results")---- | ToJSON V1beta1DeviceAllocationResult-instance A.ToJSON V1beta1DeviceAllocationResult where- toJSON V1beta1DeviceAllocationResult {..} =- _omitNulls- [ "config" .= v1beta1DeviceAllocationResultConfig- , "results" .= v1beta1DeviceAllocationResultResults- ]----- | Construct a value of type 'V1beta1DeviceAllocationResult' (by applying it's required fields, if any)-mkV1beta1DeviceAllocationResult- :: V1beta1DeviceAllocationResult-mkV1beta1DeviceAllocationResult =- V1beta1DeviceAllocationResult- { v1beta1DeviceAllocationResultConfig = Nothing- , v1beta1DeviceAllocationResultResults = Nothing- }---- ** V1beta1DeviceAttribute--- | V1beta1DeviceAttribute--- DeviceAttribute must have exactly one field set.-data V1beta1DeviceAttribute = V1beta1DeviceAttribute- { v1beta1DeviceAttributeBool :: !(Maybe Bool) -- ^ "bool" - BoolValue is a true/false value.- , v1beta1DeviceAttributeInt :: !(Maybe Integer) -- ^ "int" - IntValue is a number.- , v1beta1DeviceAttributeString :: !(Maybe Text) -- ^ "string" - StringValue is a string. Must not be longer than 64 characters.- , v1beta1DeviceAttributeVersion :: !(Maybe Text) -- ^ "version" - VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceAttribute-instance A.FromJSON V1beta1DeviceAttribute where- parseJSON = A.withObject "V1beta1DeviceAttribute" $ \o ->- V1beta1DeviceAttribute- <$> (o .:? "bool")- <*> (o .:? "int")- <*> (o .:? "string")- <*> (o .:? "version")---- | ToJSON V1beta1DeviceAttribute-instance A.ToJSON V1beta1DeviceAttribute where- toJSON V1beta1DeviceAttribute {..} =- _omitNulls- [ "bool" .= v1beta1DeviceAttributeBool- , "int" .= v1beta1DeviceAttributeInt- , "string" .= v1beta1DeviceAttributeString- , "version" .= v1beta1DeviceAttributeVersion- ]----- | Construct a value of type 'V1beta1DeviceAttribute' (by applying it's required fields, if any)-mkV1beta1DeviceAttribute- :: V1beta1DeviceAttribute-mkV1beta1DeviceAttribute =- V1beta1DeviceAttribute- { v1beta1DeviceAttributeBool = Nothing- , v1beta1DeviceAttributeInt = Nothing- , v1beta1DeviceAttributeString = Nothing- , v1beta1DeviceAttributeVersion = Nothing- }---- ** V1beta1DeviceCapacity--- | V1beta1DeviceCapacity--- DeviceCapacity describes a quantity associated with a device.-data V1beta1DeviceCapacity = V1beta1DeviceCapacity- { v1beta1DeviceCapacityRequestPolicy :: !(Maybe V1beta1CapacityRequestPolicy) -- ^ "requestPolicy"- , v1beta1DeviceCapacityValue :: !(Quantity) -- ^ /Required/ "value"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceCapacity-instance A.FromJSON V1beta1DeviceCapacity where- parseJSON = A.withObject "V1beta1DeviceCapacity" $ \o ->- V1beta1DeviceCapacity- <$> (o .:? "requestPolicy")- <*> (o .: "value")---- | ToJSON V1beta1DeviceCapacity-instance A.ToJSON V1beta1DeviceCapacity where- toJSON V1beta1DeviceCapacity {..} =- _omitNulls- [ "requestPolicy" .= v1beta1DeviceCapacityRequestPolicy- , "value" .= v1beta1DeviceCapacityValue- ]----- | Construct a value of type 'V1beta1DeviceCapacity' (by applying it's required fields, if any)-mkV1beta1DeviceCapacity- :: Quantity -- ^ 'v1beta1DeviceCapacityValue' - -> V1beta1DeviceCapacity-mkV1beta1DeviceCapacity v1beta1DeviceCapacityValue =- V1beta1DeviceCapacity- { v1beta1DeviceCapacityRequestPolicy = Nothing- , v1beta1DeviceCapacityValue- }---- ** V1beta1DeviceClaim--- | V1beta1DeviceClaim--- DeviceClaim defines how to request devices with a ResourceClaim.-data V1beta1DeviceClaim = V1beta1DeviceClaim- { v1beta1DeviceClaimConfig :: !(Maybe [V1beta1DeviceClaimConfiguration]) -- ^ "config" - This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.- , v1beta1DeviceClaimConstraints :: !(Maybe [V1beta1DeviceConstraint]) -- ^ "constraints" - These constraints must be satisfied by the set of devices that get allocated for the claim.- , v1beta1DeviceClaimRequests :: !(Maybe [V1beta1DeviceRequest]) -- ^ "requests" - Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceClaim-instance A.FromJSON V1beta1DeviceClaim where- parseJSON = A.withObject "V1beta1DeviceClaim" $ \o ->- V1beta1DeviceClaim- <$> (o .:? "config")- <*> (o .:? "constraints")- <*> (o .:? "requests")---- | ToJSON V1beta1DeviceClaim-instance A.ToJSON V1beta1DeviceClaim where- toJSON V1beta1DeviceClaim {..} =- _omitNulls- [ "config" .= v1beta1DeviceClaimConfig- , "constraints" .= v1beta1DeviceClaimConstraints- , "requests" .= v1beta1DeviceClaimRequests- ]----- | Construct a value of type 'V1beta1DeviceClaim' (by applying it's required fields, if any)-mkV1beta1DeviceClaim- :: V1beta1DeviceClaim-mkV1beta1DeviceClaim =- V1beta1DeviceClaim- { v1beta1DeviceClaimConfig = Nothing- , v1beta1DeviceClaimConstraints = Nothing- , v1beta1DeviceClaimRequests = Nothing- }---- ** V1beta1DeviceClaimConfiguration--- | V1beta1DeviceClaimConfiguration--- DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.-data V1beta1DeviceClaimConfiguration = V1beta1DeviceClaimConfiguration- { v1beta1DeviceClaimConfigurationOpaque :: !(Maybe V1beta1OpaqueDeviceConfiguration) -- ^ "opaque"- , v1beta1DeviceClaimConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceClaimConfiguration-instance A.FromJSON V1beta1DeviceClaimConfiguration where- parseJSON = A.withObject "V1beta1DeviceClaimConfiguration" $ \o ->- V1beta1DeviceClaimConfiguration- <$> (o .:? "opaque")- <*> (o .:? "requests")---- | ToJSON V1beta1DeviceClaimConfiguration-instance A.ToJSON V1beta1DeviceClaimConfiguration where- toJSON V1beta1DeviceClaimConfiguration {..} =- _omitNulls- [ "opaque" .= v1beta1DeviceClaimConfigurationOpaque- , "requests" .= v1beta1DeviceClaimConfigurationRequests- ]----- | Construct a value of type 'V1beta1DeviceClaimConfiguration' (by applying it's required fields, if any)-mkV1beta1DeviceClaimConfiguration- :: V1beta1DeviceClaimConfiguration-mkV1beta1DeviceClaimConfiguration =- V1beta1DeviceClaimConfiguration- { v1beta1DeviceClaimConfigurationOpaque = Nothing- , v1beta1DeviceClaimConfigurationRequests = Nothing- }---- ** V1beta1DeviceClass--- | V1beta1DeviceClass--- 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.-data V1beta1DeviceClass = V1beta1DeviceClass- { v1beta1DeviceClassApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1DeviceClassKind :: !(Maybe Text) -- ^ "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- , v1beta1DeviceClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1DeviceClassSpec :: !(V1beta1DeviceClassSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceClass-instance A.FromJSON V1beta1DeviceClass where- parseJSON = A.withObject "V1beta1DeviceClass" $ \o ->- V1beta1DeviceClass- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta1DeviceClass-instance A.ToJSON V1beta1DeviceClass where- toJSON V1beta1DeviceClass {..} =- _omitNulls- [ "apiVersion" .= v1beta1DeviceClassApiVersion- , "kind" .= v1beta1DeviceClassKind- , "metadata" .= v1beta1DeviceClassMetadata- , "spec" .= v1beta1DeviceClassSpec- ]----- | Construct a value of type 'V1beta1DeviceClass' (by applying it's required fields, if any)-mkV1beta1DeviceClass- :: V1beta1DeviceClassSpec -- ^ 'v1beta1DeviceClassSpec' - -> V1beta1DeviceClass-mkV1beta1DeviceClass v1beta1DeviceClassSpec =- V1beta1DeviceClass- { v1beta1DeviceClassApiVersion = Nothing- , v1beta1DeviceClassKind = Nothing- , v1beta1DeviceClassMetadata = Nothing- , v1beta1DeviceClassSpec- }---- ** V1beta1DeviceClassConfiguration--- | V1beta1DeviceClassConfiguration--- DeviceClassConfiguration is used in DeviceClass.-data V1beta1DeviceClassConfiguration = V1beta1DeviceClassConfiguration- { v1beta1DeviceClassConfigurationOpaque :: !(Maybe V1beta1OpaqueDeviceConfiguration) -- ^ "opaque"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceClassConfiguration-instance A.FromJSON V1beta1DeviceClassConfiguration where- parseJSON = A.withObject "V1beta1DeviceClassConfiguration" $ \o ->- V1beta1DeviceClassConfiguration- <$> (o .:? "opaque")---- | ToJSON V1beta1DeviceClassConfiguration-instance A.ToJSON V1beta1DeviceClassConfiguration where- toJSON V1beta1DeviceClassConfiguration {..} =- _omitNulls- [ "opaque" .= v1beta1DeviceClassConfigurationOpaque- ]----- | Construct a value of type 'V1beta1DeviceClassConfiguration' (by applying it's required fields, if any)-mkV1beta1DeviceClassConfiguration- :: V1beta1DeviceClassConfiguration-mkV1beta1DeviceClassConfiguration =- V1beta1DeviceClassConfiguration- { v1beta1DeviceClassConfigurationOpaque = Nothing- }---- ** V1beta1DeviceClassList--- | V1beta1DeviceClassList--- DeviceClassList is a collection of classes.-data V1beta1DeviceClassList = V1beta1DeviceClassList- { v1beta1DeviceClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1DeviceClassListItems :: !([V1beta1DeviceClass]) -- ^ /Required/ "items" - Items is the list of resource classes.- , v1beta1DeviceClassListKind :: !(Maybe Text) -- ^ "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- , v1beta1DeviceClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceClassList-instance A.FromJSON V1beta1DeviceClassList where- parseJSON = A.withObject "V1beta1DeviceClassList" $ \o ->- V1beta1DeviceClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1DeviceClassList-instance A.ToJSON V1beta1DeviceClassList where- toJSON V1beta1DeviceClassList {..} =- _omitNulls- [ "apiVersion" .= v1beta1DeviceClassListApiVersion- , "items" .= v1beta1DeviceClassListItems- , "kind" .= v1beta1DeviceClassListKind- , "metadata" .= v1beta1DeviceClassListMetadata- ]----- | Construct a value of type 'V1beta1DeviceClassList' (by applying it's required fields, if any)-mkV1beta1DeviceClassList- :: [V1beta1DeviceClass] -- ^ 'v1beta1DeviceClassListItems': Items is the list of resource classes.- -> V1beta1DeviceClassList-mkV1beta1DeviceClassList v1beta1DeviceClassListItems =- V1beta1DeviceClassList- { v1beta1DeviceClassListApiVersion = Nothing- , v1beta1DeviceClassListItems- , v1beta1DeviceClassListKind = Nothing- , v1beta1DeviceClassListMetadata = Nothing- }---- ** V1beta1DeviceClassSpec--- | V1beta1DeviceClassSpec--- DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.-data V1beta1DeviceClassSpec = V1beta1DeviceClassSpec- { v1beta1DeviceClassSpecConfig :: !(Maybe [V1beta1DeviceClassConfiguration]) -- ^ "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.- , v1beta1DeviceClassSpecExtendedResourceName :: !(Maybe Text) -- ^ "extendedResourceName" - ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. This is an alpha field.- , v1beta1DeviceClassSpecSelectors :: !(Maybe [V1beta1DeviceSelector]) -- ^ "selectors" - Each selector must be satisfied by a device which is claimed via this class.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceClassSpec-instance A.FromJSON V1beta1DeviceClassSpec where- parseJSON = A.withObject "V1beta1DeviceClassSpec" $ \o ->- V1beta1DeviceClassSpec- <$> (o .:? "config")- <*> (o .:? "extendedResourceName")- <*> (o .:? "selectors")---- | ToJSON V1beta1DeviceClassSpec-instance A.ToJSON V1beta1DeviceClassSpec where- toJSON V1beta1DeviceClassSpec {..} =- _omitNulls- [ "config" .= v1beta1DeviceClassSpecConfig- , "extendedResourceName" .= v1beta1DeviceClassSpecExtendedResourceName- , "selectors" .= v1beta1DeviceClassSpecSelectors- ]----- | Construct a value of type 'V1beta1DeviceClassSpec' (by applying it's required fields, if any)-mkV1beta1DeviceClassSpec- :: V1beta1DeviceClassSpec-mkV1beta1DeviceClassSpec =- V1beta1DeviceClassSpec- { v1beta1DeviceClassSpecConfig = Nothing- , v1beta1DeviceClassSpecExtendedResourceName = Nothing- , v1beta1DeviceClassSpecSelectors = Nothing- }---- ** V1beta1DeviceConstraint--- | V1beta1DeviceConstraint--- DeviceConstraint must have exactly one field set besides Requests.-data V1beta1DeviceConstraint = V1beta1DeviceConstraint- { v1beta1DeviceConstraintDistinctAttribute :: !(Maybe Text) -- ^ "distinctAttribute" - DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. This acts as the inverse of MatchAttribute. This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs.- , v1beta1DeviceConstraintMatchAttribute :: !(Maybe Text) -- ^ "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.- , v1beta1DeviceConstraintRequests :: !(Maybe [Text]) -- ^ "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. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceConstraint-instance A.FromJSON V1beta1DeviceConstraint where- parseJSON = A.withObject "V1beta1DeviceConstraint" $ \o ->- V1beta1DeviceConstraint- <$> (o .:? "distinctAttribute")- <*> (o .:? "matchAttribute")- <*> (o .:? "requests")---- | ToJSON V1beta1DeviceConstraint-instance A.ToJSON V1beta1DeviceConstraint where- toJSON V1beta1DeviceConstraint {..} =- _omitNulls- [ "distinctAttribute" .= v1beta1DeviceConstraintDistinctAttribute- , "matchAttribute" .= v1beta1DeviceConstraintMatchAttribute- , "requests" .= v1beta1DeviceConstraintRequests- ]----- | Construct a value of type 'V1beta1DeviceConstraint' (by applying it's required fields, if any)-mkV1beta1DeviceConstraint- :: V1beta1DeviceConstraint-mkV1beta1DeviceConstraint =- V1beta1DeviceConstraint- { v1beta1DeviceConstraintDistinctAttribute = Nothing- , v1beta1DeviceConstraintMatchAttribute = Nothing- , v1beta1DeviceConstraintRequests = Nothing- }---- ** V1beta1DeviceCounterConsumption--- | V1beta1DeviceCounterConsumption--- DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.-data V1beta1DeviceCounterConsumption = V1beta1DeviceCounterConsumption- { v1beta1DeviceCounterConsumptionCounterSet :: !(Text) -- ^ /Required/ "counterSet" - CounterSet is the name of the set from which the counters defined will be consumed.- , v1beta1DeviceCounterConsumptionCounters :: !((Map.Map String V1beta1Counter)) -- ^ /Required/ "counters" - Counters defines the counters that will be consumed by the device. The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceCounterConsumption-instance A.FromJSON V1beta1DeviceCounterConsumption where- parseJSON = A.withObject "V1beta1DeviceCounterConsumption" $ \o ->- V1beta1DeviceCounterConsumption- <$> (o .: "counterSet")- <*> (o .: "counters")---- | ToJSON V1beta1DeviceCounterConsumption-instance A.ToJSON V1beta1DeviceCounterConsumption where- toJSON V1beta1DeviceCounterConsumption {..} =- _omitNulls- [ "counterSet" .= v1beta1DeviceCounterConsumptionCounterSet- , "counters" .= v1beta1DeviceCounterConsumptionCounters- ]----- | Construct a value of type 'V1beta1DeviceCounterConsumption' (by applying it's required fields, if any)-mkV1beta1DeviceCounterConsumption- :: Text -- ^ 'v1beta1DeviceCounterConsumptionCounterSet': CounterSet is the name of the set from which the counters defined will be consumed.- -> (Map.Map String V1beta1Counter) -- ^ 'v1beta1DeviceCounterConsumptionCounters': Counters defines the counters that will be consumed by the device. The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).- -> V1beta1DeviceCounterConsumption-mkV1beta1DeviceCounterConsumption v1beta1DeviceCounterConsumptionCounterSet v1beta1DeviceCounterConsumptionCounters =- V1beta1DeviceCounterConsumption- { v1beta1DeviceCounterConsumptionCounterSet- , v1beta1DeviceCounterConsumptionCounters- }---- ** V1beta1DeviceRequest--- | V1beta1DeviceRequest--- 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.-data V1beta1DeviceRequest = V1beta1DeviceRequest- { v1beta1DeviceRequestAdminAccess :: !(Maybe Bool) -- ^ "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 field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list. 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.- , v1beta1DeviceRequestAllocationMode :: !(Maybe Text) -- ^ "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. At least one device must exist on the node for the allocation to succeed. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field. This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.- , v1beta1DeviceRequestCapacity :: !(Maybe V1beta1CapacityRequirements) -- ^ "capacity"- , v1beta1DeviceRequestCount :: !(Maybe Integer) -- ^ "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. This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.- , v1beta1DeviceRequestDeviceClassName :: !(Maybe Text) -- ^ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A class is required if no subrequests are specified in the firstAvailable list and no class can be set if subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster. 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.- , v1beta1DeviceRequestFirstAvailable :: !(Maybe [V1beta1DeviceSubRequest]) -- ^ "firstAvailable" - FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one cannot be used. This field may only be set in the entries of DeviceClaim.Requests. DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.- , v1beta1DeviceRequestName :: !(Text) -- ^ /Required/ "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 and unique among all DeviceRequests in a ResourceClaim.- , v1beta1DeviceRequestSelectors :: !(Maybe [V1beta1DeviceSelector]) -- ^ "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. This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.- , v1beta1DeviceRequestTolerations :: !(Maybe [V1beta1DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceRequest-instance A.FromJSON V1beta1DeviceRequest where- parseJSON = A.withObject "V1beta1DeviceRequest" $ \o ->- V1beta1DeviceRequest- <$> (o .:? "adminAccess")- <*> (o .:? "allocationMode")- <*> (o .:? "capacity")- <*> (o .:? "count")- <*> (o .:? "deviceClassName")- <*> (o .:? "firstAvailable")- <*> (o .: "name")- <*> (o .:? "selectors")- <*> (o .:? "tolerations")---- | ToJSON V1beta1DeviceRequest-instance A.ToJSON V1beta1DeviceRequest where- toJSON V1beta1DeviceRequest {..} =- _omitNulls- [ "adminAccess" .= v1beta1DeviceRequestAdminAccess- , "allocationMode" .= v1beta1DeviceRequestAllocationMode- , "capacity" .= v1beta1DeviceRequestCapacity- , "count" .= v1beta1DeviceRequestCount- , "deviceClassName" .= v1beta1DeviceRequestDeviceClassName- , "firstAvailable" .= v1beta1DeviceRequestFirstAvailable- , "name" .= v1beta1DeviceRequestName- , "selectors" .= v1beta1DeviceRequestSelectors- , "tolerations" .= v1beta1DeviceRequestTolerations- ]----- | Construct a value of type 'V1beta1DeviceRequest' (by applying it's required fields, if any)-mkV1beta1DeviceRequest- :: Text -- ^ 'v1beta1DeviceRequestName': 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 and unique among all DeviceRequests in a ResourceClaim.- -> V1beta1DeviceRequest-mkV1beta1DeviceRequest v1beta1DeviceRequestName =- V1beta1DeviceRequest- { v1beta1DeviceRequestAdminAccess = Nothing- , v1beta1DeviceRequestAllocationMode = Nothing- , v1beta1DeviceRequestCapacity = Nothing- , v1beta1DeviceRequestCount = Nothing- , v1beta1DeviceRequestDeviceClassName = Nothing- , v1beta1DeviceRequestFirstAvailable = Nothing- , v1beta1DeviceRequestName- , v1beta1DeviceRequestSelectors = Nothing- , v1beta1DeviceRequestTolerations = Nothing- }---- ** V1beta1DeviceRequestAllocationResult--- | V1beta1DeviceRequestAllocationResult--- DeviceRequestAllocationResult contains the allocation result for one request.-data V1beta1DeviceRequestAllocationResult = V1beta1DeviceRequestAllocationResult- { v1beta1DeviceRequestAllocationResultAdminAccess :: !(Maybe Bool) -- ^ "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.- , v1beta1DeviceRequestAllocationResultBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta1DeviceRequestAllocationResultBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta1DeviceRequestAllocationResultConsumedCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "consumedCapacity" - ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). The total consumed capacity for each device must not exceed the DeviceCapacity's Value. This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero.- , v1beta1DeviceRequestAllocationResultDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- , v1beta1DeviceRequestAllocationResultDriver :: !(Text) -- ^ /Required/ "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.- , v1beta1DeviceRequestAllocationResultPool :: !(Text) -- ^ /Required/ "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.- , v1beta1DeviceRequestAllocationResultRequest :: !(Text) -- ^ /Required/ "request" - Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.- , v1beta1DeviceRequestAllocationResultShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device.- , v1beta1DeviceRequestAllocationResultTolerations :: !(Maybe [V1beta1DeviceToleration]) -- ^ "tolerations" - A copy of all tolerations specified in the request at the time when the device got allocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceRequestAllocationResult-instance A.FromJSON V1beta1DeviceRequestAllocationResult where- parseJSON = A.withObject "V1beta1DeviceRequestAllocationResult" $ \o ->- V1beta1DeviceRequestAllocationResult- <$> (o .:? "adminAccess")- <*> (o .:? "bindingConditions")- <*> (o .:? "bindingFailureConditions")- <*> (o .:? "consumedCapacity")- <*> (o .: "device")- <*> (o .: "driver")- <*> (o .: "pool")- <*> (o .: "request")- <*> (o .:? "shareID")- <*> (o .:? "tolerations")---- | ToJSON V1beta1DeviceRequestAllocationResult-instance A.ToJSON V1beta1DeviceRequestAllocationResult where- toJSON V1beta1DeviceRequestAllocationResult {..} =- _omitNulls- [ "adminAccess" .= v1beta1DeviceRequestAllocationResultAdminAccess- , "bindingConditions" .= v1beta1DeviceRequestAllocationResultBindingConditions- , "bindingFailureConditions" .= v1beta1DeviceRequestAllocationResultBindingFailureConditions- , "consumedCapacity" .= v1beta1DeviceRequestAllocationResultConsumedCapacity- , "device" .= v1beta1DeviceRequestAllocationResultDevice- , "driver" .= v1beta1DeviceRequestAllocationResultDriver- , "pool" .= v1beta1DeviceRequestAllocationResultPool- , "request" .= v1beta1DeviceRequestAllocationResultRequest- , "shareID" .= v1beta1DeviceRequestAllocationResultShareId- , "tolerations" .= v1beta1DeviceRequestAllocationResultTolerations- ]----- | Construct a value of type 'V1beta1DeviceRequestAllocationResult' (by applying it's required fields, if any)-mkV1beta1DeviceRequestAllocationResult- :: Text -- ^ 'v1beta1DeviceRequestAllocationResultDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- -> Text -- ^ 'v1beta1DeviceRequestAllocationResultDriver': 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.- -> Text -- ^ 'v1beta1DeviceRequestAllocationResultPool': 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.- -> Text -- ^ 'v1beta1DeviceRequestAllocationResultRequest': Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.- -> V1beta1DeviceRequestAllocationResult-mkV1beta1DeviceRequestAllocationResult v1beta1DeviceRequestAllocationResultDevice v1beta1DeviceRequestAllocationResultDriver v1beta1DeviceRequestAllocationResultPool v1beta1DeviceRequestAllocationResultRequest =- V1beta1DeviceRequestAllocationResult- { v1beta1DeviceRequestAllocationResultAdminAccess = Nothing- , v1beta1DeviceRequestAllocationResultBindingConditions = Nothing- , v1beta1DeviceRequestAllocationResultBindingFailureConditions = Nothing- , v1beta1DeviceRequestAllocationResultConsumedCapacity = Nothing- , v1beta1DeviceRequestAllocationResultDevice- , v1beta1DeviceRequestAllocationResultDriver- , v1beta1DeviceRequestAllocationResultPool- , v1beta1DeviceRequestAllocationResultRequest- , v1beta1DeviceRequestAllocationResultShareId = Nothing- , v1beta1DeviceRequestAllocationResultTolerations = Nothing- }---- ** V1beta1DeviceSelector--- | V1beta1DeviceSelector--- DeviceSelector must have exactly one field set.-data V1beta1DeviceSelector = V1beta1DeviceSelector- { v1beta1DeviceSelectorCel :: !(Maybe V1beta1CELDeviceSelector) -- ^ "cel"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceSelector-instance A.FromJSON V1beta1DeviceSelector where- parseJSON = A.withObject "V1beta1DeviceSelector" $ \o ->- V1beta1DeviceSelector- <$> (o .:? "cel")---- | ToJSON V1beta1DeviceSelector-instance A.ToJSON V1beta1DeviceSelector where- toJSON V1beta1DeviceSelector {..} =- _omitNulls- [ "cel" .= v1beta1DeviceSelectorCel- ]----- | Construct a value of type 'V1beta1DeviceSelector' (by applying it's required fields, if any)-mkV1beta1DeviceSelector- :: V1beta1DeviceSelector-mkV1beta1DeviceSelector =- V1beta1DeviceSelector- { v1beta1DeviceSelectorCel = Nothing- }---- ** V1beta1DeviceSubRequest--- | V1beta1DeviceSubRequest--- DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.-data V1beta1DeviceSubRequest = V1beta1DeviceSubRequest- { v1beta1DeviceSubRequestAllocationMode :: !(Maybe Text) -- ^ "allocationMode" - AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. 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 subrequest is for all of the matching devices in a pool. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.- , v1beta1DeviceSubRequestCapacity :: !(Maybe V1beta1CapacityRequirements) -- ^ "capacity"- , v1beta1DeviceSubRequestCount :: !(Maybe Integer) -- ^ "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.- , v1beta1DeviceSubRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.- , v1beta1DeviceSubRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.- , v1beta1DeviceSubRequestSelectors :: !(Maybe [V1beta1DeviceSelector]) -- ^ "selectors" - Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.- , v1beta1DeviceSubRequestTolerations :: !(Maybe [V1beta1DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceSubRequest-instance A.FromJSON V1beta1DeviceSubRequest where- parseJSON = A.withObject "V1beta1DeviceSubRequest" $ \o ->- V1beta1DeviceSubRequest- <$> (o .:? "allocationMode")- <*> (o .:? "capacity")- <*> (o .:? "count")- <*> (o .: "deviceClassName")- <*> (o .: "name")- <*> (o .:? "selectors")- <*> (o .:? "tolerations")---- | ToJSON V1beta1DeviceSubRequest-instance A.ToJSON V1beta1DeviceSubRequest where- toJSON V1beta1DeviceSubRequest {..} =- _omitNulls- [ "allocationMode" .= v1beta1DeviceSubRequestAllocationMode- , "capacity" .= v1beta1DeviceSubRequestCapacity- , "count" .= v1beta1DeviceSubRequestCount- , "deviceClassName" .= v1beta1DeviceSubRequestDeviceClassName- , "name" .= v1beta1DeviceSubRequestName- , "selectors" .= v1beta1DeviceSubRequestSelectors- , "tolerations" .= v1beta1DeviceSubRequestTolerations- ]----- | Construct a value of type 'V1beta1DeviceSubRequest' (by applying it's required fields, if any)-mkV1beta1DeviceSubRequest- :: Text -- ^ 'v1beta1DeviceSubRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.- -> Text -- ^ 'v1beta1DeviceSubRequestName': Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.- -> V1beta1DeviceSubRequest-mkV1beta1DeviceSubRequest v1beta1DeviceSubRequestDeviceClassName v1beta1DeviceSubRequestName =- V1beta1DeviceSubRequest- { v1beta1DeviceSubRequestAllocationMode = Nothing- , v1beta1DeviceSubRequestCapacity = Nothing- , v1beta1DeviceSubRequestCount = Nothing- , v1beta1DeviceSubRequestDeviceClassName- , v1beta1DeviceSubRequestName- , v1beta1DeviceSubRequestSelectors = Nothing- , v1beta1DeviceSubRequestTolerations = Nothing- }---- ** V1beta1DeviceTaint--- | V1beta1DeviceTaint--- The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.-data V1beta1DeviceTaint = V1beta1DeviceTaint- { v1beta1DeviceTaintEffect :: !(Text) -- ^ /Required/ "effect" - The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.- , v1beta1DeviceTaintKey :: !(Text) -- ^ /Required/ "key" - The taint key to be applied to a device. Must be a label name.- , v1beta1DeviceTaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.- , v1beta1DeviceTaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key. Must be a label value.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceTaint-instance A.FromJSON V1beta1DeviceTaint where- parseJSON = A.withObject "V1beta1DeviceTaint" $ \o ->- V1beta1DeviceTaint- <$> (o .: "effect")- <*> (o .: "key")- <*> (o .:? "timeAdded")- <*> (o .:? "value")---- | ToJSON V1beta1DeviceTaint-instance A.ToJSON V1beta1DeviceTaint where- toJSON V1beta1DeviceTaint {..} =- _omitNulls- [ "effect" .= v1beta1DeviceTaintEffect- , "key" .= v1beta1DeviceTaintKey- , "timeAdded" .= v1beta1DeviceTaintTimeAdded- , "value" .= v1beta1DeviceTaintValue- ]----- | Construct a value of type 'V1beta1DeviceTaint' (by applying it's required fields, if any)-mkV1beta1DeviceTaint- :: Text -- ^ 'v1beta1DeviceTaintEffect': The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.- -> Text -- ^ 'v1beta1DeviceTaintKey': The taint key to be applied to a device. Must be a label name.- -> V1beta1DeviceTaint-mkV1beta1DeviceTaint v1beta1DeviceTaintEffect v1beta1DeviceTaintKey =- V1beta1DeviceTaint- { v1beta1DeviceTaintEffect- , v1beta1DeviceTaintKey- , v1beta1DeviceTaintTimeAdded = Nothing- , v1beta1DeviceTaintValue = Nothing- }---- ** V1beta1DeviceToleration--- | V1beta1DeviceToleration--- The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.-data V1beta1DeviceToleration = V1beta1DeviceToleration- { v1beta1DeviceTolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.- , v1beta1DeviceTolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.- , v1beta1DeviceTolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.- , v1beta1DeviceTolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.- , v1beta1DeviceTolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1DeviceToleration-instance A.FromJSON V1beta1DeviceToleration where- parseJSON = A.withObject "V1beta1DeviceToleration" $ \o ->- V1beta1DeviceToleration- <$> (o .:? "effect")- <*> (o .:? "key")- <*> (o .:? "operator")- <*> (o .:? "tolerationSeconds")- <*> (o .:? "value")---- | ToJSON V1beta1DeviceToleration-instance A.ToJSON V1beta1DeviceToleration where- toJSON V1beta1DeviceToleration {..} =- _omitNulls- [ "effect" .= v1beta1DeviceTolerationEffect- , "key" .= v1beta1DeviceTolerationKey- , "operator" .= v1beta1DeviceTolerationOperator- , "tolerationSeconds" .= v1beta1DeviceTolerationTolerationSeconds- , "value" .= v1beta1DeviceTolerationValue- ]----- | Construct a value of type 'V1beta1DeviceToleration' (by applying it's required fields, if any)-mkV1beta1DeviceToleration- :: V1beta1DeviceToleration-mkV1beta1DeviceToleration =- V1beta1DeviceToleration- { v1beta1DeviceTolerationEffect = Nothing- , v1beta1DeviceTolerationKey = Nothing- , v1beta1DeviceTolerationOperator = Nothing- , v1beta1DeviceTolerationTolerationSeconds = Nothing- , v1beta1DeviceTolerationValue = Nothing- }---- ** V1beta1IPAddress--- | V1beta1IPAddress--- IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1-data V1beta1IPAddress = V1beta1IPAddress- { v1beta1IPAddressApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1IPAddressKind :: !(Maybe Text) -- ^ "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- , v1beta1IPAddressMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1IPAddressSpec :: !(Maybe V1beta1IPAddressSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1IPAddress-instance A.FromJSON V1beta1IPAddress where- parseJSON = A.withObject "V1beta1IPAddress" $ \o ->- V1beta1IPAddress- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1beta1IPAddress-instance A.ToJSON V1beta1IPAddress where- toJSON V1beta1IPAddress {..} =- _omitNulls- [ "apiVersion" .= v1beta1IPAddressApiVersion- , "kind" .= v1beta1IPAddressKind- , "metadata" .= v1beta1IPAddressMetadata- , "spec" .= v1beta1IPAddressSpec- ]----- | Construct a value of type 'V1beta1IPAddress' (by applying it's required fields, if any)-mkV1beta1IPAddress- :: V1beta1IPAddress-mkV1beta1IPAddress =- V1beta1IPAddress- { v1beta1IPAddressApiVersion = Nothing- , v1beta1IPAddressKind = Nothing- , v1beta1IPAddressMetadata = Nothing- , v1beta1IPAddressSpec = Nothing- }---- ** V1beta1IPAddressList--- | V1beta1IPAddressList--- IPAddressList contains a list of IPAddress.-data V1beta1IPAddressList = V1beta1IPAddressList- { v1beta1IPAddressListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1IPAddressListItems :: !([V1beta1IPAddress]) -- ^ /Required/ "items" - items is the list of IPAddresses.- , v1beta1IPAddressListKind :: !(Maybe Text) -- ^ "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- , v1beta1IPAddressListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1IPAddressList-instance A.FromJSON V1beta1IPAddressList where- parseJSON = A.withObject "V1beta1IPAddressList" $ \o ->- V1beta1IPAddressList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1IPAddressList-instance A.ToJSON V1beta1IPAddressList where- toJSON V1beta1IPAddressList {..} =- _omitNulls- [ "apiVersion" .= v1beta1IPAddressListApiVersion- , "items" .= v1beta1IPAddressListItems- , "kind" .= v1beta1IPAddressListKind- , "metadata" .= v1beta1IPAddressListMetadata- ]----- | Construct a value of type 'V1beta1IPAddressList' (by applying it's required fields, if any)-mkV1beta1IPAddressList- :: [V1beta1IPAddress] -- ^ 'v1beta1IPAddressListItems': items is the list of IPAddresses.- -> V1beta1IPAddressList-mkV1beta1IPAddressList v1beta1IPAddressListItems =- V1beta1IPAddressList- { v1beta1IPAddressListApiVersion = Nothing- , v1beta1IPAddressListItems- , v1beta1IPAddressListKind = Nothing- , v1beta1IPAddressListMetadata = Nothing- }---- ** V1beta1IPAddressSpec--- | V1beta1IPAddressSpec--- IPAddressSpec describe the attributes in an IP Address.-data V1beta1IPAddressSpec = V1beta1IPAddressSpec- { v1beta1IPAddressSpecParentRef :: !(V1beta1ParentReference) -- ^ /Required/ "parentRef"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1IPAddressSpec-instance A.FromJSON V1beta1IPAddressSpec where- parseJSON = A.withObject "V1beta1IPAddressSpec" $ \o ->- V1beta1IPAddressSpec- <$> (o .: "parentRef")---- | ToJSON V1beta1IPAddressSpec-instance A.ToJSON V1beta1IPAddressSpec where- toJSON V1beta1IPAddressSpec {..} =- _omitNulls- [ "parentRef" .= v1beta1IPAddressSpecParentRef- ]----- | Construct a value of type 'V1beta1IPAddressSpec' (by applying it's required fields, if any)-mkV1beta1IPAddressSpec- :: V1beta1ParentReference -- ^ 'v1beta1IPAddressSpecParentRef' - -> V1beta1IPAddressSpec-mkV1beta1IPAddressSpec v1beta1IPAddressSpecParentRef =- V1beta1IPAddressSpec- { v1beta1IPAddressSpecParentRef- }---- ** V1beta1JSONPatch--- | V1beta1JSONPatch--- JSONPatch defines a JSON Patch.-data V1beta1JSONPatch = V1beta1JSONPatch- { v1beta1JSONPatchExpression :: !(Maybe Text) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1JSONPatch-instance A.FromJSON V1beta1JSONPatch where- parseJSON = A.withObject "V1beta1JSONPatch" $ \o ->- V1beta1JSONPatch- <$> (o .:? "expression")---- | ToJSON V1beta1JSONPatch-instance A.ToJSON V1beta1JSONPatch where- toJSON V1beta1JSONPatch {..} =- _omitNulls- [ "expression" .= v1beta1JSONPatchExpression- ]----- | Construct a value of type 'V1beta1JSONPatch' (by applying it's required fields, if any)-mkV1beta1JSONPatch- :: V1beta1JSONPatch-mkV1beta1JSONPatch =- V1beta1JSONPatch- { v1beta1JSONPatchExpression = Nothing- }---- ** V1beta1LeaseCandidate--- | V1beta1LeaseCandidate--- 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.-data V1beta1LeaseCandidate = V1beta1LeaseCandidate- { v1beta1LeaseCandidateApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1LeaseCandidateKind :: !(Maybe Text) -- ^ "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- , v1beta1LeaseCandidateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1LeaseCandidateSpec :: !(Maybe V1beta1LeaseCandidateSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1LeaseCandidate-instance A.FromJSON V1beta1LeaseCandidate where- parseJSON = A.withObject "V1beta1LeaseCandidate" $ \o ->- V1beta1LeaseCandidate- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1beta1LeaseCandidate-instance A.ToJSON V1beta1LeaseCandidate where- toJSON V1beta1LeaseCandidate {..} =- _omitNulls- [ "apiVersion" .= v1beta1LeaseCandidateApiVersion- , "kind" .= v1beta1LeaseCandidateKind- , "metadata" .= v1beta1LeaseCandidateMetadata- , "spec" .= v1beta1LeaseCandidateSpec- ]----- | Construct a value of type 'V1beta1LeaseCandidate' (by applying it's required fields, if any)-mkV1beta1LeaseCandidate- :: V1beta1LeaseCandidate-mkV1beta1LeaseCandidate =- V1beta1LeaseCandidate- { v1beta1LeaseCandidateApiVersion = Nothing- , v1beta1LeaseCandidateKind = Nothing- , v1beta1LeaseCandidateMetadata = Nothing- , v1beta1LeaseCandidateSpec = Nothing- }---- ** V1beta1LeaseCandidateList--- | V1beta1LeaseCandidateList--- LeaseCandidateList is a list of Lease objects.-data V1beta1LeaseCandidateList = V1beta1LeaseCandidateList- { v1beta1LeaseCandidateListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1LeaseCandidateListItems :: !([V1beta1LeaseCandidate]) -- ^ /Required/ "items" - items is a list of schema objects.- , v1beta1LeaseCandidateListKind :: !(Maybe Text) -- ^ "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- , v1beta1LeaseCandidateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1LeaseCandidateList-instance A.FromJSON V1beta1LeaseCandidateList where- parseJSON = A.withObject "V1beta1LeaseCandidateList" $ \o ->- V1beta1LeaseCandidateList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1LeaseCandidateList-instance A.ToJSON V1beta1LeaseCandidateList where- toJSON V1beta1LeaseCandidateList {..} =- _omitNulls- [ "apiVersion" .= v1beta1LeaseCandidateListApiVersion- , "items" .= v1beta1LeaseCandidateListItems- , "kind" .= v1beta1LeaseCandidateListKind- , "metadata" .= v1beta1LeaseCandidateListMetadata- ]----- | Construct a value of type 'V1beta1LeaseCandidateList' (by applying it's required fields, if any)-mkV1beta1LeaseCandidateList- :: [V1beta1LeaseCandidate] -- ^ 'v1beta1LeaseCandidateListItems': items is a list of schema objects.- -> V1beta1LeaseCandidateList-mkV1beta1LeaseCandidateList v1beta1LeaseCandidateListItems =- V1beta1LeaseCandidateList- { v1beta1LeaseCandidateListApiVersion = Nothing- , v1beta1LeaseCandidateListItems- , v1beta1LeaseCandidateListKind = Nothing- , v1beta1LeaseCandidateListMetadata = Nothing- }---- ** V1beta1LeaseCandidateSpec--- | V1beta1LeaseCandidateSpec--- LeaseCandidateSpec is a specification of a Lease.-data V1beta1LeaseCandidateSpec = V1beta1LeaseCandidateSpec- { v1beta1LeaseCandidateSpecBinaryVersion :: !(Text) -- ^ /Required/ "binaryVersion" - BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.- , v1beta1LeaseCandidateSpecEmulationVersion :: !(Maybe Text) -- ^ "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\"- , v1beta1LeaseCandidateSpecLeaseName :: !(Text) -- ^ /Required/ "leaseName" - LeaseName is the name of the lease for which this candidate is contending. The limits on this field are the same as on Lease.name. Multiple lease candidates may reference the same Lease.name. This field is immutable.- , v1beta1LeaseCandidateSpecPingTime :: !(Maybe DateTime) -- ^ "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.- , v1beta1LeaseCandidateSpecRenewTime :: !(Maybe DateTime) -- ^ "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.- , v1beta1LeaseCandidateSpecStrategy :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1LeaseCandidateSpec-instance A.FromJSON V1beta1LeaseCandidateSpec where- parseJSON = A.withObject "V1beta1LeaseCandidateSpec" $ \o ->- V1beta1LeaseCandidateSpec- <$> (o .: "binaryVersion")- <*> (o .:? "emulationVersion")- <*> (o .: "leaseName")- <*> (o .:? "pingTime")- <*> (o .:? "renewTime")- <*> (o .: "strategy")---- | ToJSON V1beta1LeaseCandidateSpec-instance A.ToJSON V1beta1LeaseCandidateSpec where- toJSON V1beta1LeaseCandidateSpec {..} =- _omitNulls- [ "binaryVersion" .= v1beta1LeaseCandidateSpecBinaryVersion- , "emulationVersion" .= v1beta1LeaseCandidateSpecEmulationVersion- , "leaseName" .= v1beta1LeaseCandidateSpecLeaseName- , "pingTime" .= v1beta1LeaseCandidateSpecPingTime- , "renewTime" .= v1beta1LeaseCandidateSpecRenewTime- , "strategy" .= v1beta1LeaseCandidateSpecStrategy- ]----- | Construct a value of type 'V1beta1LeaseCandidateSpec' (by applying it's required fields, if any)-mkV1beta1LeaseCandidateSpec- :: Text -- ^ 'v1beta1LeaseCandidateSpecBinaryVersion': BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.- -> Text -- ^ 'v1beta1LeaseCandidateSpecLeaseName': LeaseName is the name of the lease for which this candidate is contending. The limits on this field are the same as on Lease.name. Multiple lease candidates may reference the same Lease.name. This field is immutable.- -> Text -- ^ 'v1beta1LeaseCandidateSpecStrategy': 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.- -> V1beta1LeaseCandidateSpec-mkV1beta1LeaseCandidateSpec v1beta1LeaseCandidateSpecBinaryVersion v1beta1LeaseCandidateSpecLeaseName v1beta1LeaseCandidateSpecStrategy =- V1beta1LeaseCandidateSpec- { v1beta1LeaseCandidateSpecBinaryVersion- , v1beta1LeaseCandidateSpecEmulationVersion = Nothing- , v1beta1LeaseCandidateSpecLeaseName- , v1beta1LeaseCandidateSpecPingTime = Nothing- , v1beta1LeaseCandidateSpecRenewTime = Nothing- , v1beta1LeaseCandidateSpecStrategy- }---- ** V1beta1MatchCondition--- | V1beta1MatchCondition--- MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.-data V1beta1MatchCondition = V1beta1MatchCondition- { v1beta1MatchConditionExpression :: !(Text) -- ^ /Required/ "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.- , v1beta1MatchConditionName :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1MatchCondition-instance A.FromJSON V1beta1MatchCondition where- parseJSON = A.withObject "V1beta1MatchCondition" $ \o ->- V1beta1MatchCondition- <$> (o .: "expression")- <*> (o .: "name")---- | ToJSON V1beta1MatchCondition-instance A.ToJSON V1beta1MatchCondition where- toJSON V1beta1MatchCondition {..} =- _omitNulls- [ "expression" .= v1beta1MatchConditionExpression- , "name" .= v1beta1MatchConditionName- ]----- | Construct a value of type 'V1beta1MatchCondition' (by applying it's required fields, if any)-mkV1beta1MatchCondition- :: Text -- ^ 'v1beta1MatchConditionExpression': 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.- -> Text -- ^ 'v1beta1MatchConditionName': 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.- -> V1beta1MatchCondition-mkV1beta1MatchCondition v1beta1MatchConditionExpression v1beta1MatchConditionName =- V1beta1MatchCondition- { v1beta1MatchConditionExpression- , v1beta1MatchConditionName- }---- ** V1beta1MatchResources--- | V1beta1MatchResources--- 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)-data V1beta1MatchResources = V1beta1MatchResources- { v1beta1MatchResourcesExcludeResourceRules :: !(Maybe [V1beta1NamedRuleWithOperations]) -- ^ "excludeResourceRules" - 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)- , v1beta1MatchResourcesMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - 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\"- , v1beta1MatchResourcesNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"- , v1beta1MatchResourcesObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"- , v1beta1MatchResourcesResourceRules :: !(Maybe [V1beta1NamedRuleWithOperations]) -- ^ "resourceRules" - ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1MatchResources-instance A.FromJSON V1beta1MatchResources where- parseJSON = A.withObject "V1beta1MatchResources" $ \o ->- V1beta1MatchResources- <$> (o .:? "excludeResourceRules")- <*> (o .:? "matchPolicy")- <*> (o .:? "namespaceSelector")- <*> (o .:? "objectSelector")- <*> (o .:? "resourceRules")---- | ToJSON V1beta1MatchResources-instance A.ToJSON V1beta1MatchResources where- toJSON V1beta1MatchResources {..} =- _omitNulls- [ "excludeResourceRules" .= v1beta1MatchResourcesExcludeResourceRules- , "matchPolicy" .= v1beta1MatchResourcesMatchPolicy- , "namespaceSelector" .= v1beta1MatchResourcesNamespaceSelector- , "objectSelector" .= v1beta1MatchResourcesObjectSelector- , "resourceRules" .= v1beta1MatchResourcesResourceRules- ]----- | Construct a value of type 'V1beta1MatchResources' (by applying it's required fields, if any)-mkV1beta1MatchResources- :: V1beta1MatchResources-mkV1beta1MatchResources =- V1beta1MatchResources- { v1beta1MatchResourcesExcludeResourceRules = Nothing- , v1beta1MatchResourcesMatchPolicy = Nothing- , v1beta1MatchResourcesNamespaceSelector = Nothing- , v1beta1MatchResourcesObjectSelector = Nothing- , v1beta1MatchResourcesResourceRules = Nothing- }---- ** V1beta1MutatingAdmissionPolicy--- | V1beta1MutatingAdmissionPolicy--- MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.-data V1beta1MutatingAdmissionPolicy = V1beta1MutatingAdmissionPolicy- { v1beta1MutatingAdmissionPolicyApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1MutatingAdmissionPolicyKind :: !(Maybe Text) -- ^ "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- , v1beta1MutatingAdmissionPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1MutatingAdmissionPolicySpec :: !(Maybe V1beta1MutatingAdmissionPolicySpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1MutatingAdmissionPolicy-instance A.FromJSON V1beta1MutatingAdmissionPolicy where- parseJSON = A.withObject "V1beta1MutatingAdmissionPolicy" $ \o ->- V1beta1MutatingAdmissionPolicy- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1beta1MutatingAdmissionPolicy-instance A.ToJSON V1beta1MutatingAdmissionPolicy where- toJSON V1beta1MutatingAdmissionPolicy {..} =- _omitNulls- [ "apiVersion" .= v1beta1MutatingAdmissionPolicyApiVersion- , "kind" .= v1beta1MutatingAdmissionPolicyKind- , "metadata" .= v1beta1MutatingAdmissionPolicyMetadata- , "spec" .= v1beta1MutatingAdmissionPolicySpec- ]----- | Construct a value of type 'V1beta1MutatingAdmissionPolicy' (by applying it's required fields, if any)-mkV1beta1MutatingAdmissionPolicy- :: V1beta1MutatingAdmissionPolicy-mkV1beta1MutatingAdmissionPolicy =- V1beta1MutatingAdmissionPolicy- { v1beta1MutatingAdmissionPolicyApiVersion = Nothing- , v1beta1MutatingAdmissionPolicyKind = Nothing- , v1beta1MutatingAdmissionPolicyMetadata = Nothing- , v1beta1MutatingAdmissionPolicySpec = Nothing- }---- ** V1beta1MutatingAdmissionPolicyBinding--- | V1beta1MutatingAdmissionPolicyBinding--- 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.-data V1beta1MutatingAdmissionPolicyBinding = V1beta1MutatingAdmissionPolicyBinding- { v1beta1MutatingAdmissionPolicyBindingApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1MutatingAdmissionPolicyBindingKind :: !(Maybe Text) -- ^ "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- , v1beta1MutatingAdmissionPolicyBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1MutatingAdmissionPolicyBindingSpec :: !(Maybe V1beta1MutatingAdmissionPolicyBindingSpec) -- ^ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1MutatingAdmissionPolicyBinding-instance A.FromJSON V1beta1MutatingAdmissionPolicyBinding where- parseJSON = A.withObject "V1beta1MutatingAdmissionPolicyBinding" $ \o ->- V1beta1MutatingAdmissionPolicyBinding- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")---- | ToJSON V1beta1MutatingAdmissionPolicyBinding-instance A.ToJSON V1beta1MutatingAdmissionPolicyBinding where- toJSON V1beta1MutatingAdmissionPolicyBinding {..} =- _omitNulls- [ "apiVersion" .= v1beta1MutatingAdmissionPolicyBindingApiVersion- , "kind" .= v1beta1MutatingAdmissionPolicyBindingKind- , "metadata" .= v1beta1MutatingAdmissionPolicyBindingMetadata- , "spec" .= v1beta1MutatingAdmissionPolicyBindingSpec- ]----- | Construct a value of type 'V1beta1MutatingAdmissionPolicyBinding' (by applying it's required fields, if any)-mkV1beta1MutatingAdmissionPolicyBinding- :: V1beta1MutatingAdmissionPolicyBinding-mkV1beta1MutatingAdmissionPolicyBinding =- V1beta1MutatingAdmissionPolicyBinding- { v1beta1MutatingAdmissionPolicyBindingApiVersion = Nothing- , v1beta1MutatingAdmissionPolicyBindingKind = Nothing- , v1beta1MutatingAdmissionPolicyBindingMetadata = Nothing- , v1beta1MutatingAdmissionPolicyBindingSpec = Nothing- }---- ** V1beta1MutatingAdmissionPolicyBindingList--- | V1beta1MutatingAdmissionPolicyBindingList--- MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.-data V1beta1MutatingAdmissionPolicyBindingList = V1beta1MutatingAdmissionPolicyBindingList- { v1beta1MutatingAdmissionPolicyBindingListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1MutatingAdmissionPolicyBindingListItems :: !([V1beta1MutatingAdmissionPolicyBinding]) -- ^ /Required/ "items" - List of PolicyBinding.- , v1beta1MutatingAdmissionPolicyBindingListKind :: !(Maybe Text) -- ^ "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- , v1beta1MutatingAdmissionPolicyBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1MutatingAdmissionPolicyBindingList-instance A.FromJSON V1beta1MutatingAdmissionPolicyBindingList where- parseJSON = A.withObject "V1beta1MutatingAdmissionPolicyBindingList" $ \o ->- V1beta1MutatingAdmissionPolicyBindingList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1MutatingAdmissionPolicyBindingList-instance A.ToJSON V1beta1MutatingAdmissionPolicyBindingList where- toJSON V1beta1MutatingAdmissionPolicyBindingList {..} =- _omitNulls- [ "apiVersion" .= v1beta1MutatingAdmissionPolicyBindingListApiVersion- , "items" .= v1beta1MutatingAdmissionPolicyBindingListItems- , "kind" .= v1beta1MutatingAdmissionPolicyBindingListKind- , "metadata" .= v1beta1MutatingAdmissionPolicyBindingListMetadata- ]----- | Construct a value of type 'V1beta1MutatingAdmissionPolicyBindingList' (by applying it's required fields, if any)-mkV1beta1MutatingAdmissionPolicyBindingList- :: [V1beta1MutatingAdmissionPolicyBinding] -- ^ 'v1beta1MutatingAdmissionPolicyBindingListItems': List of PolicyBinding.- -> V1beta1MutatingAdmissionPolicyBindingList-mkV1beta1MutatingAdmissionPolicyBindingList v1beta1MutatingAdmissionPolicyBindingListItems =- V1beta1MutatingAdmissionPolicyBindingList- { v1beta1MutatingAdmissionPolicyBindingListApiVersion = Nothing- , v1beta1MutatingAdmissionPolicyBindingListItems- , v1beta1MutatingAdmissionPolicyBindingListKind = Nothing- , v1beta1MutatingAdmissionPolicyBindingListMetadata = Nothing- }---- ** V1beta1MutatingAdmissionPolicyBindingSpec--- | V1beta1MutatingAdmissionPolicyBindingSpec--- MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.-data V1beta1MutatingAdmissionPolicyBindingSpec = V1beta1MutatingAdmissionPolicyBindingSpec- { v1beta1MutatingAdmissionPolicyBindingSpecMatchResources :: !(Maybe V1beta1MatchResources) -- ^ "matchResources"- , v1beta1MutatingAdmissionPolicyBindingSpecParamRef :: !(Maybe V1beta1ParamRef) -- ^ "paramRef"- , v1beta1MutatingAdmissionPolicyBindingSpecPolicyName :: !(Maybe Text) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1MutatingAdmissionPolicyBindingSpec-instance A.FromJSON V1beta1MutatingAdmissionPolicyBindingSpec where- parseJSON = A.withObject "V1beta1MutatingAdmissionPolicyBindingSpec" $ \o ->- V1beta1MutatingAdmissionPolicyBindingSpec- <$> (o .:? "matchResources")- <*> (o .:? "paramRef")- <*> (o .:? "policyName")---- | ToJSON V1beta1MutatingAdmissionPolicyBindingSpec-instance A.ToJSON V1beta1MutatingAdmissionPolicyBindingSpec where- toJSON V1beta1MutatingAdmissionPolicyBindingSpec {..} =- _omitNulls- [ "matchResources" .= v1beta1MutatingAdmissionPolicyBindingSpecMatchResources- , "paramRef" .= v1beta1MutatingAdmissionPolicyBindingSpecParamRef- , "policyName" .= v1beta1MutatingAdmissionPolicyBindingSpecPolicyName- ]----- | Construct a value of type 'V1beta1MutatingAdmissionPolicyBindingSpec' (by applying it's required fields, if any)-mkV1beta1MutatingAdmissionPolicyBindingSpec- :: V1beta1MutatingAdmissionPolicyBindingSpec-mkV1beta1MutatingAdmissionPolicyBindingSpec =- V1beta1MutatingAdmissionPolicyBindingSpec- { v1beta1MutatingAdmissionPolicyBindingSpecMatchResources = Nothing- , v1beta1MutatingAdmissionPolicyBindingSpecParamRef = Nothing- , v1beta1MutatingAdmissionPolicyBindingSpecPolicyName = Nothing- }---- ** V1beta1MutatingAdmissionPolicyList--- | V1beta1MutatingAdmissionPolicyList--- MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.-data V1beta1MutatingAdmissionPolicyList = V1beta1MutatingAdmissionPolicyList- { v1beta1MutatingAdmissionPolicyListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1MutatingAdmissionPolicyListItems :: !([V1beta1MutatingAdmissionPolicy]) -- ^ /Required/ "items" - List of ValidatingAdmissionPolicy.- , v1beta1MutatingAdmissionPolicyListKind :: !(Maybe Text) -- ^ "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- , v1beta1MutatingAdmissionPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1MutatingAdmissionPolicyList-instance A.FromJSON V1beta1MutatingAdmissionPolicyList where- parseJSON = A.withObject "V1beta1MutatingAdmissionPolicyList" $ \o ->- V1beta1MutatingAdmissionPolicyList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1MutatingAdmissionPolicyList-instance A.ToJSON V1beta1MutatingAdmissionPolicyList where- toJSON V1beta1MutatingAdmissionPolicyList {..} =- _omitNulls- [ "apiVersion" .= v1beta1MutatingAdmissionPolicyListApiVersion- , "items" .= v1beta1MutatingAdmissionPolicyListItems- , "kind" .= v1beta1MutatingAdmissionPolicyListKind- , "metadata" .= v1beta1MutatingAdmissionPolicyListMetadata- ]----- | Construct a value of type 'V1beta1MutatingAdmissionPolicyList' (by applying it's required fields, if any)-mkV1beta1MutatingAdmissionPolicyList- :: [V1beta1MutatingAdmissionPolicy] -- ^ 'v1beta1MutatingAdmissionPolicyListItems': List of ValidatingAdmissionPolicy.- -> V1beta1MutatingAdmissionPolicyList-mkV1beta1MutatingAdmissionPolicyList v1beta1MutatingAdmissionPolicyListItems =- V1beta1MutatingAdmissionPolicyList- { v1beta1MutatingAdmissionPolicyListApiVersion = Nothing- , v1beta1MutatingAdmissionPolicyListItems- , v1beta1MutatingAdmissionPolicyListKind = Nothing- , v1beta1MutatingAdmissionPolicyListMetadata = Nothing- }---- ** V1beta1MutatingAdmissionPolicySpec--- | V1beta1MutatingAdmissionPolicySpec--- MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.-data V1beta1MutatingAdmissionPolicySpec = V1beta1MutatingAdmissionPolicySpec- { v1beta1MutatingAdmissionPolicySpecFailurePolicy :: !(Maybe Text) -- ^ "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.- , v1beta1MutatingAdmissionPolicySpecMatchConditions :: !(Maybe [V1beta1MatchCondition]) -- ^ "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- , v1beta1MutatingAdmissionPolicySpecMatchConstraints :: !(Maybe V1beta1MatchResources) -- ^ "matchConstraints"- , v1beta1MutatingAdmissionPolicySpecMutations :: !(Maybe [V1beta1Mutation]) -- ^ "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.- , v1beta1MutatingAdmissionPolicySpecParamKind :: !(Maybe V1beta1ParamKind) -- ^ "paramKind"- , v1beta1MutatingAdmissionPolicySpecReinvocationPolicy :: !(Maybe Text) -- ^ "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.- , v1beta1MutatingAdmissionPolicySpecVariables :: !(Maybe [V1beta1Variable]) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1MutatingAdmissionPolicySpec-instance A.FromJSON V1beta1MutatingAdmissionPolicySpec where- parseJSON = A.withObject "V1beta1MutatingAdmissionPolicySpec" $ \o ->- V1beta1MutatingAdmissionPolicySpec- <$> (o .:? "failurePolicy")- <*> (o .:? "matchConditions")- <*> (o .:? "matchConstraints")- <*> (o .:? "mutations")- <*> (o .:? "paramKind")- <*> (o .:? "reinvocationPolicy")- <*> (o .:? "variables")---- | ToJSON V1beta1MutatingAdmissionPolicySpec-instance A.ToJSON V1beta1MutatingAdmissionPolicySpec where- toJSON V1beta1MutatingAdmissionPolicySpec {..} =- _omitNulls- [ "failurePolicy" .= v1beta1MutatingAdmissionPolicySpecFailurePolicy- , "matchConditions" .= v1beta1MutatingAdmissionPolicySpecMatchConditions- , "matchConstraints" .= v1beta1MutatingAdmissionPolicySpecMatchConstraints- , "mutations" .= v1beta1MutatingAdmissionPolicySpecMutations- , "paramKind" .= v1beta1MutatingAdmissionPolicySpecParamKind- , "reinvocationPolicy" .= v1beta1MutatingAdmissionPolicySpecReinvocationPolicy- , "variables" .= v1beta1MutatingAdmissionPolicySpecVariables- ]----- | Construct a value of type 'V1beta1MutatingAdmissionPolicySpec' (by applying it's required fields, if any)-mkV1beta1MutatingAdmissionPolicySpec- :: V1beta1MutatingAdmissionPolicySpec-mkV1beta1MutatingAdmissionPolicySpec =- V1beta1MutatingAdmissionPolicySpec- { v1beta1MutatingAdmissionPolicySpecFailurePolicy = Nothing- , v1beta1MutatingAdmissionPolicySpecMatchConditions = Nothing- , v1beta1MutatingAdmissionPolicySpecMatchConstraints = Nothing- , v1beta1MutatingAdmissionPolicySpecMutations = Nothing- , v1beta1MutatingAdmissionPolicySpecParamKind = Nothing- , v1beta1MutatingAdmissionPolicySpecReinvocationPolicy = Nothing- , v1beta1MutatingAdmissionPolicySpecVariables = Nothing- }---- ** V1beta1Mutation--- | V1beta1Mutation--- Mutation specifies the CEL expression which is used to apply the Mutation.-data V1beta1Mutation = V1beta1Mutation- { v1beta1MutationApplyConfiguration :: !(Maybe V1beta1ApplyConfiguration) -- ^ "applyConfiguration"- , v1beta1MutationJsonPatch :: !(Maybe V1beta1JSONPatch) -- ^ "jsonPatch"- , v1beta1MutationPatchType :: !(Text) -- ^ /Required/ "patchType" - patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1Mutation-instance A.FromJSON V1beta1Mutation where- parseJSON = A.withObject "V1beta1Mutation" $ \o ->- V1beta1Mutation- <$> (o .:? "applyConfiguration")- <*> (o .:? "jsonPatch")- <*> (o .: "patchType")---- | ToJSON V1beta1Mutation-instance A.ToJSON V1beta1Mutation where- toJSON V1beta1Mutation {..} =- _omitNulls- [ "applyConfiguration" .= v1beta1MutationApplyConfiguration- , "jsonPatch" .= v1beta1MutationJsonPatch- , "patchType" .= v1beta1MutationPatchType- ]----- | Construct a value of type 'V1beta1Mutation' (by applying it's required fields, if any)-mkV1beta1Mutation- :: Text -- ^ 'v1beta1MutationPatchType': patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.- -> V1beta1Mutation-mkV1beta1Mutation v1beta1MutationPatchType =- V1beta1Mutation- { v1beta1MutationApplyConfiguration = Nothing- , v1beta1MutationJsonPatch = Nothing- , v1beta1MutationPatchType- }---- ** V1beta1NamedRuleWithOperations--- | V1beta1NamedRuleWithOperations--- NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.-data V1beta1NamedRuleWithOperations = V1beta1NamedRuleWithOperations- { v1beta1NamedRuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.- , v1beta1NamedRuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.- , v1beta1NamedRuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - 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.- , v1beta1NamedRuleWithOperationsResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.- , v1beta1NamedRuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - 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.- , v1beta1NamedRuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - 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 \"*\".- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1NamedRuleWithOperations-instance A.FromJSON V1beta1NamedRuleWithOperations where- parseJSON = A.withObject "V1beta1NamedRuleWithOperations" $ \o ->- V1beta1NamedRuleWithOperations- <$> (o .:? "apiGroups")- <*> (o .:? "apiVersions")- <*> (o .:? "operations")- <*> (o .:? "resourceNames")- <*> (o .:? "resources")- <*> (o .:? "scope")---- | ToJSON V1beta1NamedRuleWithOperations-instance A.ToJSON V1beta1NamedRuleWithOperations where- toJSON V1beta1NamedRuleWithOperations {..} =- _omitNulls- [ "apiGroups" .= v1beta1NamedRuleWithOperationsApiGroups- , "apiVersions" .= v1beta1NamedRuleWithOperationsApiVersions- , "operations" .= v1beta1NamedRuleWithOperationsOperations- , "resourceNames" .= v1beta1NamedRuleWithOperationsResourceNames- , "resources" .= v1beta1NamedRuleWithOperationsResources- , "scope" .= v1beta1NamedRuleWithOperationsScope- ]----- | Construct a value of type 'V1beta1NamedRuleWithOperations' (by applying it's required fields, if any)-mkV1beta1NamedRuleWithOperations- :: V1beta1NamedRuleWithOperations-mkV1beta1NamedRuleWithOperations =- V1beta1NamedRuleWithOperations- { v1beta1NamedRuleWithOperationsApiGroups = Nothing- , v1beta1NamedRuleWithOperationsApiVersions = Nothing- , v1beta1NamedRuleWithOperationsOperations = Nothing- , v1beta1NamedRuleWithOperationsResourceNames = Nothing- , v1beta1NamedRuleWithOperationsResources = Nothing- , v1beta1NamedRuleWithOperationsScope = Nothing- }---- ** V1beta1NetworkDeviceData--- | V1beta1NetworkDeviceData--- 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.-data V1beta1NetworkDeviceData = V1beta1NetworkDeviceData- { v1beta1NetworkDeviceDataHardwareAddress :: !(Maybe Text) -- ^ "hardwareAddress" - HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. Must not be longer than 128 characters.- , v1beta1NetworkDeviceDataInterfaceName :: !(Maybe Text) -- ^ "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.- , v1beta1NetworkDeviceDataIps :: !(Maybe [Text]) -- ^ "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. Must not contain more than 16 entries.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1NetworkDeviceData-instance A.FromJSON V1beta1NetworkDeviceData where- parseJSON = A.withObject "V1beta1NetworkDeviceData" $ \o ->- V1beta1NetworkDeviceData- <$> (o .:? "hardwareAddress")- <*> (o .:? "interfaceName")- <*> (o .:? "ips")---- | ToJSON V1beta1NetworkDeviceData-instance A.ToJSON V1beta1NetworkDeviceData where- toJSON V1beta1NetworkDeviceData {..} =- _omitNulls- [ "hardwareAddress" .= v1beta1NetworkDeviceDataHardwareAddress- , "interfaceName" .= v1beta1NetworkDeviceDataInterfaceName- , "ips" .= v1beta1NetworkDeviceDataIps- ]----- | Construct a value of type 'V1beta1NetworkDeviceData' (by applying it's required fields, if any)-mkV1beta1NetworkDeviceData- :: V1beta1NetworkDeviceData-mkV1beta1NetworkDeviceData =- V1beta1NetworkDeviceData- { v1beta1NetworkDeviceDataHardwareAddress = Nothing- , v1beta1NetworkDeviceDataInterfaceName = Nothing- , v1beta1NetworkDeviceDataIps = Nothing- }---- ** V1beta1OpaqueDeviceConfiguration--- | V1beta1OpaqueDeviceConfiguration--- OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.-data V1beta1OpaqueDeviceConfiguration = V1beta1OpaqueDeviceConfiguration- { v1beta1OpaqueDeviceConfigurationDriver :: !(Text) -- ^ /Required/ "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.- , v1beta1OpaqueDeviceConfigurationParameters :: !(A.Value) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1OpaqueDeviceConfiguration-instance A.FromJSON V1beta1OpaqueDeviceConfiguration where- parseJSON = A.withObject "V1beta1OpaqueDeviceConfiguration" $ \o ->- V1beta1OpaqueDeviceConfiguration- <$> (o .: "driver")- <*> (o .: "parameters")---- | ToJSON V1beta1OpaqueDeviceConfiguration-instance A.ToJSON V1beta1OpaqueDeviceConfiguration where- toJSON V1beta1OpaqueDeviceConfiguration {..} =- _omitNulls- [ "driver" .= v1beta1OpaqueDeviceConfigurationDriver- , "parameters" .= v1beta1OpaqueDeviceConfigurationParameters- ]----- | Construct a value of type 'V1beta1OpaqueDeviceConfiguration' (by applying it's required fields, if any)-mkV1beta1OpaqueDeviceConfiguration- :: Text -- ^ 'v1beta1OpaqueDeviceConfigurationDriver': 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.- -> A.Value -- ^ 'v1beta1OpaqueDeviceConfigurationParameters': 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.- -> V1beta1OpaqueDeviceConfiguration-mkV1beta1OpaqueDeviceConfiguration v1beta1OpaqueDeviceConfigurationDriver v1beta1OpaqueDeviceConfigurationParameters =- V1beta1OpaqueDeviceConfiguration- { v1beta1OpaqueDeviceConfigurationDriver- , v1beta1OpaqueDeviceConfigurationParameters- }---- ** V1beta1ParamKind--- | V1beta1ParamKind--- ParamKind is a tuple of Group Kind and Version.-data V1beta1ParamKind = V1beta1ParamKind- { v1beta1ParamKindApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.- , v1beta1ParamKindKind :: !(Maybe Text) -- ^ "kind" - Kind is the API kind the resources belong to. Required.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ParamKind-instance A.FromJSON V1beta1ParamKind where- parseJSON = A.withObject "V1beta1ParamKind" $ \o ->- V1beta1ParamKind- <$> (o .:? "apiVersion")- <*> (o .:? "kind")---- | ToJSON V1beta1ParamKind-instance A.ToJSON V1beta1ParamKind where- toJSON V1beta1ParamKind {..} =- _omitNulls- [ "apiVersion" .= v1beta1ParamKindApiVersion- , "kind" .= v1beta1ParamKindKind- ]----- | Construct a value of type 'V1beta1ParamKind' (by applying it's required fields, if any)-mkV1beta1ParamKind- :: V1beta1ParamKind-mkV1beta1ParamKind =- V1beta1ParamKind- { v1beta1ParamKindApiVersion = Nothing- , v1beta1ParamKindKind = Nothing- }---- ** V1beta1ParamRef--- | V1beta1ParamRef--- ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.-data V1beta1ParamRef = V1beta1ParamRef- { v1beta1ParamRefName :: !(Maybe Text) -- ^ "name" - name is the name of the resource being referenced. 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. A single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.- , v1beta1ParamRefNamespace :: !(Maybe Text) -- ^ "namespace" - 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.- , v1beta1ParamRefParameterNotFoundAction :: !(Maybe Text) -- ^ "parameterNotFoundAction" - `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` Required- , v1beta1ParamRefSelector :: !(Maybe V1LabelSelector) -- ^ "selector"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ParamRef-instance A.FromJSON V1beta1ParamRef where- parseJSON = A.withObject "V1beta1ParamRef" $ \o ->- V1beta1ParamRef- <$> (o .:? "name")- <*> (o .:? "namespace")- <*> (o .:? "parameterNotFoundAction")- <*> (o .:? "selector")---- | ToJSON V1beta1ParamRef-instance A.ToJSON V1beta1ParamRef where- toJSON V1beta1ParamRef {..} =- _omitNulls- [ "name" .= v1beta1ParamRefName- , "namespace" .= v1beta1ParamRefNamespace- , "parameterNotFoundAction" .= v1beta1ParamRefParameterNotFoundAction- , "selector" .= v1beta1ParamRefSelector- ]----- | Construct a value of type 'V1beta1ParamRef' (by applying it's required fields, if any)-mkV1beta1ParamRef- :: V1beta1ParamRef-mkV1beta1ParamRef =- V1beta1ParamRef- { v1beta1ParamRefName = Nothing- , v1beta1ParamRefNamespace = Nothing- , v1beta1ParamRefParameterNotFoundAction = Nothing- , v1beta1ParamRefSelector = Nothing- }---- ** V1beta1ParentReference--- | V1beta1ParentReference--- ParentReference describes a reference to a parent object.-data V1beta1ParentReference = V1beta1ParentReference- { v1beta1ParentReferenceGroup :: !(Maybe Text) -- ^ "group" - Group is the group of the object being referenced.- , v1beta1ParentReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of the object being referenced.- , v1beta1ParentReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the object being referenced.- , v1beta1ParentReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the resource of the object being referenced.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ParentReference-instance A.FromJSON V1beta1ParentReference where- parseJSON = A.withObject "V1beta1ParentReference" $ \o ->- V1beta1ParentReference- <$> (o .:? "group")- <*> (o .: "name")- <*> (o .:? "namespace")- <*> (o .: "resource")---- | ToJSON V1beta1ParentReference-instance A.ToJSON V1beta1ParentReference where- toJSON V1beta1ParentReference {..} =- _omitNulls- [ "group" .= v1beta1ParentReferenceGroup- , "name" .= v1beta1ParentReferenceName- , "namespace" .= v1beta1ParentReferenceNamespace- , "resource" .= v1beta1ParentReferenceResource- ]----- | Construct a value of type 'V1beta1ParentReference' (by applying it's required fields, if any)-mkV1beta1ParentReference- :: Text -- ^ 'v1beta1ParentReferenceName': Name is the name of the object being referenced.- -> Text -- ^ 'v1beta1ParentReferenceResource': Resource is the resource of the object being referenced.- -> V1beta1ParentReference-mkV1beta1ParentReference v1beta1ParentReferenceName v1beta1ParentReferenceResource =- V1beta1ParentReference- { v1beta1ParentReferenceGroup = Nothing- , v1beta1ParentReferenceName- , v1beta1ParentReferenceNamespace = Nothing- , v1beta1ParentReferenceResource- }---- ** V1beta1ResourceClaim--- | V1beta1ResourceClaim--- 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.-data V1beta1ResourceClaim = V1beta1ResourceClaim- { v1beta1ResourceClaimApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ResourceClaimKind :: !(Maybe Text) -- ^ "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- , v1beta1ResourceClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1ResourceClaimSpec :: !(V1beta1ResourceClaimSpec) -- ^ /Required/ "spec"- , v1beta1ResourceClaimStatus :: !(Maybe V1beta1ResourceClaimStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceClaim-instance A.FromJSON V1beta1ResourceClaim where- parseJSON = A.withObject "V1beta1ResourceClaim" $ \o ->- V1beta1ResourceClaim- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1beta1ResourceClaim-instance A.ToJSON V1beta1ResourceClaim where- toJSON V1beta1ResourceClaim {..} =- _omitNulls- [ "apiVersion" .= v1beta1ResourceClaimApiVersion- , "kind" .= v1beta1ResourceClaimKind- , "metadata" .= v1beta1ResourceClaimMetadata- , "spec" .= v1beta1ResourceClaimSpec- , "status" .= v1beta1ResourceClaimStatus- ]----- | Construct a value of type 'V1beta1ResourceClaim' (by applying it's required fields, if any)-mkV1beta1ResourceClaim- :: V1beta1ResourceClaimSpec -- ^ 'v1beta1ResourceClaimSpec' - -> V1beta1ResourceClaim-mkV1beta1ResourceClaim v1beta1ResourceClaimSpec =- V1beta1ResourceClaim- { v1beta1ResourceClaimApiVersion = Nothing- , v1beta1ResourceClaimKind = Nothing- , v1beta1ResourceClaimMetadata = Nothing- , v1beta1ResourceClaimSpec- , v1beta1ResourceClaimStatus = Nothing- }---- ** V1beta1ResourceClaimConsumerReference--- | V1beta1ResourceClaimConsumerReference--- 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.-data V1beta1ResourceClaimConsumerReference = V1beta1ResourceClaimConsumerReference- { v1beta1ResourceClaimConsumerReferenceApiGroup :: !(Maybe Text) -- ^ "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.- , v1beta1ResourceClaimConsumerReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced.- , v1beta1ResourceClaimConsumerReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the type of resource being referenced, for example \"pods\".- , v1beta1ResourceClaimConsumerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID identifies exactly one incarnation of the resource.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceClaimConsumerReference-instance A.FromJSON V1beta1ResourceClaimConsumerReference where- parseJSON = A.withObject "V1beta1ResourceClaimConsumerReference" $ \o ->- V1beta1ResourceClaimConsumerReference- <$> (o .:? "apiGroup")- <*> (o .: "name")- <*> (o .: "resource")- <*> (o .: "uid")---- | ToJSON V1beta1ResourceClaimConsumerReference-instance A.ToJSON V1beta1ResourceClaimConsumerReference where- toJSON V1beta1ResourceClaimConsumerReference {..} =- _omitNulls- [ "apiGroup" .= v1beta1ResourceClaimConsumerReferenceApiGroup- , "name" .= v1beta1ResourceClaimConsumerReferenceName- , "resource" .= v1beta1ResourceClaimConsumerReferenceResource- , "uid" .= v1beta1ResourceClaimConsumerReferenceUid- ]----- | Construct a value of type 'V1beta1ResourceClaimConsumerReference' (by applying it's required fields, if any)-mkV1beta1ResourceClaimConsumerReference- :: Text -- ^ 'v1beta1ResourceClaimConsumerReferenceName': Name is the name of resource being referenced.- -> Text -- ^ 'v1beta1ResourceClaimConsumerReferenceResource': Resource is the type of resource being referenced, for example \"pods\".- -> Text -- ^ 'v1beta1ResourceClaimConsumerReferenceUid': UID identifies exactly one incarnation of the resource.- -> V1beta1ResourceClaimConsumerReference-mkV1beta1ResourceClaimConsumerReference v1beta1ResourceClaimConsumerReferenceName v1beta1ResourceClaimConsumerReferenceResource v1beta1ResourceClaimConsumerReferenceUid =- V1beta1ResourceClaimConsumerReference- { v1beta1ResourceClaimConsumerReferenceApiGroup = Nothing- , v1beta1ResourceClaimConsumerReferenceName- , v1beta1ResourceClaimConsumerReferenceResource- , v1beta1ResourceClaimConsumerReferenceUid- }---- ** V1beta1ResourceClaimList--- | V1beta1ResourceClaimList--- ResourceClaimList is a collection of claims.-data V1beta1ResourceClaimList = V1beta1ResourceClaimList- { v1beta1ResourceClaimListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ResourceClaimListItems :: !([V1beta1ResourceClaim]) -- ^ /Required/ "items" - Items is the list of resource claims.- , v1beta1ResourceClaimListKind :: !(Maybe Text) -- ^ "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- , v1beta1ResourceClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceClaimList-instance A.FromJSON V1beta1ResourceClaimList where- parseJSON = A.withObject "V1beta1ResourceClaimList" $ \o ->- V1beta1ResourceClaimList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1ResourceClaimList-instance A.ToJSON V1beta1ResourceClaimList where- toJSON V1beta1ResourceClaimList {..} =- _omitNulls- [ "apiVersion" .= v1beta1ResourceClaimListApiVersion- , "items" .= v1beta1ResourceClaimListItems- , "kind" .= v1beta1ResourceClaimListKind- , "metadata" .= v1beta1ResourceClaimListMetadata- ]----- | Construct a value of type 'V1beta1ResourceClaimList' (by applying it's required fields, if any)-mkV1beta1ResourceClaimList- :: [V1beta1ResourceClaim] -- ^ 'v1beta1ResourceClaimListItems': Items is the list of resource claims.- -> V1beta1ResourceClaimList-mkV1beta1ResourceClaimList v1beta1ResourceClaimListItems =- V1beta1ResourceClaimList- { v1beta1ResourceClaimListApiVersion = Nothing- , v1beta1ResourceClaimListItems- , v1beta1ResourceClaimListKind = Nothing- , v1beta1ResourceClaimListMetadata = Nothing- }---- ** V1beta1ResourceClaimSpec--- | V1beta1ResourceClaimSpec--- ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.-data V1beta1ResourceClaimSpec = V1beta1ResourceClaimSpec- { v1beta1ResourceClaimSpecDevices :: !(Maybe V1beta1DeviceClaim) -- ^ "devices"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceClaimSpec-instance A.FromJSON V1beta1ResourceClaimSpec where- parseJSON = A.withObject "V1beta1ResourceClaimSpec" $ \o ->- V1beta1ResourceClaimSpec- <$> (o .:? "devices")---- | ToJSON V1beta1ResourceClaimSpec-instance A.ToJSON V1beta1ResourceClaimSpec where- toJSON V1beta1ResourceClaimSpec {..} =- _omitNulls- [ "devices" .= v1beta1ResourceClaimSpecDevices- ]----- | Construct a value of type 'V1beta1ResourceClaimSpec' (by applying it's required fields, if any)-mkV1beta1ResourceClaimSpec- :: V1beta1ResourceClaimSpec-mkV1beta1ResourceClaimSpec =- V1beta1ResourceClaimSpec- { v1beta1ResourceClaimSpecDevices = Nothing- }---- ** V1beta1ResourceClaimStatus--- | V1beta1ResourceClaimStatus--- ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.-data V1beta1ResourceClaimStatus = V1beta1ResourceClaimStatus- { v1beta1ResourceClaimStatusAllocation :: !(Maybe V1beta1AllocationResult) -- ^ "allocation"- , v1beta1ResourceClaimStatusDevices :: !(Maybe [V1beta1AllocatedDeviceStatus]) -- ^ "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.- , v1beta1ResourceClaimStatusReservedFor :: !(Maybe [V1beta1ResourceClaimConsumerReference]) -- ^ "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 256 such reservations. This may get increased in the future, but not reduced.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceClaimStatus-instance A.FromJSON V1beta1ResourceClaimStatus where- parseJSON = A.withObject "V1beta1ResourceClaimStatus" $ \o ->- V1beta1ResourceClaimStatus- <$> (o .:? "allocation")- <*> (o .:? "devices")- <*> (o .:? "reservedFor")---- | ToJSON V1beta1ResourceClaimStatus-instance A.ToJSON V1beta1ResourceClaimStatus where- toJSON V1beta1ResourceClaimStatus {..} =- _omitNulls- [ "allocation" .= v1beta1ResourceClaimStatusAllocation- , "devices" .= v1beta1ResourceClaimStatusDevices- , "reservedFor" .= v1beta1ResourceClaimStatusReservedFor- ]----- | Construct a value of type 'V1beta1ResourceClaimStatus' (by applying it's required fields, if any)-mkV1beta1ResourceClaimStatus- :: V1beta1ResourceClaimStatus-mkV1beta1ResourceClaimStatus =- V1beta1ResourceClaimStatus- { v1beta1ResourceClaimStatusAllocation = Nothing- , v1beta1ResourceClaimStatusDevices = Nothing- , v1beta1ResourceClaimStatusReservedFor = Nothing- }---- ** V1beta1ResourceClaimTemplate--- | V1beta1ResourceClaimTemplate--- ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.-data V1beta1ResourceClaimTemplate = V1beta1ResourceClaimTemplate- { v1beta1ResourceClaimTemplateApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ResourceClaimTemplateKind :: !(Maybe Text) -- ^ "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- , v1beta1ResourceClaimTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1ResourceClaimTemplateSpec :: !(V1beta1ResourceClaimTemplateSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceClaimTemplate-instance A.FromJSON V1beta1ResourceClaimTemplate where- parseJSON = A.withObject "V1beta1ResourceClaimTemplate" $ \o ->- V1beta1ResourceClaimTemplate- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta1ResourceClaimTemplate-instance A.ToJSON V1beta1ResourceClaimTemplate where- toJSON V1beta1ResourceClaimTemplate {..} =- _omitNulls- [ "apiVersion" .= v1beta1ResourceClaimTemplateApiVersion- , "kind" .= v1beta1ResourceClaimTemplateKind- , "metadata" .= v1beta1ResourceClaimTemplateMetadata- , "spec" .= v1beta1ResourceClaimTemplateSpec- ]----- | Construct a value of type 'V1beta1ResourceClaimTemplate' (by applying it's required fields, if any)-mkV1beta1ResourceClaimTemplate- :: V1beta1ResourceClaimTemplateSpec -- ^ 'v1beta1ResourceClaimTemplateSpec' - -> V1beta1ResourceClaimTemplate-mkV1beta1ResourceClaimTemplate v1beta1ResourceClaimTemplateSpec =- V1beta1ResourceClaimTemplate- { v1beta1ResourceClaimTemplateApiVersion = Nothing- , v1beta1ResourceClaimTemplateKind = Nothing- , v1beta1ResourceClaimTemplateMetadata = Nothing- , v1beta1ResourceClaimTemplateSpec- }---- ** V1beta1ResourceClaimTemplateList--- | V1beta1ResourceClaimTemplateList--- ResourceClaimTemplateList is a collection of claim templates.-data V1beta1ResourceClaimTemplateList = V1beta1ResourceClaimTemplateList- { v1beta1ResourceClaimTemplateListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ResourceClaimTemplateListItems :: !([V1beta1ResourceClaimTemplate]) -- ^ /Required/ "items" - Items is the list of resource claim templates.- , v1beta1ResourceClaimTemplateListKind :: !(Maybe Text) -- ^ "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- , v1beta1ResourceClaimTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceClaimTemplateList-instance A.FromJSON V1beta1ResourceClaimTemplateList where- parseJSON = A.withObject "V1beta1ResourceClaimTemplateList" $ \o ->- V1beta1ResourceClaimTemplateList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1ResourceClaimTemplateList-instance A.ToJSON V1beta1ResourceClaimTemplateList where- toJSON V1beta1ResourceClaimTemplateList {..} =- _omitNulls- [ "apiVersion" .= v1beta1ResourceClaimTemplateListApiVersion- , "items" .= v1beta1ResourceClaimTemplateListItems- , "kind" .= v1beta1ResourceClaimTemplateListKind- , "metadata" .= v1beta1ResourceClaimTemplateListMetadata- ]----- | Construct a value of type 'V1beta1ResourceClaimTemplateList' (by applying it's required fields, if any)-mkV1beta1ResourceClaimTemplateList- :: [V1beta1ResourceClaimTemplate] -- ^ 'v1beta1ResourceClaimTemplateListItems': Items is the list of resource claim templates.- -> V1beta1ResourceClaimTemplateList-mkV1beta1ResourceClaimTemplateList v1beta1ResourceClaimTemplateListItems =- V1beta1ResourceClaimTemplateList- { v1beta1ResourceClaimTemplateListApiVersion = Nothing- , v1beta1ResourceClaimTemplateListItems- , v1beta1ResourceClaimTemplateListKind = Nothing- , v1beta1ResourceClaimTemplateListMetadata = Nothing- }---- ** V1beta1ResourceClaimTemplateSpec--- | V1beta1ResourceClaimTemplateSpec--- ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.-data V1beta1ResourceClaimTemplateSpec = V1beta1ResourceClaimTemplateSpec- { v1beta1ResourceClaimTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1ResourceClaimTemplateSpecSpec :: !(V1beta1ResourceClaimSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceClaimTemplateSpec-instance A.FromJSON V1beta1ResourceClaimTemplateSpec where- parseJSON = A.withObject "V1beta1ResourceClaimTemplateSpec" $ \o ->- V1beta1ResourceClaimTemplateSpec- <$> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta1ResourceClaimTemplateSpec-instance A.ToJSON V1beta1ResourceClaimTemplateSpec where- toJSON V1beta1ResourceClaimTemplateSpec {..} =- _omitNulls- [ "metadata" .= v1beta1ResourceClaimTemplateSpecMetadata- , "spec" .= v1beta1ResourceClaimTemplateSpecSpec- ]----- | Construct a value of type 'V1beta1ResourceClaimTemplateSpec' (by applying it's required fields, if any)-mkV1beta1ResourceClaimTemplateSpec- :: V1beta1ResourceClaimSpec -- ^ 'v1beta1ResourceClaimTemplateSpecSpec' - -> V1beta1ResourceClaimTemplateSpec-mkV1beta1ResourceClaimTemplateSpec v1beta1ResourceClaimTemplateSpecSpec =- V1beta1ResourceClaimTemplateSpec- { v1beta1ResourceClaimTemplateSpecMetadata = Nothing- , v1beta1ResourceClaimTemplateSpecSpec- }---- ** V1beta1ResourcePool--- | V1beta1ResourcePool--- ResourcePool describes the pool that ResourceSlices belong to.-data V1beta1ResourcePool = V1beta1ResourcePool- { v1beta1ResourcePoolGeneration :: !(Integer) -- ^ /Required/ "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.- , v1beta1ResourcePoolName :: !(Text) -- ^ /Required/ "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.- , v1beta1ResourcePoolResourceSliceCount :: !(Integer) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourcePool-instance A.FromJSON V1beta1ResourcePool where- parseJSON = A.withObject "V1beta1ResourcePool" $ \o ->- V1beta1ResourcePool- <$> (o .: "generation")- <*> (o .: "name")- <*> (o .: "resourceSliceCount")---- | ToJSON V1beta1ResourcePool-instance A.ToJSON V1beta1ResourcePool where- toJSON V1beta1ResourcePool {..} =- _omitNulls- [ "generation" .= v1beta1ResourcePoolGeneration- , "name" .= v1beta1ResourcePoolName- , "resourceSliceCount" .= v1beta1ResourcePoolResourceSliceCount- ]----- | Construct a value of type 'V1beta1ResourcePool' (by applying it's required fields, if any)-mkV1beta1ResourcePool- :: Integer -- ^ 'v1beta1ResourcePoolGeneration': 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.- -> Text -- ^ 'v1beta1ResourcePoolName': 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.- -> Integer -- ^ 'v1beta1ResourcePoolResourceSliceCount': 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.- -> V1beta1ResourcePool-mkV1beta1ResourcePool v1beta1ResourcePoolGeneration v1beta1ResourcePoolName v1beta1ResourcePoolResourceSliceCount =- V1beta1ResourcePool- { v1beta1ResourcePoolGeneration- , v1beta1ResourcePoolName- , v1beta1ResourcePoolResourceSliceCount- }---- ** V1beta1ResourceSlice--- | V1beta1ResourceSlice--- 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.-data V1beta1ResourceSlice = V1beta1ResourceSlice- { v1beta1ResourceSliceApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ResourceSliceKind :: !(Maybe Text) -- ^ "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- , v1beta1ResourceSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1ResourceSliceSpec :: !(V1beta1ResourceSliceSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceSlice-instance A.FromJSON V1beta1ResourceSlice where- parseJSON = A.withObject "V1beta1ResourceSlice" $ \o ->- V1beta1ResourceSlice- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta1ResourceSlice-instance A.ToJSON V1beta1ResourceSlice where- toJSON V1beta1ResourceSlice {..} =- _omitNulls- [ "apiVersion" .= v1beta1ResourceSliceApiVersion- , "kind" .= v1beta1ResourceSliceKind- , "metadata" .= v1beta1ResourceSliceMetadata- , "spec" .= v1beta1ResourceSliceSpec- ]----- | Construct a value of type 'V1beta1ResourceSlice' (by applying it's required fields, if any)-mkV1beta1ResourceSlice- :: V1beta1ResourceSliceSpec -- ^ 'v1beta1ResourceSliceSpec' - -> V1beta1ResourceSlice-mkV1beta1ResourceSlice v1beta1ResourceSliceSpec =- V1beta1ResourceSlice- { v1beta1ResourceSliceApiVersion = Nothing- , v1beta1ResourceSliceKind = Nothing- , v1beta1ResourceSliceMetadata = Nothing- , v1beta1ResourceSliceSpec- }---- ** V1beta1ResourceSliceList--- | V1beta1ResourceSliceList--- ResourceSliceList is a collection of ResourceSlices.-data V1beta1ResourceSliceList = V1beta1ResourceSliceList- { v1beta1ResourceSliceListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ResourceSliceListItems :: !([V1beta1ResourceSlice]) -- ^ /Required/ "items" - Items is the list of resource ResourceSlices.- , v1beta1ResourceSliceListKind :: !(Maybe Text) -- ^ "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- , v1beta1ResourceSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceSliceList-instance A.FromJSON V1beta1ResourceSliceList where- parseJSON = A.withObject "V1beta1ResourceSliceList" $ \o ->- V1beta1ResourceSliceList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1ResourceSliceList-instance A.ToJSON V1beta1ResourceSliceList where- toJSON V1beta1ResourceSliceList {..} =- _omitNulls- [ "apiVersion" .= v1beta1ResourceSliceListApiVersion- , "items" .= v1beta1ResourceSliceListItems- , "kind" .= v1beta1ResourceSliceListKind- , "metadata" .= v1beta1ResourceSliceListMetadata- ]----- | Construct a value of type 'V1beta1ResourceSliceList' (by applying it's required fields, if any)-mkV1beta1ResourceSliceList- :: [V1beta1ResourceSlice] -- ^ 'v1beta1ResourceSliceListItems': Items is the list of resource ResourceSlices.- -> V1beta1ResourceSliceList-mkV1beta1ResourceSliceList v1beta1ResourceSliceListItems =- V1beta1ResourceSliceList- { v1beta1ResourceSliceListApiVersion = Nothing- , v1beta1ResourceSliceListItems- , v1beta1ResourceSliceListKind = Nothing- , v1beta1ResourceSliceListMetadata = Nothing- }---- ** V1beta1ResourceSliceSpec--- | V1beta1ResourceSliceSpec--- ResourceSliceSpec contains the information published by the driver in one ResourceSlice.-data V1beta1ResourceSliceSpec = V1beta1ResourceSliceSpec- { v1beta1ResourceSliceSpecAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the resources in the pool. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.- , v1beta1ResourceSliceSpecDevices :: !(Maybe [V1beta1Device]) -- ^ "devices" - Devices lists some or all of the devices in this pool. Must not have more than 128 entries.- , v1beta1ResourceSliceSpecDriver :: !(Text) -- ^ /Required/ "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.- , v1beta1ResourceSliceSpecNodeName :: !(Maybe Text) -- ^ "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, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.- , v1beta1ResourceSliceSpecNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- , v1beta1ResourceSliceSpecPerDeviceNodeSelection :: !(Maybe Bool) -- ^ "perDeviceNodeSelection" - PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.- , v1beta1ResourceSliceSpecPool :: !(V1beta1ResourcePool) -- ^ /Required/ "pool"- , v1beta1ResourceSliceSpecSharedCounters :: !(Maybe [V1beta1CounterSet]) -- ^ "sharedCounters" - SharedCounters defines a list of counter sets, each of which has a name and a list of counters available. The names of the SharedCounters must be unique in the ResourceSlice. The maximum number of SharedCounters is 32.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ResourceSliceSpec-instance A.FromJSON V1beta1ResourceSliceSpec where- parseJSON = A.withObject "V1beta1ResourceSliceSpec" $ \o ->- V1beta1ResourceSliceSpec- <$> (o .:? "allNodes")- <*> (o .:? "devices")- <*> (o .: "driver")- <*> (o .:? "nodeName")- <*> (o .:? "nodeSelector")- <*> (o .:? "perDeviceNodeSelection")- <*> (o .: "pool")- <*> (o .:? "sharedCounters")---- | ToJSON V1beta1ResourceSliceSpec-instance A.ToJSON V1beta1ResourceSliceSpec where- toJSON V1beta1ResourceSliceSpec {..} =- _omitNulls- [ "allNodes" .= v1beta1ResourceSliceSpecAllNodes- , "devices" .= v1beta1ResourceSliceSpecDevices- , "driver" .= v1beta1ResourceSliceSpecDriver- , "nodeName" .= v1beta1ResourceSliceSpecNodeName- , "nodeSelector" .= v1beta1ResourceSliceSpecNodeSelector- , "perDeviceNodeSelection" .= v1beta1ResourceSliceSpecPerDeviceNodeSelection- , "pool" .= v1beta1ResourceSliceSpecPool- , "sharedCounters" .= v1beta1ResourceSliceSpecSharedCounters- ]----- | Construct a value of type 'V1beta1ResourceSliceSpec' (by applying it's required fields, if any)-mkV1beta1ResourceSliceSpec- :: Text -- ^ 'v1beta1ResourceSliceSpecDriver': 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.- -> V1beta1ResourcePool -- ^ 'v1beta1ResourceSliceSpecPool' - -> V1beta1ResourceSliceSpec-mkV1beta1ResourceSliceSpec v1beta1ResourceSliceSpecDriver v1beta1ResourceSliceSpecPool =- V1beta1ResourceSliceSpec- { v1beta1ResourceSliceSpecAllNodes = Nothing- , v1beta1ResourceSliceSpecDevices = Nothing- , v1beta1ResourceSliceSpecDriver- , v1beta1ResourceSliceSpecNodeName = Nothing- , v1beta1ResourceSliceSpecNodeSelector = Nothing- , v1beta1ResourceSliceSpecPerDeviceNodeSelection = Nothing- , v1beta1ResourceSliceSpecPool- , v1beta1ResourceSliceSpecSharedCounters = Nothing- }---- ** V1beta1ServiceCIDR--- | V1beta1ServiceCIDR--- ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.-data V1beta1ServiceCIDR = V1beta1ServiceCIDR- { v1beta1ServiceCIDRApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ServiceCIDRKind :: !(Maybe Text) -- ^ "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- , v1beta1ServiceCIDRMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1ServiceCIDRSpec :: !(Maybe V1beta1ServiceCIDRSpec) -- ^ "spec"- , v1beta1ServiceCIDRStatus :: !(Maybe V1beta1ServiceCIDRStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ServiceCIDR-instance A.FromJSON V1beta1ServiceCIDR where- parseJSON = A.withObject "V1beta1ServiceCIDR" $ \o ->- V1beta1ServiceCIDR- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "spec")- <*> (o .:? "status")---- | ToJSON V1beta1ServiceCIDR-instance A.ToJSON V1beta1ServiceCIDR where- toJSON V1beta1ServiceCIDR {..} =- _omitNulls- [ "apiVersion" .= v1beta1ServiceCIDRApiVersion- , "kind" .= v1beta1ServiceCIDRKind- , "metadata" .= v1beta1ServiceCIDRMetadata- , "spec" .= v1beta1ServiceCIDRSpec- , "status" .= v1beta1ServiceCIDRStatus- ]----- | Construct a value of type 'V1beta1ServiceCIDR' (by applying it's required fields, if any)-mkV1beta1ServiceCIDR- :: V1beta1ServiceCIDR-mkV1beta1ServiceCIDR =- V1beta1ServiceCIDR- { v1beta1ServiceCIDRApiVersion = Nothing- , v1beta1ServiceCIDRKind = Nothing- , v1beta1ServiceCIDRMetadata = Nothing- , v1beta1ServiceCIDRSpec = Nothing- , v1beta1ServiceCIDRStatus = Nothing- }---- ** V1beta1ServiceCIDRList--- | V1beta1ServiceCIDRList--- ServiceCIDRList contains a list of ServiceCIDR objects.-data V1beta1ServiceCIDRList = V1beta1ServiceCIDRList- { v1beta1ServiceCIDRListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1ServiceCIDRListItems :: !([V1beta1ServiceCIDR]) -- ^ /Required/ "items" - items is the list of ServiceCIDRs.- , v1beta1ServiceCIDRListKind :: !(Maybe Text) -- ^ "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- , v1beta1ServiceCIDRListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ServiceCIDRList-instance A.FromJSON V1beta1ServiceCIDRList where- parseJSON = A.withObject "V1beta1ServiceCIDRList" $ \o ->- V1beta1ServiceCIDRList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1ServiceCIDRList-instance A.ToJSON V1beta1ServiceCIDRList where- toJSON V1beta1ServiceCIDRList {..} =- _omitNulls- [ "apiVersion" .= v1beta1ServiceCIDRListApiVersion- , "items" .= v1beta1ServiceCIDRListItems- , "kind" .= v1beta1ServiceCIDRListKind- , "metadata" .= v1beta1ServiceCIDRListMetadata- ]----- | Construct a value of type 'V1beta1ServiceCIDRList' (by applying it's required fields, if any)-mkV1beta1ServiceCIDRList- :: [V1beta1ServiceCIDR] -- ^ 'v1beta1ServiceCIDRListItems': items is the list of ServiceCIDRs.- -> V1beta1ServiceCIDRList-mkV1beta1ServiceCIDRList v1beta1ServiceCIDRListItems =- V1beta1ServiceCIDRList- { v1beta1ServiceCIDRListApiVersion = Nothing- , v1beta1ServiceCIDRListItems- , v1beta1ServiceCIDRListKind = Nothing- , v1beta1ServiceCIDRListMetadata = Nothing- }---- ** V1beta1ServiceCIDRSpec--- | V1beta1ServiceCIDRSpec--- ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.-data V1beta1ServiceCIDRSpec = V1beta1ServiceCIDRSpec- { v1beta1ServiceCIDRSpecCidrs :: !(Maybe [Text]) -- ^ "cidrs" - CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ServiceCIDRSpec-instance A.FromJSON V1beta1ServiceCIDRSpec where- parseJSON = A.withObject "V1beta1ServiceCIDRSpec" $ \o ->- V1beta1ServiceCIDRSpec- <$> (o .:? "cidrs")---- | ToJSON V1beta1ServiceCIDRSpec-instance A.ToJSON V1beta1ServiceCIDRSpec where- toJSON V1beta1ServiceCIDRSpec {..} =- _omitNulls- [ "cidrs" .= v1beta1ServiceCIDRSpecCidrs- ]----- | Construct a value of type 'V1beta1ServiceCIDRSpec' (by applying it's required fields, if any)-mkV1beta1ServiceCIDRSpec- :: V1beta1ServiceCIDRSpec-mkV1beta1ServiceCIDRSpec =- V1beta1ServiceCIDRSpec- { v1beta1ServiceCIDRSpecCidrs = Nothing- }---- ** V1beta1ServiceCIDRStatus--- | V1beta1ServiceCIDRStatus--- ServiceCIDRStatus describes the current state of the ServiceCIDR.-data V1beta1ServiceCIDRStatus = V1beta1ServiceCIDRStatus- { v1beta1ServiceCIDRStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1ServiceCIDRStatus-instance A.FromJSON V1beta1ServiceCIDRStatus where- parseJSON = A.withObject "V1beta1ServiceCIDRStatus" $ \o ->- V1beta1ServiceCIDRStatus- <$> (o .:? "conditions")---- | ToJSON V1beta1ServiceCIDRStatus-instance A.ToJSON V1beta1ServiceCIDRStatus where- toJSON V1beta1ServiceCIDRStatus {..} =- _omitNulls- [ "conditions" .= v1beta1ServiceCIDRStatusConditions- ]----- | Construct a value of type 'V1beta1ServiceCIDRStatus' (by applying it's required fields, if any)-mkV1beta1ServiceCIDRStatus- :: V1beta1ServiceCIDRStatus-mkV1beta1ServiceCIDRStatus =- V1beta1ServiceCIDRStatus- { v1beta1ServiceCIDRStatusConditions = Nothing- }---- ** V1beta1Variable--- | V1beta1Variable--- Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.-data V1beta1Variable = V1beta1Variable- { v1beta1VariableExpression :: !(Text) -- ^ /Required/ "expression" - Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.- , v1beta1VariableName :: !(Text) -- ^ /Required/ "name" - Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1Variable-instance A.FromJSON V1beta1Variable where- parseJSON = A.withObject "V1beta1Variable" $ \o ->- V1beta1Variable- <$> (o .: "expression")- <*> (o .: "name")---- | ToJSON V1beta1Variable-instance A.ToJSON V1beta1Variable where- toJSON V1beta1Variable {..} =- _omitNulls- [ "expression" .= v1beta1VariableExpression- , "name" .= v1beta1VariableName- ]----- | Construct a value of type 'V1beta1Variable' (by applying it's required fields, if any)-mkV1beta1Variable- :: Text -- ^ 'v1beta1VariableExpression': Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.- -> Text -- ^ 'v1beta1VariableName': Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`- -> V1beta1Variable-mkV1beta1Variable v1beta1VariableExpression v1beta1VariableName =- V1beta1Variable- { v1beta1VariableExpression- , v1beta1VariableName- }---- ** V1beta1VolumeAttributesClass--- | V1beta1VolumeAttributesClass--- VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.-data V1beta1VolumeAttributesClass = V1beta1VolumeAttributesClass- { v1beta1VolumeAttributesClassApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1VolumeAttributesClassDriverName :: !(Text) -- ^ /Required/ "driverName" - Name of the CSI driver This field is immutable.- , v1beta1VolumeAttributesClassKind :: !(Maybe Text) -- ^ "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- , v1beta1VolumeAttributesClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta1VolumeAttributesClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass. This field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the modifyVolumeStatus field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1VolumeAttributesClass-instance A.FromJSON V1beta1VolumeAttributesClass where- parseJSON = A.withObject "V1beta1VolumeAttributesClass" $ \o ->- V1beta1VolumeAttributesClass- <$> (o .:? "apiVersion")- <*> (o .: "driverName")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .:? "parameters")---- | ToJSON V1beta1VolumeAttributesClass-instance A.ToJSON V1beta1VolumeAttributesClass where- toJSON V1beta1VolumeAttributesClass {..} =- _omitNulls- [ "apiVersion" .= v1beta1VolumeAttributesClassApiVersion- , "driverName" .= v1beta1VolumeAttributesClassDriverName- , "kind" .= v1beta1VolumeAttributesClassKind- , "metadata" .= v1beta1VolumeAttributesClassMetadata- , "parameters" .= v1beta1VolumeAttributesClassParameters- ]----- | Construct a value of type 'V1beta1VolumeAttributesClass' (by applying it's required fields, if any)-mkV1beta1VolumeAttributesClass- :: Text -- ^ 'v1beta1VolumeAttributesClassDriverName': Name of the CSI driver This field is immutable.- -> V1beta1VolumeAttributesClass-mkV1beta1VolumeAttributesClass v1beta1VolumeAttributesClassDriverName =- V1beta1VolumeAttributesClass- { v1beta1VolumeAttributesClassApiVersion = Nothing- , v1beta1VolumeAttributesClassDriverName- , v1beta1VolumeAttributesClassKind = Nothing- , v1beta1VolumeAttributesClassMetadata = Nothing- , v1beta1VolumeAttributesClassParameters = Nothing- }---- ** V1beta1VolumeAttributesClassList--- | V1beta1VolumeAttributesClassList--- VolumeAttributesClassList is a collection of VolumeAttributesClass objects.-data V1beta1VolumeAttributesClassList = V1beta1VolumeAttributesClassList- { v1beta1VolumeAttributesClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta1VolumeAttributesClassListItems :: !([V1beta1VolumeAttributesClass]) -- ^ /Required/ "items" - items is the list of VolumeAttributesClass objects.- , v1beta1VolumeAttributesClassListKind :: !(Maybe Text) -- ^ "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- , v1beta1VolumeAttributesClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta1VolumeAttributesClassList-instance A.FromJSON V1beta1VolumeAttributesClassList where- parseJSON = A.withObject "V1beta1VolumeAttributesClassList" $ \o ->- V1beta1VolumeAttributesClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta1VolumeAttributesClassList-instance A.ToJSON V1beta1VolumeAttributesClassList where- toJSON V1beta1VolumeAttributesClassList {..} =- _omitNulls- [ "apiVersion" .= v1beta1VolumeAttributesClassListApiVersion- , "items" .= v1beta1VolumeAttributesClassListItems- , "kind" .= v1beta1VolumeAttributesClassListKind- , "metadata" .= v1beta1VolumeAttributesClassListMetadata- ]----- | Construct a value of type 'V1beta1VolumeAttributesClassList' (by applying it's required fields, if any)-mkV1beta1VolumeAttributesClassList- :: [V1beta1VolumeAttributesClass] -- ^ 'v1beta1VolumeAttributesClassListItems': items is the list of VolumeAttributesClass objects.- -> V1beta1VolumeAttributesClassList-mkV1beta1VolumeAttributesClassList v1beta1VolumeAttributesClassListItems =- V1beta1VolumeAttributesClassList- { v1beta1VolumeAttributesClassListApiVersion = Nothing- , v1beta1VolumeAttributesClassListItems- , v1beta1VolumeAttributesClassListKind = Nothing- , v1beta1VolumeAttributesClassListMetadata = Nothing- }---- ** V1beta2AllocatedDeviceStatus--- | V1beta2AllocatedDeviceStatus--- AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices.-data V1beta2AllocatedDeviceStatus = V1beta2AllocatedDeviceStatus- { v1beta2AllocatedDeviceStatusConditions :: !(Maybe [V1Condition]) -- ^ "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. Must not contain more than 8 entries.- , v1beta2AllocatedDeviceStatusData :: !(Maybe A.Value) -- ^ "data" - Data contains arbitrary driver-specific data. The length of the raw data must be smaller or equal to 10 Ki.- , v1beta2AllocatedDeviceStatusDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- , v1beta2AllocatedDeviceStatusDriver :: !(Text) -- ^ /Required/ "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.- , v1beta2AllocatedDeviceStatusNetworkData :: !(Maybe V1beta2NetworkDeviceData) -- ^ "networkData"- , v1beta2AllocatedDeviceStatusPool :: !(Text) -- ^ /Required/ "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.- , v1beta2AllocatedDeviceStatusShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2AllocatedDeviceStatus-instance A.FromJSON V1beta2AllocatedDeviceStatus where- parseJSON = A.withObject "V1beta2AllocatedDeviceStatus" $ \o ->- V1beta2AllocatedDeviceStatus- <$> (o .:? "conditions")- <*> (o .:? "data")- <*> (o .: "device")- <*> (o .: "driver")- <*> (o .:? "networkData")- <*> (o .: "pool")- <*> (o .:? "shareID")---- | ToJSON V1beta2AllocatedDeviceStatus-instance A.ToJSON V1beta2AllocatedDeviceStatus where- toJSON V1beta2AllocatedDeviceStatus {..} =- _omitNulls- [ "conditions" .= v1beta2AllocatedDeviceStatusConditions- , "data" .= v1beta2AllocatedDeviceStatusData- , "device" .= v1beta2AllocatedDeviceStatusDevice- , "driver" .= v1beta2AllocatedDeviceStatusDriver- , "networkData" .= v1beta2AllocatedDeviceStatusNetworkData- , "pool" .= v1beta2AllocatedDeviceStatusPool- , "shareID" .= v1beta2AllocatedDeviceStatusShareId- ]----- | Construct a value of type 'V1beta2AllocatedDeviceStatus' (by applying it's required fields, if any)-mkV1beta2AllocatedDeviceStatus- :: Text -- ^ 'v1beta2AllocatedDeviceStatusDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- -> Text -- ^ 'v1beta2AllocatedDeviceStatusDriver': 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.- -> Text -- ^ 'v1beta2AllocatedDeviceStatusPool': 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.- -> V1beta2AllocatedDeviceStatus-mkV1beta2AllocatedDeviceStatus v1beta2AllocatedDeviceStatusDevice v1beta2AllocatedDeviceStatusDriver v1beta2AllocatedDeviceStatusPool =- V1beta2AllocatedDeviceStatus- { v1beta2AllocatedDeviceStatusConditions = Nothing- , v1beta2AllocatedDeviceStatusData = Nothing- , v1beta2AllocatedDeviceStatusDevice- , v1beta2AllocatedDeviceStatusDriver- , v1beta2AllocatedDeviceStatusNetworkData = Nothing- , v1beta2AllocatedDeviceStatusPool- , v1beta2AllocatedDeviceStatusShareId = Nothing- }---- ** V1beta2AllocationResult--- | V1beta2AllocationResult--- AllocationResult contains attributes of an allocated resource.-data V1beta2AllocationResult = V1beta2AllocationResult- { v1beta2AllocationResultAllocationTimestamp :: !(Maybe DateTime) -- ^ "allocationTimestamp" - AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate.- , v1beta2AllocationResultDevices :: !(Maybe V1beta2DeviceAllocationResult) -- ^ "devices"- , v1beta2AllocationResultNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2AllocationResult-instance A.FromJSON V1beta2AllocationResult where- parseJSON = A.withObject "V1beta2AllocationResult" $ \o ->- V1beta2AllocationResult- <$> (o .:? "allocationTimestamp")- <*> (o .:? "devices")- <*> (o .:? "nodeSelector")---- | ToJSON V1beta2AllocationResult-instance A.ToJSON V1beta2AllocationResult where- toJSON V1beta2AllocationResult {..} =- _omitNulls- [ "allocationTimestamp" .= v1beta2AllocationResultAllocationTimestamp- , "devices" .= v1beta2AllocationResultDevices- , "nodeSelector" .= v1beta2AllocationResultNodeSelector- ]----- | Construct a value of type 'V1beta2AllocationResult' (by applying it's required fields, if any)-mkV1beta2AllocationResult- :: V1beta2AllocationResult-mkV1beta2AllocationResult =- V1beta2AllocationResult- { v1beta2AllocationResultAllocationTimestamp = Nothing- , v1beta2AllocationResultDevices = Nothing- , v1beta2AllocationResultNodeSelector = Nothing- }---- ** V1beta2CELDeviceSelector--- | V1beta2CELDeviceSelector--- CELDeviceSelector contains a CEL expression for selecting a device.-data V1beta2CELDeviceSelector = V1beta2CELDeviceSelector- { v1beta2CELDeviceSelectorExpression :: !(Text) -- ^ /Required/ "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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2CELDeviceSelector-instance A.FromJSON V1beta2CELDeviceSelector where- parseJSON = A.withObject "V1beta2CELDeviceSelector" $ \o ->- V1beta2CELDeviceSelector- <$> (o .: "expression")---- | ToJSON V1beta2CELDeviceSelector-instance A.ToJSON V1beta2CELDeviceSelector where- toJSON V1beta2CELDeviceSelector {..} =- _omitNulls- [ "expression" .= v1beta2CELDeviceSelectorExpression- ]----- | Construct a value of type 'V1beta2CELDeviceSelector' (by applying it's required fields, if any)-mkV1beta2CELDeviceSelector- :: Text -- ^ 'v1beta2CELDeviceSelectorExpression': 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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.- -> V1beta2CELDeviceSelector-mkV1beta2CELDeviceSelector v1beta2CELDeviceSelectorExpression =- V1beta2CELDeviceSelector- { v1beta2CELDeviceSelectorExpression- }---- ** V1beta2CapacityRequestPolicy--- | V1beta2CapacityRequestPolicy--- CapacityRequestPolicy defines how requests consume device capacity. Must not set more than one ValidRequestValues.-data V1beta2CapacityRequestPolicy = V1beta2CapacityRequestPolicy- { v1beta2CapacityRequestPolicyDefault :: !(Maybe Quantity) -- ^ "default"- , v1beta2CapacityRequestPolicyValidRange :: !(Maybe V1beta2CapacityRequestPolicyRange) -- ^ "validRange"- , v1beta2CapacityRequestPolicyValidValues :: !(Maybe [Quantity]) -- ^ "validValues" - ValidValues defines a set of acceptable quantity values in consuming requests. Must not contain more than 10 entries. Must be sorted in ascending order. If this field is set, Default must be defined and it must be included in ValidValues list. If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≤ max(validValues). If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2CapacityRequestPolicy-instance A.FromJSON V1beta2CapacityRequestPolicy where- parseJSON = A.withObject "V1beta2CapacityRequestPolicy" $ \o ->- V1beta2CapacityRequestPolicy- <$> (o .:? "default")- <*> (o .:? "validRange")- <*> (o .:? "validValues")---- | ToJSON V1beta2CapacityRequestPolicy-instance A.ToJSON V1beta2CapacityRequestPolicy where- toJSON V1beta2CapacityRequestPolicy {..} =- _omitNulls- [ "default" .= v1beta2CapacityRequestPolicyDefault- , "validRange" .= v1beta2CapacityRequestPolicyValidRange- , "validValues" .= v1beta2CapacityRequestPolicyValidValues- ]----- | Construct a value of type 'V1beta2CapacityRequestPolicy' (by applying it's required fields, if any)-mkV1beta2CapacityRequestPolicy- :: V1beta2CapacityRequestPolicy-mkV1beta2CapacityRequestPolicy =- V1beta2CapacityRequestPolicy- { v1beta2CapacityRequestPolicyDefault = Nothing- , v1beta2CapacityRequestPolicyValidRange = Nothing- , v1beta2CapacityRequestPolicyValidValues = Nothing- }---- ** V1beta2CapacityRequestPolicyRange--- | V1beta2CapacityRequestPolicyRange--- CapacityRequestPolicyRange defines a valid range for consumable capacity values. - If the requested amount is less than Min, it is rounded up to the Min value. - If Step is set and the requested amount is between Min and Max but not aligned with Step, it will be rounded up to the next value equal to Min + (n * Step). - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, and the device cannot be allocated.-data V1beta2CapacityRequestPolicyRange = V1beta2CapacityRequestPolicyRange- { v1beta2CapacityRequestPolicyRangeMax :: !(Maybe Quantity) -- ^ "max"- , v1beta2CapacityRequestPolicyRangeMin :: !(Quantity) -- ^ /Required/ "min"- , v1beta2CapacityRequestPolicyRangeStep :: !(Maybe Quantity) -- ^ "step"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2CapacityRequestPolicyRange-instance A.FromJSON V1beta2CapacityRequestPolicyRange where- parseJSON = A.withObject "V1beta2CapacityRequestPolicyRange" $ \o ->- V1beta2CapacityRequestPolicyRange- <$> (o .:? "max")- <*> (o .: "min")- <*> (o .:? "step")---- | ToJSON V1beta2CapacityRequestPolicyRange-instance A.ToJSON V1beta2CapacityRequestPolicyRange where- toJSON V1beta2CapacityRequestPolicyRange {..} =- _omitNulls- [ "max" .= v1beta2CapacityRequestPolicyRangeMax- , "min" .= v1beta2CapacityRequestPolicyRangeMin- , "step" .= v1beta2CapacityRequestPolicyRangeStep- ]----- | Construct a value of type 'V1beta2CapacityRequestPolicyRange' (by applying it's required fields, if any)-mkV1beta2CapacityRequestPolicyRange- :: Quantity -- ^ 'v1beta2CapacityRequestPolicyRangeMin' - -> V1beta2CapacityRequestPolicyRange-mkV1beta2CapacityRequestPolicyRange v1beta2CapacityRequestPolicyRangeMin =- V1beta2CapacityRequestPolicyRange- { v1beta2CapacityRequestPolicyRangeMax = Nothing- , v1beta2CapacityRequestPolicyRangeMin- , v1beta2CapacityRequestPolicyRangeStep = Nothing- }---- ** V1beta2CapacityRequirements--- | V1beta2CapacityRequirements--- CapacityRequirements defines the capacity requirements for a specific device request.-data V1beta2CapacityRequirements = V1beta2CapacityRequirements- { v1beta2CapacityRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[<domain>].<name>.compareTo(quantity(<request quantity>)) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid value—because it exceeds what the requestPolicy allows— the device is considered ineligible for allocation. For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity (i.e., the whole device is claimed). - If a requestPolicy is set, the default consumed capacity is determined according to that policy. If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2CapacityRequirements-instance A.FromJSON V1beta2CapacityRequirements where- parseJSON = A.withObject "V1beta2CapacityRequirements" $ \o ->- V1beta2CapacityRequirements- <$> (o .:? "requests")---- | ToJSON V1beta2CapacityRequirements-instance A.ToJSON V1beta2CapacityRequirements where- toJSON V1beta2CapacityRequirements {..} =- _omitNulls- [ "requests" .= v1beta2CapacityRequirementsRequests- ]----- | Construct a value of type 'V1beta2CapacityRequirements' (by applying it's required fields, if any)-mkV1beta2CapacityRequirements- :: V1beta2CapacityRequirements-mkV1beta2CapacityRequirements =- V1beta2CapacityRequirements- { v1beta2CapacityRequirementsRequests = Nothing- }---- ** V1beta2Counter--- | V1beta2Counter--- Counter describes a quantity associated with a device.-data V1beta2Counter = V1beta2Counter- { v1beta2CounterValue :: !(Quantity) -- ^ /Required/ "value"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2Counter-instance A.FromJSON V1beta2Counter where- parseJSON = A.withObject "V1beta2Counter" $ \o ->- V1beta2Counter- <$> (o .: "value")---- | ToJSON V1beta2Counter-instance A.ToJSON V1beta2Counter where- toJSON V1beta2Counter {..} =- _omitNulls- [ "value" .= v1beta2CounterValue- ]----- | Construct a value of type 'V1beta2Counter' (by applying it's required fields, if any)-mkV1beta2Counter- :: Quantity -- ^ 'v1beta2CounterValue' - -> V1beta2Counter-mkV1beta2Counter v1beta2CounterValue =- V1beta2Counter- { v1beta2CounterValue- }---- ** V1beta2CounterSet--- | V1beta2CounterSet--- CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.-data V1beta2CounterSet = V1beta2CounterSet- { v1beta2CounterSetCounters :: !((Map.Map String V1beta2Counter)) -- ^ /Required/ "counters" - Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters in all sets is 32.- , v1beta2CounterSetName :: !(Text) -- ^ /Required/ "name" - Name defines the name of the counter set. It must be a DNS label.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2CounterSet-instance A.FromJSON V1beta2CounterSet where- parseJSON = A.withObject "V1beta2CounterSet" $ \o ->- V1beta2CounterSet- <$> (o .: "counters")- <*> (o .: "name")---- | ToJSON V1beta2CounterSet-instance A.ToJSON V1beta2CounterSet where- toJSON V1beta2CounterSet {..} =- _omitNulls- [ "counters" .= v1beta2CounterSetCounters- , "name" .= v1beta2CounterSetName- ]----- | Construct a value of type 'V1beta2CounterSet' (by applying it's required fields, if any)-mkV1beta2CounterSet- :: (Map.Map String V1beta2Counter) -- ^ 'v1beta2CounterSetCounters': Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters in all sets is 32.- -> Text -- ^ 'v1beta2CounterSetName': Name defines the name of the counter set. It must be a DNS label.- -> V1beta2CounterSet-mkV1beta2CounterSet v1beta2CounterSetCounters v1beta2CounterSetName =- V1beta2CounterSet- { v1beta2CounterSetCounters- , v1beta2CounterSetName- }---- ** V1beta2Device--- | V1beta2Device--- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.-data V1beta2Device = V1beta2Device- { v1beta2DeviceAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the device. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.- , v1beta2DeviceAllowMultipleAllocations :: !(Maybe Bool) -- ^ "allowMultipleAllocations" - AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.- , v1beta2DeviceAttributes :: !(Maybe (Map.Map String V1beta2DeviceAttribute)) -- ^ "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.- , v1beta2DeviceBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. The maximum number of binding conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta2DeviceBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to \"True\", a binding failure occurred. The maximum number of binding failure conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta2DeviceBindsToNode :: !(Maybe Bool) -- ^ "bindsToNode" - BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta2DeviceCapacity :: !(Maybe (Map.Map String V1beta2DeviceCapacity)) -- ^ "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.- , v1beta2DeviceConsumesCounters :: !(Maybe [V1beta2DeviceCounterConsumption]) -- ^ "consumesCounters" - ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. There can only be a single entry per counterSet. The total number of device counter consumption entries must be <= 32. In addition, the total number in the entire ResourceSlice must be <= 1024 (for example, 64 devices with 16 counters each).- , v1beta2DeviceName :: !(Text) -- ^ /Required/ "name" - Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.- , v1beta2DeviceNodeName :: !(Maybe Text) -- ^ "nodeName" - NodeName identifies the node where the device is available. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.- , v1beta2DeviceNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- , v1beta2DeviceTaints :: !(Maybe [V1beta2DeviceTaint]) -- ^ "taints" - If specified, these are the driver-defined taints. The maximum number of taints is 4. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2Device-instance A.FromJSON V1beta2Device where- parseJSON = A.withObject "V1beta2Device" $ \o ->- V1beta2Device- <$> (o .:? "allNodes")- <*> (o .:? "allowMultipleAllocations")- <*> (o .:? "attributes")- <*> (o .:? "bindingConditions")- <*> (o .:? "bindingFailureConditions")- <*> (o .:? "bindsToNode")- <*> (o .:? "capacity")- <*> (o .:? "consumesCounters")- <*> (o .: "name")- <*> (o .:? "nodeName")- <*> (o .:? "nodeSelector")- <*> (o .:? "taints")---- | ToJSON V1beta2Device-instance A.ToJSON V1beta2Device where- toJSON V1beta2Device {..} =- _omitNulls- [ "allNodes" .= v1beta2DeviceAllNodes- , "allowMultipleAllocations" .= v1beta2DeviceAllowMultipleAllocations- , "attributes" .= v1beta2DeviceAttributes- , "bindingConditions" .= v1beta2DeviceBindingConditions- , "bindingFailureConditions" .= v1beta2DeviceBindingFailureConditions- , "bindsToNode" .= v1beta2DeviceBindsToNode- , "capacity" .= v1beta2DeviceCapacity- , "consumesCounters" .= v1beta2DeviceConsumesCounters- , "name" .= v1beta2DeviceName- , "nodeName" .= v1beta2DeviceNodeName- , "nodeSelector" .= v1beta2DeviceNodeSelector- , "taints" .= v1beta2DeviceTaints- ]----- | Construct a value of type 'V1beta2Device' (by applying it's required fields, if any)-mkV1beta2Device- :: Text -- ^ 'v1beta2DeviceName': Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.- -> V1beta2Device-mkV1beta2Device v1beta2DeviceName =- V1beta2Device- { v1beta2DeviceAllNodes = Nothing- , v1beta2DeviceAllowMultipleAllocations = Nothing- , v1beta2DeviceAttributes = Nothing- , v1beta2DeviceBindingConditions = Nothing- , v1beta2DeviceBindingFailureConditions = Nothing- , v1beta2DeviceBindsToNode = Nothing- , v1beta2DeviceCapacity = Nothing- , v1beta2DeviceConsumesCounters = Nothing- , v1beta2DeviceName- , v1beta2DeviceNodeName = Nothing- , v1beta2DeviceNodeSelector = Nothing- , v1beta2DeviceTaints = Nothing- }---- ** V1beta2DeviceAllocationConfiguration--- | V1beta2DeviceAllocationConfiguration--- DeviceAllocationConfiguration gets embedded in an AllocationResult.-data V1beta2DeviceAllocationConfiguration = V1beta2DeviceAllocationConfiguration- { v1beta2DeviceAllocationConfigurationOpaque :: !(Maybe V1beta2OpaqueDeviceConfiguration) -- ^ "opaque"- , v1beta2DeviceAllocationConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.- , v1beta2DeviceAllocationConfigurationSource :: !(Text) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceAllocationConfiguration-instance A.FromJSON V1beta2DeviceAllocationConfiguration where- parseJSON = A.withObject "V1beta2DeviceAllocationConfiguration" $ \o ->- V1beta2DeviceAllocationConfiguration- <$> (o .:? "opaque")- <*> (o .:? "requests")- <*> (o .: "source")---- | ToJSON V1beta2DeviceAllocationConfiguration-instance A.ToJSON V1beta2DeviceAllocationConfiguration where- toJSON V1beta2DeviceAllocationConfiguration {..} =- _omitNulls- [ "opaque" .= v1beta2DeviceAllocationConfigurationOpaque- , "requests" .= v1beta2DeviceAllocationConfigurationRequests- , "source" .= v1beta2DeviceAllocationConfigurationSource- ]----- | Construct a value of type 'V1beta2DeviceAllocationConfiguration' (by applying it's required fields, if any)-mkV1beta2DeviceAllocationConfiguration- :: Text -- ^ 'v1beta2DeviceAllocationConfigurationSource': 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.- -> V1beta2DeviceAllocationConfiguration-mkV1beta2DeviceAllocationConfiguration v1beta2DeviceAllocationConfigurationSource =- V1beta2DeviceAllocationConfiguration- { v1beta2DeviceAllocationConfigurationOpaque = Nothing- , v1beta2DeviceAllocationConfigurationRequests = Nothing- , v1beta2DeviceAllocationConfigurationSource- }---- ** V1beta2DeviceAllocationResult--- | V1beta2DeviceAllocationResult--- DeviceAllocationResult is the result of allocating devices.-data V1beta2DeviceAllocationResult = V1beta2DeviceAllocationResult- { v1beta2DeviceAllocationResultConfig :: !(Maybe [V1beta2DeviceAllocationConfiguration]) -- ^ "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.- , v1beta2DeviceAllocationResultResults :: !(Maybe [V1beta2DeviceRequestAllocationResult]) -- ^ "results" - Results lists all allocated devices.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceAllocationResult-instance A.FromJSON V1beta2DeviceAllocationResult where- parseJSON = A.withObject "V1beta2DeviceAllocationResult" $ \o ->- V1beta2DeviceAllocationResult- <$> (o .:? "config")- <*> (o .:? "results")---- | ToJSON V1beta2DeviceAllocationResult-instance A.ToJSON V1beta2DeviceAllocationResult where- toJSON V1beta2DeviceAllocationResult {..} =- _omitNulls- [ "config" .= v1beta2DeviceAllocationResultConfig- , "results" .= v1beta2DeviceAllocationResultResults- ]----- | Construct a value of type 'V1beta2DeviceAllocationResult' (by applying it's required fields, if any)-mkV1beta2DeviceAllocationResult- :: V1beta2DeviceAllocationResult-mkV1beta2DeviceAllocationResult =- V1beta2DeviceAllocationResult- { v1beta2DeviceAllocationResultConfig = Nothing- , v1beta2DeviceAllocationResultResults = Nothing- }---- ** V1beta2DeviceAttribute--- | V1beta2DeviceAttribute--- DeviceAttribute must have exactly one field set.-data V1beta2DeviceAttribute = V1beta2DeviceAttribute- { v1beta2DeviceAttributeBool :: !(Maybe Bool) -- ^ "bool" - BoolValue is a true/false value.- , v1beta2DeviceAttributeInt :: !(Maybe Integer) -- ^ "int" - IntValue is a number.- , v1beta2DeviceAttributeString :: !(Maybe Text) -- ^ "string" - StringValue is a string. Must not be longer than 64 characters.- , v1beta2DeviceAttributeVersion :: !(Maybe Text) -- ^ "version" - VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceAttribute-instance A.FromJSON V1beta2DeviceAttribute where- parseJSON = A.withObject "V1beta2DeviceAttribute" $ \o ->- V1beta2DeviceAttribute- <$> (o .:? "bool")- <*> (o .:? "int")- <*> (o .:? "string")- <*> (o .:? "version")---- | ToJSON V1beta2DeviceAttribute-instance A.ToJSON V1beta2DeviceAttribute where- toJSON V1beta2DeviceAttribute {..} =- _omitNulls- [ "bool" .= v1beta2DeviceAttributeBool- , "int" .= v1beta2DeviceAttributeInt- , "string" .= v1beta2DeviceAttributeString- , "version" .= v1beta2DeviceAttributeVersion- ]----- | Construct a value of type 'V1beta2DeviceAttribute' (by applying it's required fields, if any)-mkV1beta2DeviceAttribute- :: V1beta2DeviceAttribute-mkV1beta2DeviceAttribute =- V1beta2DeviceAttribute- { v1beta2DeviceAttributeBool = Nothing- , v1beta2DeviceAttributeInt = Nothing- , v1beta2DeviceAttributeString = Nothing- , v1beta2DeviceAttributeVersion = Nothing- }---- ** V1beta2DeviceCapacity--- | V1beta2DeviceCapacity--- DeviceCapacity describes a quantity associated with a device.-data V1beta2DeviceCapacity = V1beta2DeviceCapacity- { v1beta2DeviceCapacityRequestPolicy :: !(Maybe V1beta2CapacityRequestPolicy) -- ^ "requestPolicy"- , v1beta2DeviceCapacityValue :: !(Quantity) -- ^ /Required/ "value"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceCapacity-instance A.FromJSON V1beta2DeviceCapacity where- parseJSON = A.withObject "V1beta2DeviceCapacity" $ \o ->- V1beta2DeviceCapacity- <$> (o .:? "requestPolicy")- <*> (o .: "value")---- | ToJSON V1beta2DeviceCapacity-instance A.ToJSON V1beta2DeviceCapacity where- toJSON V1beta2DeviceCapacity {..} =- _omitNulls- [ "requestPolicy" .= v1beta2DeviceCapacityRequestPolicy- , "value" .= v1beta2DeviceCapacityValue- ]----- | Construct a value of type 'V1beta2DeviceCapacity' (by applying it's required fields, if any)-mkV1beta2DeviceCapacity- :: Quantity -- ^ 'v1beta2DeviceCapacityValue' - -> V1beta2DeviceCapacity-mkV1beta2DeviceCapacity v1beta2DeviceCapacityValue =- V1beta2DeviceCapacity- { v1beta2DeviceCapacityRequestPolicy = Nothing- , v1beta2DeviceCapacityValue- }---- ** V1beta2DeviceClaim--- | V1beta2DeviceClaim--- DeviceClaim defines how to request devices with a ResourceClaim.-data V1beta2DeviceClaim = V1beta2DeviceClaim- { v1beta2DeviceClaimConfig :: !(Maybe [V1beta2DeviceClaimConfiguration]) -- ^ "config" - This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.- , v1beta2DeviceClaimConstraints :: !(Maybe [V1beta2DeviceConstraint]) -- ^ "constraints" - These constraints must be satisfied by the set of devices that get allocated for the claim.- , v1beta2DeviceClaimRequests :: !(Maybe [V1beta2DeviceRequest]) -- ^ "requests" - Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceClaim-instance A.FromJSON V1beta2DeviceClaim where- parseJSON = A.withObject "V1beta2DeviceClaim" $ \o ->- V1beta2DeviceClaim- <$> (o .:? "config")- <*> (o .:? "constraints")- <*> (o .:? "requests")---- | ToJSON V1beta2DeviceClaim-instance A.ToJSON V1beta2DeviceClaim where- toJSON V1beta2DeviceClaim {..} =- _omitNulls- [ "config" .= v1beta2DeviceClaimConfig- , "constraints" .= v1beta2DeviceClaimConstraints- , "requests" .= v1beta2DeviceClaimRequests- ]----- | Construct a value of type 'V1beta2DeviceClaim' (by applying it's required fields, if any)-mkV1beta2DeviceClaim- :: V1beta2DeviceClaim-mkV1beta2DeviceClaim =- V1beta2DeviceClaim- { v1beta2DeviceClaimConfig = Nothing- , v1beta2DeviceClaimConstraints = Nothing- , v1beta2DeviceClaimRequests = Nothing- }---- ** V1beta2DeviceClaimConfiguration--- | V1beta2DeviceClaimConfiguration--- DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.-data V1beta2DeviceClaimConfiguration = V1beta2DeviceClaimConfiguration- { v1beta2DeviceClaimConfigurationOpaque :: !(Maybe V1beta2OpaqueDeviceConfiguration) -- ^ "opaque"- , v1beta2DeviceClaimConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceClaimConfiguration-instance A.FromJSON V1beta2DeviceClaimConfiguration where- parseJSON = A.withObject "V1beta2DeviceClaimConfiguration" $ \o ->- V1beta2DeviceClaimConfiguration- <$> (o .:? "opaque")- <*> (o .:? "requests")---- | ToJSON V1beta2DeviceClaimConfiguration-instance A.ToJSON V1beta2DeviceClaimConfiguration where- toJSON V1beta2DeviceClaimConfiguration {..} =- _omitNulls- [ "opaque" .= v1beta2DeviceClaimConfigurationOpaque- , "requests" .= v1beta2DeviceClaimConfigurationRequests- ]----- | Construct a value of type 'V1beta2DeviceClaimConfiguration' (by applying it's required fields, if any)-mkV1beta2DeviceClaimConfiguration- :: V1beta2DeviceClaimConfiguration-mkV1beta2DeviceClaimConfiguration =- V1beta2DeviceClaimConfiguration- { v1beta2DeviceClaimConfigurationOpaque = Nothing- , v1beta2DeviceClaimConfigurationRequests = Nothing- }---- ** V1beta2DeviceClass--- | V1beta2DeviceClass--- 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.-data V1beta2DeviceClass = V1beta2DeviceClass- { v1beta2DeviceClassApiVersion :: !(Maybe Text) -- ^ "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- , v1beta2DeviceClassKind :: !(Maybe Text) -- ^ "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- , v1beta2DeviceClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta2DeviceClassSpec :: !(V1beta2DeviceClassSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceClass-instance A.FromJSON V1beta2DeviceClass where- parseJSON = A.withObject "V1beta2DeviceClass" $ \o ->- V1beta2DeviceClass- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta2DeviceClass-instance A.ToJSON V1beta2DeviceClass where- toJSON V1beta2DeviceClass {..} =- _omitNulls- [ "apiVersion" .= v1beta2DeviceClassApiVersion- , "kind" .= v1beta2DeviceClassKind- , "metadata" .= v1beta2DeviceClassMetadata- , "spec" .= v1beta2DeviceClassSpec- ]----- | Construct a value of type 'V1beta2DeviceClass' (by applying it's required fields, if any)-mkV1beta2DeviceClass- :: V1beta2DeviceClassSpec -- ^ 'v1beta2DeviceClassSpec' - -> V1beta2DeviceClass-mkV1beta2DeviceClass v1beta2DeviceClassSpec =- V1beta2DeviceClass- { v1beta2DeviceClassApiVersion = Nothing- , v1beta2DeviceClassKind = Nothing- , v1beta2DeviceClassMetadata = Nothing- , v1beta2DeviceClassSpec- }---- ** V1beta2DeviceClassConfiguration--- | V1beta2DeviceClassConfiguration--- DeviceClassConfiguration is used in DeviceClass.-data V1beta2DeviceClassConfiguration = V1beta2DeviceClassConfiguration- { v1beta2DeviceClassConfigurationOpaque :: !(Maybe V1beta2OpaqueDeviceConfiguration) -- ^ "opaque"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceClassConfiguration-instance A.FromJSON V1beta2DeviceClassConfiguration where- parseJSON = A.withObject "V1beta2DeviceClassConfiguration" $ \o ->- V1beta2DeviceClassConfiguration- <$> (o .:? "opaque")---- | ToJSON V1beta2DeviceClassConfiguration-instance A.ToJSON V1beta2DeviceClassConfiguration where- toJSON V1beta2DeviceClassConfiguration {..} =- _omitNulls- [ "opaque" .= v1beta2DeviceClassConfigurationOpaque- ]----- | Construct a value of type 'V1beta2DeviceClassConfiguration' (by applying it's required fields, if any)-mkV1beta2DeviceClassConfiguration- :: V1beta2DeviceClassConfiguration-mkV1beta2DeviceClassConfiguration =- V1beta2DeviceClassConfiguration- { v1beta2DeviceClassConfigurationOpaque = Nothing- }---- ** V1beta2DeviceClassList--- | V1beta2DeviceClassList--- DeviceClassList is a collection of classes.-data V1beta2DeviceClassList = V1beta2DeviceClassList- { v1beta2DeviceClassListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta2DeviceClassListItems :: !([V1beta2DeviceClass]) -- ^ /Required/ "items" - Items is the list of resource classes.- , v1beta2DeviceClassListKind :: !(Maybe Text) -- ^ "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- , v1beta2DeviceClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceClassList-instance A.FromJSON V1beta2DeviceClassList where- parseJSON = A.withObject "V1beta2DeviceClassList" $ \o ->- V1beta2DeviceClassList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta2DeviceClassList-instance A.ToJSON V1beta2DeviceClassList where- toJSON V1beta2DeviceClassList {..} =- _omitNulls- [ "apiVersion" .= v1beta2DeviceClassListApiVersion- , "items" .= v1beta2DeviceClassListItems- , "kind" .= v1beta2DeviceClassListKind- , "metadata" .= v1beta2DeviceClassListMetadata- ]----- | Construct a value of type 'V1beta2DeviceClassList' (by applying it's required fields, if any)-mkV1beta2DeviceClassList- :: [V1beta2DeviceClass] -- ^ 'v1beta2DeviceClassListItems': Items is the list of resource classes.- -> V1beta2DeviceClassList-mkV1beta2DeviceClassList v1beta2DeviceClassListItems =- V1beta2DeviceClassList- { v1beta2DeviceClassListApiVersion = Nothing- , v1beta2DeviceClassListItems- , v1beta2DeviceClassListKind = Nothing- , v1beta2DeviceClassListMetadata = Nothing- }---- ** V1beta2DeviceClassSpec--- | V1beta2DeviceClassSpec--- DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.-data V1beta2DeviceClassSpec = V1beta2DeviceClassSpec- { v1beta2DeviceClassSpecConfig :: !(Maybe [V1beta2DeviceClassConfiguration]) -- ^ "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.- , v1beta2DeviceClassSpecExtendedResourceName :: !(Maybe Text) -- ^ "extendedResourceName" - ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. This is an alpha field.- , v1beta2DeviceClassSpecSelectors :: !(Maybe [V1beta2DeviceSelector]) -- ^ "selectors" - Each selector must be satisfied by a device which is claimed via this class.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceClassSpec-instance A.FromJSON V1beta2DeviceClassSpec where- parseJSON = A.withObject "V1beta2DeviceClassSpec" $ \o ->- V1beta2DeviceClassSpec- <$> (o .:? "config")- <*> (o .:? "extendedResourceName")- <*> (o .:? "selectors")---- | ToJSON V1beta2DeviceClassSpec-instance A.ToJSON V1beta2DeviceClassSpec where- toJSON V1beta2DeviceClassSpec {..} =- _omitNulls- [ "config" .= v1beta2DeviceClassSpecConfig- , "extendedResourceName" .= v1beta2DeviceClassSpecExtendedResourceName- , "selectors" .= v1beta2DeviceClassSpecSelectors- ]----- | Construct a value of type 'V1beta2DeviceClassSpec' (by applying it's required fields, if any)-mkV1beta2DeviceClassSpec- :: V1beta2DeviceClassSpec-mkV1beta2DeviceClassSpec =- V1beta2DeviceClassSpec- { v1beta2DeviceClassSpecConfig = Nothing- , v1beta2DeviceClassSpecExtendedResourceName = Nothing- , v1beta2DeviceClassSpecSelectors = Nothing- }---- ** V1beta2DeviceConstraint--- | V1beta2DeviceConstraint--- DeviceConstraint must have exactly one field set besides Requests.-data V1beta2DeviceConstraint = V1beta2DeviceConstraint- { v1beta2DeviceConstraintDistinctAttribute :: !(Maybe Text) -- ^ "distinctAttribute" - DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. This acts as the inverse of MatchAttribute. This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs.- , v1beta2DeviceConstraintMatchAttribute :: !(Maybe Text) -- ^ "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.- , v1beta2DeviceConstraintRequests :: !(Maybe [Text]) -- ^ "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. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceConstraint-instance A.FromJSON V1beta2DeviceConstraint where- parseJSON = A.withObject "V1beta2DeviceConstraint" $ \o ->- V1beta2DeviceConstraint- <$> (o .:? "distinctAttribute")- <*> (o .:? "matchAttribute")- <*> (o .:? "requests")---- | ToJSON V1beta2DeviceConstraint-instance A.ToJSON V1beta2DeviceConstraint where- toJSON V1beta2DeviceConstraint {..} =- _omitNulls- [ "distinctAttribute" .= v1beta2DeviceConstraintDistinctAttribute- , "matchAttribute" .= v1beta2DeviceConstraintMatchAttribute- , "requests" .= v1beta2DeviceConstraintRequests- ]----- | Construct a value of type 'V1beta2DeviceConstraint' (by applying it's required fields, if any)-mkV1beta2DeviceConstraint- :: V1beta2DeviceConstraint-mkV1beta2DeviceConstraint =- V1beta2DeviceConstraint- { v1beta2DeviceConstraintDistinctAttribute = Nothing- , v1beta2DeviceConstraintMatchAttribute = Nothing- , v1beta2DeviceConstraintRequests = Nothing- }---- ** V1beta2DeviceCounterConsumption--- | V1beta2DeviceCounterConsumption--- DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.-data V1beta2DeviceCounterConsumption = V1beta2DeviceCounterConsumption- { v1beta2DeviceCounterConsumptionCounterSet :: !(Text) -- ^ /Required/ "counterSet" - CounterSet is the name of the set from which the counters defined will be consumed.- , v1beta2DeviceCounterConsumptionCounters :: !((Map.Map String V1beta2Counter)) -- ^ /Required/ "counters" - Counters defines the counters that will be consumed by the device. The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceCounterConsumption-instance A.FromJSON V1beta2DeviceCounterConsumption where- parseJSON = A.withObject "V1beta2DeviceCounterConsumption" $ \o ->- V1beta2DeviceCounterConsumption- <$> (o .: "counterSet")- <*> (o .: "counters")---- | ToJSON V1beta2DeviceCounterConsumption-instance A.ToJSON V1beta2DeviceCounterConsumption where- toJSON V1beta2DeviceCounterConsumption {..} =- _omitNulls- [ "counterSet" .= v1beta2DeviceCounterConsumptionCounterSet- , "counters" .= v1beta2DeviceCounterConsumptionCounters- ]----- | Construct a value of type 'V1beta2DeviceCounterConsumption' (by applying it's required fields, if any)-mkV1beta2DeviceCounterConsumption- :: Text -- ^ 'v1beta2DeviceCounterConsumptionCounterSet': CounterSet is the name of the set from which the counters defined will be consumed.- -> (Map.Map String V1beta2Counter) -- ^ 'v1beta2DeviceCounterConsumptionCounters': Counters defines the counters that will be consumed by the device. The maximum number counters in a device is 32. In addition, the maximum number of all counters in all devices is 1024 (for example, 64 devices with 16 counters each).- -> V1beta2DeviceCounterConsumption-mkV1beta2DeviceCounterConsumption v1beta2DeviceCounterConsumptionCounterSet v1beta2DeviceCounterConsumptionCounters =- V1beta2DeviceCounterConsumption- { v1beta2DeviceCounterConsumptionCounterSet- , v1beta2DeviceCounterConsumptionCounters- }---- ** V1beta2DeviceRequest--- | V1beta2DeviceRequest--- 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. With FirstAvailable it is also possible to provide a prioritized list of requests.-data V1beta2DeviceRequest = V1beta2DeviceRequest- { v1beta2DeviceRequestExactly :: !(Maybe V1beta2ExactDeviceRequest) -- ^ "exactly"- , v1beta2DeviceRequestFirstAvailable :: !(Maybe [V1beta2DeviceSubRequest]) -- ^ "firstAvailable" - FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.- , v1beta2DeviceRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. Must be a DNS label.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceRequest-instance A.FromJSON V1beta2DeviceRequest where- parseJSON = A.withObject "V1beta2DeviceRequest" $ \o ->- V1beta2DeviceRequest- <$> (o .:? "exactly")- <*> (o .:? "firstAvailable")- <*> (o .: "name")---- | ToJSON V1beta2DeviceRequest-instance A.ToJSON V1beta2DeviceRequest where- toJSON V1beta2DeviceRequest {..} =- _omitNulls- [ "exactly" .= v1beta2DeviceRequestExactly- , "firstAvailable" .= v1beta2DeviceRequestFirstAvailable- , "name" .= v1beta2DeviceRequestName- ]----- | Construct a value of type 'V1beta2DeviceRequest' (by applying it's required fields, if any)-mkV1beta2DeviceRequest- :: Text -- ^ 'v1beta2DeviceRequestName': Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. Must be a DNS label.- -> V1beta2DeviceRequest-mkV1beta2DeviceRequest v1beta2DeviceRequestName =- V1beta2DeviceRequest- { v1beta2DeviceRequestExactly = Nothing- , v1beta2DeviceRequestFirstAvailable = Nothing- , v1beta2DeviceRequestName- }---- ** V1beta2DeviceRequestAllocationResult--- | V1beta2DeviceRequestAllocationResult--- DeviceRequestAllocationResult contains the allocation result for one request.-data V1beta2DeviceRequestAllocationResult = V1beta2DeviceRequestAllocationResult- { v1beta2DeviceRequestAllocationResultAdminAccess :: !(Maybe Bool) -- ^ "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.- , v1beta2DeviceRequestAllocationResultBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta2DeviceRequestAllocationResultBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.- , v1beta2DeviceRequestAllocationResultConsumedCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "consumedCapacity" - ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). The total consumed capacity for each device must not exceed the DeviceCapacity's Value. This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero.- , v1beta2DeviceRequestAllocationResultDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- , v1beta2DeviceRequestAllocationResultDriver :: !(Text) -- ^ /Required/ "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.- , v1beta2DeviceRequestAllocationResultPool :: !(Text) -- ^ /Required/ "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.- , v1beta2DeviceRequestAllocationResultRequest :: !(Text) -- ^ /Required/ "request" - Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.- , v1beta2DeviceRequestAllocationResultShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device.- , v1beta2DeviceRequestAllocationResultTolerations :: !(Maybe [V1beta2DeviceToleration]) -- ^ "tolerations" - A copy of all tolerations specified in the request at the time when the device got allocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceRequestAllocationResult-instance A.FromJSON V1beta2DeviceRequestAllocationResult where- parseJSON = A.withObject "V1beta2DeviceRequestAllocationResult" $ \o ->- V1beta2DeviceRequestAllocationResult- <$> (o .:? "adminAccess")- <*> (o .:? "bindingConditions")- <*> (o .:? "bindingFailureConditions")- <*> (o .:? "consumedCapacity")- <*> (o .: "device")- <*> (o .: "driver")- <*> (o .: "pool")- <*> (o .: "request")- <*> (o .:? "shareID")- <*> (o .:? "tolerations")---- | ToJSON V1beta2DeviceRequestAllocationResult-instance A.ToJSON V1beta2DeviceRequestAllocationResult where- toJSON V1beta2DeviceRequestAllocationResult {..} =- _omitNulls- [ "adminAccess" .= v1beta2DeviceRequestAllocationResultAdminAccess- , "bindingConditions" .= v1beta2DeviceRequestAllocationResultBindingConditions- , "bindingFailureConditions" .= v1beta2DeviceRequestAllocationResultBindingFailureConditions- , "consumedCapacity" .= v1beta2DeviceRequestAllocationResultConsumedCapacity- , "device" .= v1beta2DeviceRequestAllocationResultDevice- , "driver" .= v1beta2DeviceRequestAllocationResultDriver- , "pool" .= v1beta2DeviceRequestAllocationResultPool- , "request" .= v1beta2DeviceRequestAllocationResultRequest- , "shareID" .= v1beta2DeviceRequestAllocationResultShareId- , "tolerations" .= v1beta2DeviceRequestAllocationResultTolerations- ]----- | Construct a value of type 'V1beta2DeviceRequestAllocationResult' (by applying it's required fields, if any)-mkV1beta2DeviceRequestAllocationResult- :: Text -- ^ 'v1beta2DeviceRequestAllocationResultDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.- -> Text -- ^ 'v1beta2DeviceRequestAllocationResultDriver': 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.- -> Text -- ^ 'v1beta2DeviceRequestAllocationResultPool': 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.- -> Text -- ^ 'v1beta2DeviceRequestAllocationResultRequest': Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.- -> V1beta2DeviceRequestAllocationResult-mkV1beta2DeviceRequestAllocationResult v1beta2DeviceRequestAllocationResultDevice v1beta2DeviceRequestAllocationResultDriver v1beta2DeviceRequestAllocationResultPool v1beta2DeviceRequestAllocationResultRequest =- V1beta2DeviceRequestAllocationResult- { v1beta2DeviceRequestAllocationResultAdminAccess = Nothing- , v1beta2DeviceRequestAllocationResultBindingConditions = Nothing- , v1beta2DeviceRequestAllocationResultBindingFailureConditions = Nothing- , v1beta2DeviceRequestAllocationResultConsumedCapacity = Nothing- , v1beta2DeviceRequestAllocationResultDevice- , v1beta2DeviceRequestAllocationResultDriver- , v1beta2DeviceRequestAllocationResultPool- , v1beta2DeviceRequestAllocationResultRequest- , v1beta2DeviceRequestAllocationResultShareId = Nothing- , v1beta2DeviceRequestAllocationResultTolerations = Nothing- }---- ** V1beta2DeviceSelector--- | V1beta2DeviceSelector--- DeviceSelector must have exactly one field set.-data V1beta2DeviceSelector = V1beta2DeviceSelector- { v1beta2DeviceSelectorCel :: !(Maybe V1beta2CELDeviceSelector) -- ^ "cel"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceSelector-instance A.FromJSON V1beta2DeviceSelector where- parseJSON = A.withObject "V1beta2DeviceSelector" $ \o ->- V1beta2DeviceSelector- <$> (o .:? "cel")---- | ToJSON V1beta2DeviceSelector-instance A.ToJSON V1beta2DeviceSelector where- toJSON V1beta2DeviceSelector {..} =- _omitNulls- [ "cel" .= v1beta2DeviceSelectorCel- ]----- | Construct a value of type 'V1beta2DeviceSelector' (by applying it's required fields, if any)-mkV1beta2DeviceSelector- :: V1beta2DeviceSelector-mkV1beta2DeviceSelector =- V1beta2DeviceSelector- { v1beta2DeviceSelectorCel = Nothing- }---- ** V1beta2DeviceSubRequest--- | V1beta2DeviceSubRequest--- DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device.-data V1beta2DeviceSubRequest = V1beta2DeviceSubRequest- { v1beta2DeviceSubRequestAllocationMode :: !(Maybe Text) -- ^ "allocationMode" - AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. 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 subrequest is for all of the matching devices in a pool. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.- , v1beta2DeviceSubRequestCapacity :: !(Maybe V1beta2CapacityRequirements) -- ^ "capacity"- , v1beta2DeviceSubRequestCount :: !(Maybe Integer) -- ^ "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.- , v1beta2DeviceSubRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.- , v1beta2DeviceSubRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.- , v1beta2DeviceSubRequestSelectors :: !(Maybe [V1beta2DeviceSelector]) -- ^ "selectors" - Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.- , v1beta2DeviceSubRequestTolerations :: !(Maybe [V1beta2DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceSubRequest-instance A.FromJSON V1beta2DeviceSubRequest where- parseJSON = A.withObject "V1beta2DeviceSubRequest" $ \o ->- V1beta2DeviceSubRequest- <$> (o .:? "allocationMode")- <*> (o .:? "capacity")- <*> (o .:? "count")- <*> (o .: "deviceClassName")- <*> (o .: "name")- <*> (o .:? "selectors")- <*> (o .:? "tolerations")---- | ToJSON V1beta2DeviceSubRequest-instance A.ToJSON V1beta2DeviceSubRequest where- toJSON V1beta2DeviceSubRequest {..} =- _omitNulls- [ "allocationMode" .= v1beta2DeviceSubRequestAllocationMode- , "capacity" .= v1beta2DeviceSubRequestCapacity- , "count" .= v1beta2DeviceSubRequestCount- , "deviceClassName" .= v1beta2DeviceSubRequestDeviceClassName- , "name" .= v1beta2DeviceSubRequestName- , "selectors" .= v1beta2DeviceSubRequestSelectors- , "tolerations" .= v1beta2DeviceSubRequestTolerations- ]----- | Construct a value of type 'V1beta2DeviceSubRequest' (by applying it's required fields, if any)-mkV1beta2DeviceSubRequest- :: Text -- ^ 'v1beta2DeviceSubRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.- -> Text -- ^ 'v1beta2DeviceSubRequestName': Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.- -> V1beta2DeviceSubRequest-mkV1beta2DeviceSubRequest v1beta2DeviceSubRequestDeviceClassName v1beta2DeviceSubRequestName =- V1beta2DeviceSubRequest- { v1beta2DeviceSubRequestAllocationMode = Nothing- , v1beta2DeviceSubRequestCapacity = Nothing- , v1beta2DeviceSubRequestCount = Nothing- , v1beta2DeviceSubRequestDeviceClassName- , v1beta2DeviceSubRequestName- , v1beta2DeviceSubRequestSelectors = Nothing- , v1beta2DeviceSubRequestTolerations = Nothing- }---- ** V1beta2DeviceTaint--- | V1beta2DeviceTaint--- The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.-data V1beta2DeviceTaint = V1beta2DeviceTaint- { v1beta2DeviceTaintEffect :: !(Text) -- ^ /Required/ "effect" - The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.- , v1beta2DeviceTaintKey :: !(Text) -- ^ /Required/ "key" - The taint key to be applied to a device. Must be a label name.- , v1beta2DeviceTaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.- , v1beta2DeviceTaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key. Must be a label value.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceTaint-instance A.FromJSON V1beta2DeviceTaint where- parseJSON = A.withObject "V1beta2DeviceTaint" $ \o ->- V1beta2DeviceTaint- <$> (o .: "effect")- <*> (o .: "key")- <*> (o .:? "timeAdded")- <*> (o .:? "value")---- | ToJSON V1beta2DeviceTaint-instance A.ToJSON V1beta2DeviceTaint where- toJSON V1beta2DeviceTaint {..} =- _omitNulls- [ "effect" .= v1beta2DeviceTaintEffect- , "key" .= v1beta2DeviceTaintKey- , "timeAdded" .= v1beta2DeviceTaintTimeAdded- , "value" .= v1beta2DeviceTaintValue- ]----- | Construct a value of type 'V1beta2DeviceTaint' (by applying it's required fields, if any)-mkV1beta2DeviceTaint- :: Text -- ^ 'v1beta2DeviceTaintEffect': The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here.- -> Text -- ^ 'v1beta2DeviceTaintKey': The taint key to be applied to a device. Must be a label name.- -> V1beta2DeviceTaint-mkV1beta2DeviceTaint v1beta2DeviceTaintEffect v1beta2DeviceTaintKey =- V1beta2DeviceTaint- { v1beta2DeviceTaintEffect- , v1beta2DeviceTaintKey- , v1beta2DeviceTaintTimeAdded = Nothing- , v1beta2DeviceTaintValue = Nothing- }---- ** V1beta2DeviceToleration--- | V1beta2DeviceToleration--- The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.-data V1beta2DeviceToleration = V1beta2DeviceToleration- { v1beta2DeviceTolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.- , v1beta2DeviceTolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.- , v1beta2DeviceTolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.- , v1beta2DeviceTolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.- , v1beta2DeviceTolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2DeviceToleration-instance A.FromJSON V1beta2DeviceToleration where- parseJSON = A.withObject "V1beta2DeviceToleration" $ \o ->- V1beta2DeviceToleration- <$> (o .:? "effect")- <*> (o .:? "key")- <*> (o .:? "operator")- <*> (o .:? "tolerationSeconds")- <*> (o .:? "value")---- | ToJSON V1beta2DeviceToleration-instance A.ToJSON V1beta2DeviceToleration where- toJSON V1beta2DeviceToleration {..} =- _omitNulls- [ "effect" .= v1beta2DeviceTolerationEffect- , "key" .= v1beta2DeviceTolerationKey- , "operator" .= v1beta2DeviceTolerationOperator- , "tolerationSeconds" .= v1beta2DeviceTolerationTolerationSeconds- , "value" .= v1beta2DeviceTolerationValue- ]----- | Construct a value of type 'V1beta2DeviceToleration' (by applying it's required fields, if any)-mkV1beta2DeviceToleration- :: V1beta2DeviceToleration-mkV1beta2DeviceToleration =- V1beta2DeviceToleration- { v1beta2DeviceTolerationEffect = Nothing- , v1beta2DeviceTolerationKey = Nothing- , v1beta2DeviceTolerationOperator = Nothing- , v1beta2DeviceTolerationTolerationSeconds = Nothing- , v1beta2DeviceTolerationValue = Nothing- }---- ** V1beta2ExactDeviceRequest--- | V1beta2ExactDeviceRequest--- ExactDeviceRequest is a request for one or more identical devices.-data V1beta2ExactDeviceRequest = V1beta2ExactDeviceRequest- { v1beta2ExactDeviceRequestAdminAccess :: !(Maybe Bool) -- ^ "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.- , v1beta2ExactDeviceRequestAllocationMode :: !(Maybe Text) -- ^ "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. At least one device must exist on the node for the allocation to succeed. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.- , v1beta2ExactDeviceRequestCapacity :: !(Maybe V1beta2CapacityRequirements) -- ^ "capacity"- , v1beta2ExactDeviceRequestCount :: !(Maybe Integer) -- ^ "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.- , v1beta2ExactDeviceRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A DeviceClassName is required. 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.- , v1beta2ExactDeviceRequestSelectors :: !(Maybe [V1beta2DeviceSelector]) -- ^ "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.- , v1beta2ExactDeviceRequestTolerations :: !(Maybe [V1beta2DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ExactDeviceRequest-instance A.FromJSON V1beta2ExactDeviceRequest where- parseJSON = A.withObject "V1beta2ExactDeviceRequest" $ \o ->- V1beta2ExactDeviceRequest- <$> (o .:? "adminAccess")- <*> (o .:? "allocationMode")- <*> (o .:? "capacity")- <*> (o .:? "count")- <*> (o .: "deviceClassName")- <*> (o .:? "selectors")- <*> (o .:? "tolerations")---- | ToJSON V1beta2ExactDeviceRequest-instance A.ToJSON V1beta2ExactDeviceRequest where- toJSON V1beta2ExactDeviceRequest {..} =- _omitNulls- [ "adminAccess" .= v1beta2ExactDeviceRequestAdminAccess- , "allocationMode" .= v1beta2ExactDeviceRequestAllocationMode- , "capacity" .= v1beta2ExactDeviceRequestCapacity- , "count" .= v1beta2ExactDeviceRequestCount- , "deviceClassName" .= v1beta2ExactDeviceRequestDeviceClassName- , "selectors" .= v1beta2ExactDeviceRequestSelectors- , "tolerations" .= v1beta2ExactDeviceRequestTolerations- ]----- | Construct a value of type 'V1beta2ExactDeviceRequest' (by applying it's required fields, if any)-mkV1beta2ExactDeviceRequest- :: Text -- ^ 'v1beta2ExactDeviceRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A DeviceClassName is required. 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.- -> V1beta2ExactDeviceRequest-mkV1beta2ExactDeviceRequest v1beta2ExactDeviceRequestDeviceClassName =- V1beta2ExactDeviceRequest- { v1beta2ExactDeviceRequestAdminAccess = Nothing- , v1beta2ExactDeviceRequestAllocationMode = Nothing- , v1beta2ExactDeviceRequestCapacity = Nothing- , v1beta2ExactDeviceRequestCount = Nothing- , v1beta2ExactDeviceRequestDeviceClassName- , v1beta2ExactDeviceRequestSelectors = Nothing- , v1beta2ExactDeviceRequestTolerations = Nothing- }---- ** V1beta2NetworkDeviceData--- | V1beta2NetworkDeviceData--- 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.-data V1beta2NetworkDeviceData = V1beta2NetworkDeviceData- { v1beta2NetworkDeviceDataHardwareAddress :: !(Maybe Text) -- ^ "hardwareAddress" - HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. Must not be longer than 128 characters.- , v1beta2NetworkDeviceDataInterfaceName :: !(Maybe Text) -- ^ "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.- , v1beta2NetworkDeviceDataIps :: !(Maybe [Text]) -- ^ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2NetworkDeviceData-instance A.FromJSON V1beta2NetworkDeviceData where- parseJSON = A.withObject "V1beta2NetworkDeviceData" $ \o ->- V1beta2NetworkDeviceData- <$> (o .:? "hardwareAddress")- <*> (o .:? "interfaceName")- <*> (o .:? "ips")---- | ToJSON V1beta2NetworkDeviceData-instance A.ToJSON V1beta2NetworkDeviceData where- toJSON V1beta2NetworkDeviceData {..} =- _omitNulls- [ "hardwareAddress" .= v1beta2NetworkDeviceDataHardwareAddress- , "interfaceName" .= v1beta2NetworkDeviceDataInterfaceName- , "ips" .= v1beta2NetworkDeviceDataIps- ]----- | Construct a value of type 'V1beta2NetworkDeviceData' (by applying it's required fields, if any)-mkV1beta2NetworkDeviceData- :: V1beta2NetworkDeviceData-mkV1beta2NetworkDeviceData =- V1beta2NetworkDeviceData- { v1beta2NetworkDeviceDataHardwareAddress = Nothing- , v1beta2NetworkDeviceDataInterfaceName = Nothing- , v1beta2NetworkDeviceDataIps = Nothing- }---- ** V1beta2OpaqueDeviceConfiguration--- | V1beta2OpaqueDeviceConfiguration--- OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.-data V1beta2OpaqueDeviceConfiguration = V1beta2OpaqueDeviceConfiguration- { v1beta2OpaqueDeviceConfigurationDriver :: !(Text) -- ^ /Required/ "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.- , v1beta2OpaqueDeviceConfigurationParameters :: !(A.Value) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2OpaqueDeviceConfiguration-instance A.FromJSON V1beta2OpaqueDeviceConfiguration where- parseJSON = A.withObject "V1beta2OpaqueDeviceConfiguration" $ \o ->- V1beta2OpaqueDeviceConfiguration- <$> (o .: "driver")- <*> (o .: "parameters")---- | ToJSON V1beta2OpaqueDeviceConfiguration-instance A.ToJSON V1beta2OpaqueDeviceConfiguration where- toJSON V1beta2OpaqueDeviceConfiguration {..} =- _omitNulls- [ "driver" .= v1beta2OpaqueDeviceConfigurationDriver- , "parameters" .= v1beta2OpaqueDeviceConfigurationParameters- ]----- | Construct a value of type 'V1beta2OpaqueDeviceConfiguration' (by applying it's required fields, if any)-mkV1beta2OpaqueDeviceConfiguration- :: Text -- ^ 'v1beta2OpaqueDeviceConfigurationDriver': 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.- -> A.Value -- ^ 'v1beta2OpaqueDeviceConfigurationParameters': 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.- -> V1beta2OpaqueDeviceConfiguration-mkV1beta2OpaqueDeviceConfiguration v1beta2OpaqueDeviceConfigurationDriver v1beta2OpaqueDeviceConfigurationParameters =- V1beta2OpaqueDeviceConfiguration- { v1beta2OpaqueDeviceConfigurationDriver- , v1beta2OpaqueDeviceConfigurationParameters- }---- ** V1beta2ResourceClaim--- | V1beta2ResourceClaim--- 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.-data V1beta2ResourceClaim = V1beta2ResourceClaim- { v1beta2ResourceClaimApiVersion :: !(Maybe Text) -- ^ "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- , v1beta2ResourceClaimKind :: !(Maybe Text) -- ^ "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- , v1beta2ResourceClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta2ResourceClaimSpec :: !(V1beta2ResourceClaimSpec) -- ^ /Required/ "spec"- , v1beta2ResourceClaimStatus :: !(Maybe V1beta2ResourceClaimStatus) -- ^ "status"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceClaim-instance A.FromJSON V1beta2ResourceClaim where- parseJSON = A.withObject "V1beta2ResourceClaim" $ \o ->- V1beta2ResourceClaim- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")- <*> (o .:? "status")---- | ToJSON V1beta2ResourceClaim-instance A.ToJSON V1beta2ResourceClaim where- toJSON V1beta2ResourceClaim {..} =- _omitNulls- [ "apiVersion" .= v1beta2ResourceClaimApiVersion- , "kind" .= v1beta2ResourceClaimKind- , "metadata" .= v1beta2ResourceClaimMetadata- , "spec" .= v1beta2ResourceClaimSpec- , "status" .= v1beta2ResourceClaimStatus- ]----- | Construct a value of type 'V1beta2ResourceClaim' (by applying it's required fields, if any)-mkV1beta2ResourceClaim- :: V1beta2ResourceClaimSpec -- ^ 'v1beta2ResourceClaimSpec' - -> V1beta2ResourceClaim-mkV1beta2ResourceClaim v1beta2ResourceClaimSpec =- V1beta2ResourceClaim- { v1beta2ResourceClaimApiVersion = Nothing- , v1beta2ResourceClaimKind = Nothing- , v1beta2ResourceClaimMetadata = Nothing- , v1beta2ResourceClaimSpec- , v1beta2ResourceClaimStatus = Nothing- }---- ** V1beta2ResourceClaimConsumerReference--- | V1beta2ResourceClaimConsumerReference--- 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.-data V1beta2ResourceClaimConsumerReference = V1beta2ResourceClaimConsumerReference- { v1beta2ResourceClaimConsumerReferenceApiGroup :: !(Maybe Text) -- ^ "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.- , v1beta2ResourceClaimConsumerReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced.- , v1beta2ResourceClaimConsumerReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the type of resource being referenced, for example \"pods\".- , v1beta2ResourceClaimConsumerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID identifies exactly one incarnation of the resource.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceClaimConsumerReference-instance A.FromJSON V1beta2ResourceClaimConsumerReference where- parseJSON = A.withObject "V1beta2ResourceClaimConsumerReference" $ \o ->- V1beta2ResourceClaimConsumerReference- <$> (o .:? "apiGroup")- <*> (o .: "name")- <*> (o .: "resource")- <*> (o .: "uid")---- | ToJSON V1beta2ResourceClaimConsumerReference-instance A.ToJSON V1beta2ResourceClaimConsumerReference where- toJSON V1beta2ResourceClaimConsumerReference {..} =- _omitNulls- [ "apiGroup" .= v1beta2ResourceClaimConsumerReferenceApiGroup- , "name" .= v1beta2ResourceClaimConsumerReferenceName- , "resource" .= v1beta2ResourceClaimConsumerReferenceResource- , "uid" .= v1beta2ResourceClaimConsumerReferenceUid- ]----- | Construct a value of type 'V1beta2ResourceClaimConsumerReference' (by applying it's required fields, if any)-mkV1beta2ResourceClaimConsumerReference- :: Text -- ^ 'v1beta2ResourceClaimConsumerReferenceName': Name is the name of resource being referenced.- -> Text -- ^ 'v1beta2ResourceClaimConsumerReferenceResource': Resource is the type of resource being referenced, for example \"pods\".- -> Text -- ^ 'v1beta2ResourceClaimConsumerReferenceUid': UID identifies exactly one incarnation of the resource.- -> V1beta2ResourceClaimConsumerReference-mkV1beta2ResourceClaimConsumerReference v1beta2ResourceClaimConsumerReferenceName v1beta2ResourceClaimConsumerReferenceResource v1beta2ResourceClaimConsumerReferenceUid =- V1beta2ResourceClaimConsumerReference- { v1beta2ResourceClaimConsumerReferenceApiGroup = Nothing- , v1beta2ResourceClaimConsumerReferenceName- , v1beta2ResourceClaimConsumerReferenceResource- , v1beta2ResourceClaimConsumerReferenceUid- }---- ** V1beta2ResourceClaimList--- | V1beta2ResourceClaimList--- ResourceClaimList is a collection of claims.-data V1beta2ResourceClaimList = V1beta2ResourceClaimList- { v1beta2ResourceClaimListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta2ResourceClaimListItems :: !([V1beta2ResourceClaim]) -- ^ /Required/ "items" - Items is the list of resource claims.- , v1beta2ResourceClaimListKind :: !(Maybe Text) -- ^ "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- , v1beta2ResourceClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceClaimList-instance A.FromJSON V1beta2ResourceClaimList where- parseJSON = A.withObject "V1beta2ResourceClaimList" $ \o ->- V1beta2ResourceClaimList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta2ResourceClaimList-instance A.ToJSON V1beta2ResourceClaimList where- toJSON V1beta2ResourceClaimList {..} =- _omitNulls- [ "apiVersion" .= v1beta2ResourceClaimListApiVersion- , "items" .= v1beta2ResourceClaimListItems- , "kind" .= v1beta2ResourceClaimListKind- , "metadata" .= v1beta2ResourceClaimListMetadata- ]----- | Construct a value of type 'V1beta2ResourceClaimList' (by applying it's required fields, if any)-mkV1beta2ResourceClaimList- :: [V1beta2ResourceClaim] -- ^ 'v1beta2ResourceClaimListItems': Items is the list of resource claims.- -> V1beta2ResourceClaimList-mkV1beta2ResourceClaimList v1beta2ResourceClaimListItems =- V1beta2ResourceClaimList- { v1beta2ResourceClaimListApiVersion = Nothing- , v1beta2ResourceClaimListItems- , v1beta2ResourceClaimListKind = Nothing- , v1beta2ResourceClaimListMetadata = Nothing- }---- ** V1beta2ResourceClaimSpec--- | V1beta2ResourceClaimSpec--- ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.-data V1beta2ResourceClaimSpec = V1beta2ResourceClaimSpec- { v1beta2ResourceClaimSpecDevices :: !(Maybe V1beta2DeviceClaim) -- ^ "devices"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceClaimSpec-instance A.FromJSON V1beta2ResourceClaimSpec where- parseJSON = A.withObject "V1beta2ResourceClaimSpec" $ \o ->- V1beta2ResourceClaimSpec- <$> (o .:? "devices")---- | ToJSON V1beta2ResourceClaimSpec-instance A.ToJSON V1beta2ResourceClaimSpec where- toJSON V1beta2ResourceClaimSpec {..} =- _omitNulls- [ "devices" .= v1beta2ResourceClaimSpecDevices- ]----- | Construct a value of type 'V1beta2ResourceClaimSpec' (by applying it's required fields, if any)-mkV1beta2ResourceClaimSpec- :: V1beta2ResourceClaimSpec-mkV1beta2ResourceClaimSpec =- V1beta2ResourceClaimSpec- { v1beta2ResourceClaimSpecDevices = Nothing- }---- ** V1beta2ResourceClaimStatus--- | V1beta2ResourceClaimStatus--- ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.-data V1beta2ResourceClaimStatus = V1beta2ResourceClaimStatus- { v1beta2ResourceClaimStatusAllocation :: !(Maybe V1beta2AllocationResult) -- ^ "allocation"- , v1beta2ResourceClaimStatusDevices :: !(Maybe [V1beta2AllocatedDeviceStatus]) -- ^ "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.- , v1beta2ResourceClaimStatusReservedFor :: !(Maybe [V1beta2ResourceClaimConsumerReference]) -- ^ "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 256 such reservations. This may get increased in the future, but not reduced.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceClaimStatus-instance A.FromJSON V1beta2ResourceClaimStatus where- parseJSON = A.withObject "V1beta2ResourceClaimStatus" $ \o ->- V1beta2ResourceClaimStatus- <$> (o .:? "allocation")- <*> (o .:? "devices")- <*> (o .:? "reservedFor")---- | ToJSON V1beta2ResourceClaimStatus-instance A.ToJSON V1beta2ResourceClaimStatus where- toJSON V1beta2ResourceClaimStatus {..} =- _omitNulls- [ "allocation" .= v1beta2ResourceClaimStatusAllocation- , "devices" .= v1beta2ResourceClaimStatusDevices- , "reservedFor" .= v1beta2ResourceClaimStatusReservedFor- ]----- | Construct a value of type 'V1beta2ResourceClaimStatus' (by applying it's required fields, if any)-mkV1beta2ResourceClaimStatus- :: V1beta2ResourceClaimStatus-mkV1beta2ResourceClaimStatus =- V1beta2ResourceClaimStatus- { v1beta2ResourceClaimStatusAllocation = Nothing- , v1beta2ResourceClaimStatusDevices = Nothing- , v1beta2ResourceClaimStatusReservedFor = Nothing- }---- ** V1beta2ResourceClaimTemplate--- | V1beta2ResourceClaimTemplate--- ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.-data V1beta2ResourceClaimTemplate = V1beta2ResourceClaimTemplate- { v1beta2ResourceClaimTemplateApiVersion :: !(Maybe Text) -- ^ "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- , v1beta2ResourceClaimTemplateKind :: !(Maybe Text) -- ^ "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- , v1beta2ResourceClaimTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta2ResourceClaimTemplateSpec :: !(V1beta2ResourceClaimTemplateSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceClaimTemplate-instance A.FromJSON V1beta2ResourceClaimTemplate where- parseJSON = A.withObject "V1beta2ResourceClaimTemplate" $ \o ->- V1beta2ResourceClaimTemplate- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta2ResourceClaimTemplate-instance A.ToJSON V1beta2ResourceClaimTemplate where- toJSON V1beta2ResourceClaimTemplate {..} =- _omitNulls- [ "apiVersion" .= v1beta2ResourceClaimTemplateApiVersion- , "kind" .= v1beta2ResourceClaimTemplateKind- , "metadata" .= v1beta2ResourceClaimTemplateMetadata- , "spec" .= v1beta2ResourceClaimTemplateSpec- ]----- | Construct a value of type 'V1beta2ResourceClaimTemplate' (by applying it's required fields, if any)-mkV1beta2ResourceClaimTemplate- :: V1beta2ResourceClaimTemplateSpec -- ^ 'v1beta2ResourceClaimTemplateSpec' - -> V1beta2ResourceClaimTemplate-mkV1beta2ResourceClaimTemplate v1beta2ResourceClaimTemplateSpec =- V1beta2ResourceClaimTemplate- { v1beta2ResourceClaimTemplateApiVersion = Nothing- , v1beta2ResourceClaimTemplateKind = Nothing- , v1beta2ResourceClaimTemplateMetadata = Nothing- , v1beta2ResourceClaimTemplateSpec- }---- ** V1beta2ResourceClaimTemplateList--- | V1beta2ResourceClaimTemplateList--- ResourceClaimTemplateList is a collection of claim templates.-data V1beta2ResourceClaimTemplateList = V1beta2ResourceClaimTemplateList- { v1beta2ResourceClaimTemplateListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta2ResourceClaimTemplateListItems :: !([V1beta2ResourceClaimTemplate]) -- ^ /Required/ "items" - Items is the list of resource claim templates.- , v1beta2ResourceClaimTemplateListKind :: !(Maybe Text) -- ^ "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- , v1beta2ResourceClaimTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceClaimTemplateList-instance A.FromJSON V1beta2ResourceClaimTemplateList where- parseJSON = A.withObject "V1beta2ResourceClaimTemplateList" $ \o ->- V1beta2ResourceClaimTemplateList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta2ResourceClaimTemplateList-instance A.ToJSON V1beta2ResourceClaimTemplateList where- toJSON V1beta2ResourceClaimTemplateList {..} =- _omitNulls- [ "apiVersion" .= v1beta2ResourceClaimTemplateListApiVersion- , "items" .= v1beta2ResourceClaimTemplateListItems- , "kind" .= v1beta2ResourceClaimTemplateListKind- , "metadata" .= v1beta2ResourceClaimTemplateListMetadata- ]----- | Construct a value of type 'V1beta2ResourceClaimTemplateList' (by applying it's required fields, if any)-mkV1beta2ResourceClaimTemplateList- :: [V1beta2ResourceClaimTemplate] -- ^ 'v1beta2ResourceClaimTemplateListItems': Items is the list of resource claim templates.- -> V1beta2ResourceClaimTemplateList-mkV1beta2ResourceClaimTemplateList v1beta2ResourceClaimTemplateListItems =- V1beta2ResourceClaimTemplateList- { v1beta2ResourceClaimTemplateListApiVersion = Nothing- , v1beta2ResourceClaimTemplateListItems- , v1beta2ResourceClaimTemplateListKind = Nothing- , v1beta2ResourceClaimTemplateListMetadata = Nothing- }---- ** V1beta2ResourceClaimTemplateSpec--- | V1beta2ResourceClaimTemplateSpec--- ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.-data V1beta2ResourceClaimTemplateSpec = V1beta2ResourceClaimTemplateSpec- { v1beta2ResourceClaimTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta2ResourceClaimTemplateSpecSpec :: !(V1beta2ResourceClaimSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceClaimTemplateSpec-instance A.FromJSON V1beta2ResourceClaimTemplateSpec where- parseJSON = A.withObject "V1beta2ResourceClaimTemplateSpec" $ \o ->- V1beta2ResourceClaimTemplateSpec- <$> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta2ResourceClaimTemplateSpec-instance A.ToJSON V1beta2ResourceClaimTemplateSpec where- toJSON V1beta2ResourceClaimTemplateSpec {..} =- _omitNulls- [ "metadata" .= v1beta2ResourceClaimTemplateSpecMetadata- , "spec" .= v1beta2ResourceClaimTemplateSpecSpec- ]----- | Construct a value of type 'V1beta2ResourceClaimTemplateSpec' (by applying it's required fields, if any)-mkV1beta2ResourceClaimTemplateSpec- :: V1beta2ResourceClaimSpec -- ^ 'v1beta2ResourceClaimTemplateSpecSpec' - -> V1beta2ResourceClaimTemplateSpec-mkV1beta2ResourceClaimTemplateSpec v1beta2ResourceClaimTemplateSpecSpec =- V1beta2ResourceClaimTemplateSpec- { v1beta2ResourceClaimTemplateSpecMetadata = Nothing- , v1beta2ResourceClaimTemplateSpecSpec- }---- ** V1beta2ResourcePool--- | V1beta2ResourcePool--- ResourcePool describes the pool that ResourceSlices belong to.-data V1beta2ResourcePool = V1beta2ResourcePool- { v1beta2ResourcePoolGeneration :: !(Integer) -- ^ /Required/ "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.- , v1beta2ResourcePoolName :: !(Text) -- ^ /Required/ "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.- , v1beta2ResourcePoolResourceSliceCount :: !(Integer) -- ^ /Required/ "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.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourcePool-instance A.FromJSON V1beta2ResourcePool where- parseJSON = A.withObject "V1beta2ResourcePool" $ \o ->- V1beta2ResourcePool- <$> (o .: "generation")- <*> (o .: "name")- <*> (o .: "resourceSliceCount")---- | ToJSON V1beta2ResourcePool-instance A.ToJSON V1beta2ResourcePool where- toJSON V1beta2ResourcePool {..} =- _omitNulls- [ "generation" .= v1beta2ResourcePoolGeneration- , "name" .= v1beta2ResourcePoolName- , "resourceSliceCount" .= v1beta2ResourcePoolResourceSliceCount- ]----- | Construct a value of type 'V1beta2ResourcePool' (by applying it's required fields, if any)-mkV1beta2ResourcePool- :: Integer -- ^ 'v1beta2ResourcePoolGeneration': 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.- -> Text -- ^ 'v1beta2ResourcePoolName': 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.- -> Integer -- ^ 'v1beta2ResourcePoolResourceSliceCount': 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.- -> V1beta2ResourcePool-mkV1beta2ResourcePool v1beta2ResourcePoolGeneration v1beta2ResourcePoolName v1beta2ResourcePoolResourceSliceCount =- V1beta2ResourcePool- { v1beta2ResourcePoolGeneration- , v1beta2ResourcePoolName- , v1beta2ResourcePoolResourceSliceCount- }---- ** V1beta2ResourceSlice--- | V1beta2ResourceSlice--- 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.-data V1beta2ResourceSlice = V1beta2ResourceSlice- { v1beta2ResourceSliceApiVersion :: !(Maybe Text) -- ^ "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- , v1beta2ResourceSliceKind :: !(Maybe Text) -- ^ "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- , v1beta2ResourceSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"- , v1beta2ResourceSliceSpec :: !(V1beta2ResourceSliceSpec) -- ^ /Required/ "spec"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceSlice-instance A.FromJSON V1beta2ResourceSlice where- parseJSON = A.withObject "V1beta2ResourceSlice" $ \o ->- V1beta2ResourceSlice- <$> (o .:? "apiVersion")- <*> (o .:? "kind")- <*> (o .:? "metadata")- <*> (o .: "spec")---- | ToJSON V1beta2ResourceSlice-instance A.ToJSON V1beta2ResourceSlice where- toJSON V1beta2ResourceSlice {..} =- _omitNulls- [ "apiVersion" .= v1beta2ResourceSliceApiVersion- , "kind" .= v1beta2ResourceSliceKind- , "metadata" .= v1beta2ResourceSliceMetadata- , "spec" .= v1beta2ResourceSliceSpec- ]----- | Construct a value of type 'V1beta2ResourceSlice' (by applying it's required fields, if any)-mkV1beta2ResourceSlice- :: V1beta2ResourceSliceSpec -- ^ 'v1beta2ResourceSliceSpec' - -> V1beta2ResourceSlice-mkV1beta2ResourceSlice v1beta2ResourceSliceSpec =- V1beta2ResourceSlice- { v1beta2ResourceSliceApiVersion = Nothing- , v1beta2ResourceSliceKind = Nothing- , v1beta2ResourceSliceMetadata = Nothing- , v1beta2ResourceSliceSpec- }---- ** V1beta2ResourceSliceList--- | V1beta2ResourceSliceList--- ResourceSliceList is a collection of ResourceSlices.-data V1beta2ResourceSliceList = V1beta2ResourceSliceList- { v1beta2ResourceSliceListApiVersion :: !(Maybe Text) -- ^ "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- , v1beta2ResourceSliceListItems :: !([V1beta2ResourceSlice]) -- ^ /Required/ "items" - Items is the list of resource ResourceSlices.- , v1beta2ResourceSliceListKind :: !(Maybe Text) -- ^ "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- , v1beta2ResourceSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceSliceList-instance A.FromJSON V1beta2ResourceSliceList where- parseJSON = A.withObject "V1beta2ResourceSliceList" $ \o ->- V1beta2ResourceSliceList- <$> (o .:? "apiVersion")- <*> (o .: "items")- <*> (o .:? "kind")- <*> (o .:? "metadata")---- | ToJSON V1beta2ResourceSliceList-instance A.ToJSON V1beta2ResourceSliceList where- toJSON V1beta2ResourceSliceList {..} =- _omitNulls- [ "apiVersion" .= v1beta2ResourceSliceListApiVersion- , "items" .= v1beta2ResourceSliceListItems- , "kind" .= v1beta2ResourceSliceListKind- , "metadata" .= v1beta2ResourceSliceListMetadata- ]----- | Construct a value of type 'V1beta2ResourceSliceList' (by applying it's required fields, if any)-mkV1beta2ResourceSliceList- :: [V1beta2ResourceSlice] -- ^ 'v1beta2ResourceSliceListItems': Items is the list of resource ResourceSlices.- -> V1beta2ResourceSliceList-mkV1beta2ResourceSliceList v1beta2ResourceSliceListItems =- V1beta2ResourceSliceList- { v1beta2ResourceSliceListApiVersion = Nothing- , v1beta2ResourceSliceListItems- , v1beta2ResourceSliceListKind = Nothing- , v1beta2ResourceSliceListMetadata = Nothing- }---- ** V1beta2ResourceSliceSpec--- | V1beta2ResourceSliceSpec--- ResourceSliceSpec contains the information published by the driver in one ResourceSlice.-data V1beta2ResourceSliceSpec = V1beta2ResourceSliceSpec- { v1beta2ResourceSliceSpecAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the resources in the pool. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.- , v1beta2ResourceSliceSpecDevices :: !(Maybe [V1beta2Device]) -- ^ "devices" - Devices lists some or all of the devices in this pool. Must not have more than 128 entries.- , v1beta2ResourceSliceSpecDriver :: !(Text) -- ^ /Required/ "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.- , v1beta2ResourceSliceSpecNodeName :: !(Maybe Text) -- ^ "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, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.- , v1beta2ResourceSliceSpecNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"- , v1beta2ResourceSliceSpecPerDeviceNodeSelection :: !(Maybe Bool) -- ^ "perDeviceNodeSelection" - PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.- , v1beta2ResourceSliceSpecPool :: !(V1beta2ResourcePool) -- ^ /Required/ "pool"- , v1beta2ResourceSliceSpecSharedCounters :: !(Maybe [V1beta2CounterSet]) -- ^ "sharedCounters" - SharedCounters defines a list of counter sets, each of which has a name and a list of counters available. The names of the SharedCounters must be unique in the ResourceSlice. The maximum number of counters in all sets is 32.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V1beta2ResourceSliceSpec-instance A.FromJSON V1beta2ResourceSliceSpec where- parseJSON = A.withObject "V1beta2ResourceSliceSpec" $ \o ->- V1beta2ResourceSliceSpec- <$> (o .:? "allNodes")- <*> (o .:? "devices")- <*> (o .: "driver")- <*> (o .:? "nodeName")- <*> (o .:? "nodeSelector")- <*> (o .:? "perDeviceNodeSelection")- <*> (o .: "pool")- <*> (o .:? "sharedCounters")---- | ToJSON V1beta2ResourceSliceSpec-instance A.ToJSON V1beta2ResourceSliceSpec where- toJSON V1beta2ResourceSliceSpec {..} =- _omitNulls- [ "allNodes" .= v1beta2ResourceSliceSpecAllNodes- , "devices" .= v1beta2ResourceSliceSpecDevices- , "driver" .= v1beta2ResourceSliceSpecDriver- , "nodeName" .= v1beta2ResourceSliceSpecNodeName- , "nodeSelector" .= v1beta2ResourceSliceSpecNodeSelector- , "perDeviceNodeSelection" .= v1beta2ResourceSliceSpecPerDeviceNodeSelection- , "pool" .= v1beta2ResourceSliceSpecPool- , "sharedCounters" .= v1beta2ResourceSliceSpecSharedCounters- ]----- | Construct a value of type 'V1beta2ResourceSliceSpec' (by applying it's required fields, if any)-mkV1beta2ResourceSliceSpec- :: Text -- ^ 'v1beta2ResourceSliceSpecDriver': 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.- -> V1beta2ResourcePool -- ^ 'v1beta2ResourceSliceSpecPool' - -> V1beta2ResourceSliceSpec-mkV1beta2ResourceSliceSpec v1beta2ResourceSliceSpecDriver v1beta2ResourceSliceSpecPool =- V1beta2ResourceSliceSpec- { v1beta2ResourceSliceSpecAllNodes = Nothing- , v1beta2ResourceSliceSpecDevices = Nothing- , v1beta2ResourceSliceSpecDriver- , v1beta2ResourceSliceSpecNodeName = Nothing- , v1beta2ResourceSliceSpecNodeSelector = Nothing- , v1beta2ResourceSliceSpecPerDeviceNodeSelection = Nothing- , v1beta2ResourceSliceSpecPool- , v1beta2ResourceSliceSpecSharedCounters = Nothing- }---- ** V2ContainerResourceMetricSource--- | V2ContainerResourceMetricSource--- ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. 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. Only one \"target\" type should be set.-data V2ContainerResourceMetricSource = V2ContainerResourceMetricSource- { v2ContainerResourceMetricSourceContainer :: !(Text) -- ^ /Required/ "container" - container is the name of the container in the pods of the scaling target- , v2ContainerResourceMetricSourceName :: !(Text) -- ^ /Required/ "name" - name is the name of the resource in question.- , v2ContainerResourceMetricSourceTarget :: !(V2MetricTarget) -- ^ /Required/ "target"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V2ContainerResourceMetricSource-instance A.FromJSON V2ContainerResourceMetricSource where- parseJSON = A.withObject "V2ContainerResourceMetricSource" $ \o ->- V2ContainerResourceMetricSource- <$> (o .: "container")- <*> (o .: "name")- <*> (o .: "target")---- | ToJSON V2ContainerResourceMetricSource-instance A.ToJSON V2ContainerResourceMetricSource where- toJSON V2ContainerResourceMetricSource {..} =- _omitNulls- [ "container" .= v2ContainerResourceMetricSourceContainer- , "name" .= v2ContainerResourceMetricSourceName- , "target" .= v2ContainerResourceMetricSourceTarget- ]----- | Construct a value of type 'V2ContainerResourceMetricSource' (by applying it's required fields, if any)-mkV2ContainerResourceMetricSource- :: Text -- ^ 'v2ContainerResourceMetricSourceContainer': container is the name of the container in the pods of the scaling target- -> Text -- ^ 'v2ContainerResourceMetricSourceName': name is the name of the resource in question.- -> V2MetricTarget -- ^ 'v2ContainerResourceMetricSourceTarget' - -> V2ContainerResourceMetricSource-mkV2ContainerResourceMetricSource v2ContainerResourceMetricSourceContainer v2ContainerResourceMetricSourceName v2ContainerResourceMetricSourceTarget =- V2ContainerResourceMetricSource- { v2ContainerResourceMetricSourceContainer- , v2ContainerResourceMetricSourceName- , v2ContainerResourceMetricSourceTarget- }---- ** V2ContainerResourceMetricStatus--- | V2ContainerResourceMetricStatus--- ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, 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.-data V2ContainerResourceMetricStatus = V2ContainerResourceMetricStatus- { v2ContainerResourceMetricStatusContainer :: !(Text) -- ^ /Required/ "container" - container is the name of the container in the pods of the scaling target- , v2ContainerResourceMetricStatusCurrent :: !(V2MetricValueStatus) -- ^ /Required/ "current"- , v2ContainerResourceMetricStatusName :: !(Text) -- ^ /Required/ "name" - name is the name of the resource in question.- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V2ContainerResourceMetricStatus-instance A.FromJSON V2ContainerResourceMetricStatus where- parseJSON = A.withObject "V2ContainerResourceMetricStatus" $ \o ->- V2ContainerResourceMetricStatus- <$> (o .: "container")- <*> (o .: "current")- <*> (o .: "name")---- | ToJSON V2ContainerResourceMetricStatus-instance A.ToJSON V2ContainerResourceMetricStatus where- toJSON V2ContainerResourceMetricStatus {..} =- _omitNulls- [ "container" .= v2ContainerResourceMetricStatusContainer- , "current" .= v2ContainerResourceMetricStatusCurrent- , "name" .= v2ContainerResourceMetricStatusName- ]----- | Construct a value of type 'V2ContainerResourceMetricStatus' (by applying it's required fields, if any)-mkV2ContainerResourceMetricStatus- :: Text -- ^ 'v2ContainerResourceMetricStatusContainer': container is the name of the container in the pods of the scaling target- -> V2MetricValueStatus -- ^ 'v2ContainerResourceMetricStatusCurrent' - -> Text -- ^ 'v2ContainerResourceMetricStatusName': name is the name of the resource in question.- -> V2ContainerResourceMetricStatus-mkV2ContainerResourceMetricStatus v2ContainerResourceMetricStatusContainer v2ContainerResourceMetricStatusCurrent v2ContainerResourceMetricStatusName =- V2ContainerResourceMetricStatus- { v2ContainerResourceMetricStatusContainer- , v2ContainerResourceMetricStatusCurrent- , v2ContainerResourceMetricStatusName- }---- ** V2CrossVersionObjectReference--- | V2CrossVersionObjectReference--- CrossVersionObjectReference contains enough information to let you identify the referred resource.-data V2CrossVersionObjectReference = V2CrossVersionObjectReference- { v2CrossVersionObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - apiVersion is the API version of the referent- , v2CrossVersionObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds- , v2CrossVersionObjectReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V2CrossVersionObjectReference-instance A.FromJSON V2CrossVersionObjectReference where- parseJSON = A.withObject "V2CrossVersionObjectReference" $ \o ->- V2CrossVersionObjectReference- <$> (o .:? "apiVersion")- <*> (o .: "kind")- <*> (o .: "name")---- | ToJSON V2CrossVersionObjectReference-instance A.ToJSON V2CrossVersionObjectReference where- toJSON V2CrossVersionObjectReference {..} =- _omitNulls- [ "apiVersion" .= v2CrossVersionObjectReferenceApiVersion- , "kind" .= v2CrossVersionObjectReferenceKind- , "name" .= v2CrossVersionObjectReferenceName- ]----- | Construct a value of type 'V2CrossVersionObjectReference' (by applying it's required fields, if any)-mkV2CrossVersionObjectReference- :: Text -- ^ 'v2CrossVersionObjectReferenceKind': kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds- -> Text -- ^ 'v2CrossVersionObjectReferenceName': name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names- -> V2CrossVersionObjectReference-mkV2CrossVersionObjectReference v2CrossVersionObjectReferenceKind v2CrossVersionObjectReferenceName =- V2CrossVersionObjectReference- { v2CrossVersionObjectReferenceApiVersion = Nothing- , v2CrossVersionObjectReferenceKind- , v2CrossVersionObjectReferenceName- }---- ** V2ExternalMetricSource--- | V2ExternalMetricSource--- ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).-data V2ExternalMetricSource = V2ExternalMetricSource- { v2ExternalMetricSourceMetric :: !(V2MetricIdentifier) -- ^ /Required/ "metric"- , v2ExternalMetricSourceTarget :: !(V2MetricTarget) -- ^ /Required/ "target"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V2ExternalMetricSource-instance A.FromJSON V2ExternalMetricSource where- parseJSON = A.withObject "V2ExternalMetricSource" $ \o ->- V2ExternalMetricSource- <$> (o .: "metric")- <*> (o .: "target")---- | ToJSON V2ExternalMetricSource-instance A.ToJSON V2ExternalMetricSource where- toJSON V2ExternalMetricSource {..} =- _omitNulls- [ "metric" .= v2ExternalMetricSourceMetric- , "target" .= v2ExternalMetricSourceTarget- ]----- | Construct a value of type 'V2ExternalMetricSource' (by applying it's required fields, if any)-mkV2ExternalMetricSource- :: V2MetricIdentifier -- ^ 'v2ExternalMetricSourceMetric' - -> V2MetricTarget -- ^ 'v2ExternalMetricSourceTarget' - -> V2ExternalMetricSource-mkV2ExternalMetricSource v2ExternalMetricSourceMetric v2ExternalMetricSourceTarget =- V2ExternalMetricSource- { v2ExternalMetricSourceMetric- , v2ExternalMetricSourceTarget- }---- ** V2ExternalMetricStatus--- | V2ExternalMetricStatus--- ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.-data V2ExternalMetricStatus = V2ExternalMetricStatus- { v2ExternalMetricStatusCurrent :: !(V2MetricValueStatus) -- ^ /Required/ "current"- , v2ExternalMetricStatusMetric :: !(V2MetricIdentifier) -- ^ /Required/ "metric"- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V2ExternalMetricStatus-instance A.FromJSON V2ExternalMetricStatus where- parseJSON = A.withObject "V2ExternalMetricStatus" $ \o ->- V2ExternalMetricStatus- <$> (o .: "current")- <*> (o .: "metric")---- | ToJSON V2ExternalMetricStatus-instance A.ToJSON V2ExternalMetricStatus where- toJSON V2ExternalMetricStatus {..} =- _omitNulls- [ "current" .= v2ExternalMetricStatusCurrent- , "metric" .= v2ExternalMetricStatusMetric- ]----- | Construct a value of type 'V2ExternalMetricStatus' (by applying it's required fields, if any)-mkV2ExternalMetricStatus- :: V2MetricValueStatus -- ^ 'v2ExternalMetricStatusCurrent' - -> V2MetricIdentifier -- ^ 'v2ExternalMetricStatusMetric' - -> V2ExternalMetricStatus-mkV2ExternalMetricStatus v2ExternalMetricStatusCurrent v2ExternalMetricStatusMetric =- V2ExternalMetricStatus- { v2ExternalMetricStatusCurrent- , v2ExternalMetricStatusMetric- }---- ** V2HPAScalingPolicy--- | V2HPAScalingPolicy--- HPAScalingPolicy is a single policy which must hold true for a specified past interval.-data V2HPAScalingPolicy = V2HPAScalingPolicy- { v2HPAScalingPolicyPeriodSeconds :: !(Int) -- ^ /Required/ "periodSeconds" - periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).- , v2HPAScalingPolicyType :: !(Text) -- ^ /Required/ "type" - type is used to specify the scaling policy.- , v2HPAScalingPolicyValue :: !(Int) -- ^ /Required/ "value" - value contains the amount of change which is permitted by the policy. It must be greater than zero- } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON V2HPAScalingPolicy-instance A.FromJSON V2HPAScalingPolicy where- parseJSON = A.withObject "V2HPAScalingPolicy" $ \o ->- V2HPAScalingPolicy- <$> (o .: "periodSeconds")- <*> (o .: "type")- <*> (o .: "value")---- | ToJSON V2HPAScalingPolicy-instance A.ToJSON V2HPAScalingPolicy where- toJSON V2HPAScalingPolicy {..} =- _omitNulls- [ "periodSeconds" .= v2HPAScalingPolicyPeriodSeconds- , "type" .= v2HPAScalingPolicyType- , "value" .= v2HPAScalingPolicyValue- ]----- | Construct a value of type 'V2HPAScalingPolicy' (by applying it's required fields, if any)-mkV2HPAScalingPolicy- :: Int -- ^ 'v2HPAScalingPolicyPeriodSeconds': periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).- -> Text -- ^ 'v2HPAScalingPolicyType': type is used to specify the scaling policy.- -> Int -- ^ 'v2HPAScalingPolicyValue': value contains the amount of change which is permitted by the policy. It must be greater than zero- -> V2HPAScalingPolicy-mkV2HPAScalingPolicy v2HPAScalingPolicyPeriodSeconds v2HPAScalingPolicyType v2HPAScalingPolicyValue =- V2HPAScalingPolicy- { v2HPAScalingPolicyPeriodSeconds- , v2HPAScalingPolicyType- , v2HPAScalingPolicyValue- }---- ** V2HPAScalingRules--- | V2HPAScalingRules--- HPAScalingRules configures the scaling behavior for one direction via scaling Policy Rules and a configurable metric tolerance. Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires enabling the alpha HPAConfigurableTolerance feature gate.)+ Kubernetes API version: release-1.35+ Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Kubernetes.OpenAPI.Model+-}++{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveFoldable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveTraversable #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Kubernetes.OpenAPI.Model (module Kubernetes.OpenAPI.Model, module Kubernetes.OpenAPI.ImportMappings) where++import Kubernetes.OpenAPI.Core+import Kubernetes.OpenAPI.MimeTypes+import Kubernetes.OpenAPI.ImportMappings++import Data.Aeson ((.:),(.:!),(.:?),(.=))++import qualified Control.Arrow as P (left)+import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Base64 as B64+import qualified Data.ByteString.Char8 as BC+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.HashMap.Lazy as HM+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Set as Set+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Time as TI+import qualified Lens.Micro as L+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Control.Applicative ((<|>))+import Control.Applicative (Alternative)+import Data.Function ((&))+import Data.Monoid ((<>))+import Data.Text (Text)+import Prelude (($),(/=),(.),(<$>),(<*>),(>>=),(=<<),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)++import qualified Prelude as P++++-- * Parameter newtypes+++-- ** AllowWatchBookmarks+newtype AllowWatchBookmarks = AllowWatchBookmarks { unAllowWatchBookmarks :: Bool } deriving (P.Eq, P.Show)++-- ** Body+newtype Body = Body { unBody :: A.Value } deriving (P.Eq, P.Show, A.ToJSON)++-- ** Command+newtype Command = Command { unCommand :: Text } deriving (P.Eq, P.Show)++-- ** Container+newtype Container = Container { unContainer :: Text } deriving (P.Eq, P.Show)++-- ** Continue+newtype Continue = Continue { unContinue :: Text } deriving (P.Eq, P.Show)++-- ** DryRun+newtype DryRun = DryRun { unDryRun :: Text } deriving (P.Eq, P.Show)++-- ** FieldManager+newtype FieldManager = FieldManager { unFieldManager :: Text } deriving (P.Eq, P.Show)++-- ** FieldSelector+newtype FieldSelector = FieldSelector { unFieldSelector :: Text } deriving (P.Eq, P.Show)++-- ** FieldValidation+newtype FieldValidation = FieldValidation { unFieldValidation :: Text } deriving (P.Eq, P.Show)++-- ** Follow+newtype Follow = Follow { unFollow :: Bool } deriving (P.Eq, P.Show)++-- ** Force+newtype Force = Force { unForce :: Bool } deriving (P.Eq, P.Show)++-- ** GracePeriodSeconds+newtype GracePeriodSeconds = GracePeriodSeconds { unGracePeriodSeconds :: Int } deriving (P.Eq, P.Show)++-- ** Group+newtype Group = Group { unGroup :: Text } deriving (P.Eq, P.Show)++-- ** IgnoreStoreReadErrorWithClusterBreakingPotential+newtype IgnoreStoreReadErrorWithClusterBreakingPotential = IgnoreStoreReadErrorWithClusterBreakingPotential { unIgnoreStoreReadErrorWithClusterBreakingPotential :: Bool } deriving (P.Eq, P.Show)++-- ** InsecureSkipTlsVerifyBackend+newtype InsecureSkipTlsVerifyBackend = InsecureSkipTlsVerifyBackend { unInsecureSkipTlsVerifyBackend :: Bool } deriving (P.Eq, P.Show)++-- ** LabelSelector+newtype LabelSelector = LabelSelector { unLabelSelector :: Text } deriving (P.Eq, P.Show)++-- ** Limit+newtype Limit = Limit { unLimit :: Int } deriving (P.Eq, P.Show)++-- ** LimitBytes+newtype LimitBytes = LimitBytes { unLimitBytes :: Int } deriving (P.Eq, P.Show)++-- ** Logpath+newtype Logpath = Logpath { unLogpath :: Text } deriving (P.Eq, P.Show)++-- ** Name+newtype Name = Name { unName :: Text } deriving (P.Eq, P.Show)++-- ** Namespace+newtype Namespace = Namespace { unNamespace :: Text } deriving (P.Eq, P.Show)++-- ** OrphanDependents+newtype OrphanDependents = OrphanDependents { unOrphanDependents :: Bool } deriving (P.Eq, P.Show)++-- ** Path+newtype Path = Path { unPath :: Text } deriving (P.Eq, P.Show)++-- ** Path2+newtype Path2 = Path2 { unPath2 :: Text } deriving (P.Eq, P.Show)++-- ** Plural+newtype Plural = Plural { unPlural :: Text } deriving (P.Eq, P.Show)++-- ** Ports+newtype Ports = Ports { unPorts :: Int } deriving (P.Eq, P.Show)++-- ** Pretty+newtype Pretty = Pretty { unPretty :: Text } deriving (P.Eq, P.Show)++-- ** Previous+newtype Previous = Previous { unPrevious :: Bool } deriving (P.Eq, P.Show)++-- ** PropagationPolicy+newtype PropagationPolicy = PropagationPolicy { unPropagationPolicy :: Text } deriving (P.Eq, P.Show)++-- ** ResourcePlural+newtype ResourcePlural = ResourcePlural { unResourcePlural :: Text } deriving (P.Eq, P.Show)++-- ** ResourceVersion+newtype ResourceVersion = ResourceVersion { unResourceVersion :: Text } deriving (P.Eq, P.Show)++-- ** ResourceVersionMatch+newtype ResourceVersionMatch = ResourceVersionMatch { unResourceVersionMatch :: Text } deriving (P.Eq, P.Show)++-- ** SendInitialEvents+newtype SendInitialEvents = SendInitialEvents { unSendInitialEvents :: Bool } deriving (P.Eq, P.Show)++-- ** SinceSeconds+newtype SinceSeconds = SinceSeconds { unSinceSeconds :: Int } deriving (P.Eq, P.Show)++-- ** Stderr+newtype Stderr = Stderr { unStderr :: Bool } deriving (P.Eq, P.Show)++-- ** Stdin+newtype Stdin = Stdin { unStdin :: Bool } deriving (P.Eq, P.Show)++-- ** Stdout+newtype Stdout = Stdout { unStdout :: Bool } deriving (P.Eq, P.Show)++-- ** Stream+newtype Stream = Stream { unStream :: Text } deriving (P.Eq, P.Show)++-- ** TailLines+newtype TailLines = TailLines { unTailLines :: Int } deriving (P.Eq, P.Show)++-- ** TimeoutSeconds+newtype TimeoutSeconds = TimeoutSeconds { unTimeoutSeconds :: Int } deriving (P.Eq, P.Show)++-- ** Timestamps+newtype Timestamps = Timestamps { unTimestamps :: Bool } deriving (P.Eq, P.Show)++-- ** Tty+newtype Tty = Tty { unTty :: Bool } deriving (P.Eq, P.Show)++-- ** Version+newtype Version = Version { unVersion :: Text } deriving (P.Eq, P.Show)++-- ** Watch+newtype Watch = Watch { unWatch :: Bool } deriving (P.Eq, P.Show)++-- * Models+++-- ** AdmissionregistrationV1ServiceReference+-- | AdmissionregistrationV1ServiceReference+-- ServiceReference holds a reference to Service.legacy.k8s.io+data AdmissionregistrationV1ServiceReference = AdmissionregistrationV1ServiceReference+ { admissionregistrationV1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - `name` is the name of the service. Required+ , admissionregistrationV1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - `namespace` is the namespace of the service. Required+ , admissionregistrationV1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - `path` is an optional URL path which will be sent in any request to this service.+ , admissionregistrationV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON AdmissionregistrationV1ServiceReference+instance A.FromJSON AdmissionregistrationV1ServiceReference where+ parseJSON = A.withObject "AdmissionregistrationV1ServiceReference" $ \o ->+ AdmissionregistrationV1ServiceReference+ <$> (o .: "name")+ <*> (o .: "namespace")+ <*> (o .:? "path")+ <*> (o .:? "port")++-- | ToJSON AdmissionregistrationV1ServiceReference+instance A.ToJSON AdmissionregistrationV1ServiceReference where+ toJSON AdmissionregistrationV1ServiceReference {..} =+ _omitNulls+ [ "name" .= admissionregistrationV1ServiceReferenceName+ , "namespace" .= admissionregistrationV1ServiceReferenceNamespace+ , "path" .= admissionregistrationV1ServiceReferencePath+ , "port" .= admissionregistrationV1ServiceReferencePort+ ]+++-- | Construct a value of type 'AdmissionregistrationV1ServiceReference' (by applying it's required fields, if any)+mkAdmissionregistrationV1ServiceReference+ :: Text -- ^ 'admissionregistrationV1ServiceReferenceName': `name` is the name of the service. Required+ -> Text -- ^ 'admissionregistrationV1ServiceReferenceNamespace': `namespace` is the namespace of the service. Required+ -> AdmissionregistrationV1ServiceReference+mkAdmissionregistrationV1ServiceReference admissionregistrationV1ServiceReferenceName admissionregistrationV1ServiceReferenceNamespace =+ AdmissionregistrationV1ServiceReference+ { admissionregistrationV1ServiceReferenceName+ , admissionregistrationV1ServiceReferenceNamespace+ , admissionregistrationV1ServiceReferencePath = Nothing+ , admissionregistrationV1ServiceReferencePort = Nothing+ }++-- ** AdmissionregistrationV1WebhookClientConfig+-- | AdmissionregistrationV1WebhookClientConfig+-- WebhookClientConfig contains the information to make a TLS connection with the webhook+data AdmissionregistrationV1WebhookClientConfig = AdmissionregistrationV1WebhookClientConfig+ { admissionregistrationV1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.+ , admissionregistrationV1WebhookClientConfigService :: !(Maybe AdmissionregistrationV1ServiceReference) -- ^ "service"+ , admissionregistrationV1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - `url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified. The `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address. Please note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster. The scheme must be \"https\"; the URL must begin with \"https://\". A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier. Attempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON AdmissionregistrationV1WebhookClientConfig+instance A.FromJSON AdmissionregistrationV1WebhookClientConfig where+ parseJSON = A.withObject "AdmissionregistrationV1WebhookClientConfig" $ \o ->+ AdmissionregistrationV1WebhookClientConfig+ <$> (o .:? "caBundle")+ <*> (o .:? "service")+ <*> (o .:? "url")++-- | ToJSON AdmissionregistrationV1WebhookClientConfig+instance A.ToJSON AdmissionregistrationV1WebhookClientConfig where+ toJSON AdmissionregistrationV1WebhookClientConfig {..} =+ _omitNulls+ [ "caBundle" .= admissionregistrationV1WebhookClientConfigCaBundle+ , "service" .= admissionregistrationV1WebhookClientConfigService+ , "url" .= admissionregistrationV1WebhookClientConfigUrl+ ]+++-- | Construct a value of type 'AdmissionregistrationV1WebhookClientConfig' (by applying it's required fields, if any)+mkAdmissionregistrationV1WebhookClientConfig+ :: AdmissionregistrationV1WebhookClientConfig+mkAdmissionregistrationV1WebhookClientConfig =+ AdmissionregistrationV1WebhookClientConfig+ { admissionregistrationV1WebhookClientConfigCaBundle = Nothing+ , admissionregistrationV1WebhookClientConfigService = Nothing+ , admissionregistrationV1WebhookClientConfigUrl = Nothing+ }++-- ** ApiextensionsV1ServiceReference+-- | ApiextensionsV1ServiceReference+-- ServiceReference holds a reference to Service.legacy.k8s.io+data ApiextensionsV1ServiceReference = ApiextensionsV1ServiceReference+ { apiextensionsV1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of the service. Required+ , apiextensionsV1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - namespace is the namespace of the service. Required+ , apiextensionsV1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - path is an optional URL path at which the webhook will be contacted.+ , apiextensionsV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ApiextensionsV1ServiceReference+instance A.FromJSON ApiextensionsV1ServiceReference where+ parseJSON = A.withObject "ApiextensionsV1ServiceReference" $ \o ->+ ApiextensionsV1ServiceReference+ <$> (o .: "name")+ <*> (o .: "namespace")+ <*> (o .:? "path")+ <*> (o .:? "port")++-- | ToJSON ApiextensionsV1ServiceReference+instance A.ToJSON ApiextensionsV1ServiceReference where+ toJSON ApiextensionsV1ServiceReference {..} =+ _omitNulls+ [ "name" .= apiextensionsV1ServiceReferenceName+ , "namespace" .= apiextensionsV1ServiceReferenceNamespace+ , "path" .= apiextensionsV1ServiceReferencePath+ , "port" .= apiextensionsV1ServiceReferencePort+ ]+++-- | Construct a value of type 'ApiextensionsV1ServiceReference' (by applying it's required fields, if any)+mkApiextensionsV1ServiceReference+ :: Text -- ^ 'apiextensionsV1ServiceReferenceName': name is the name of the service. Required+ -> Text -- ^ 'apiextensionsV1ServiceReferenceNamespace': namespace is the namespace of the service. Required+ -> ApiextensionsV1ServiceReference+mkApiextensionsV1ServiceReference apiextensionsV1ServiceReferenceName apiextensionsV1ServiceReferenceNamespace =+ ApiextensionsV1ServiceReference+ { apiextensionsV1ServiceReferenceName+ , apiextensionsV1ServiceReferenceNamespace+ , apiextensionsV1ServiceReferencePath = Nothing+ , apiextensionsV1ServiceReferencePort = Nothing+ }++-- ** ApiextensionsV1WebhookClientConfig+-- | ApiextensionsV1WebhookClientConfig+-- WebhookClientConfig contains the information to make a TLS connection with the webhook.+data ApiextensionsV1WebhookClientConfig = ApiextensionsV1WebhookClientConfig+ { apiextensionsV1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.+ , apiextensionsV1WebhookClientConfigService :: !(Maybe ApiextensionsV1ServiceReference) -- ^ "service"+ , apiextensionsV1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified. The `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address. Please note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster. The scheme must be \"https\"; the URL must begin with \"https://\". A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier. Attempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ApiextensionsV1WebhookClientConfig+instance A.FromJSON ApiextensionsV1WebhookClientConfig where+ parseJSON = A.withObject "ApiextensionsV1WebhookClientConfig" $ \o ->+ ApiextensionsV1WebhookClientConfig+ <$> (o .:? "caBundle")+ <*> (o .:? "service")+ <*> (o .:? "url")++-- | ToJSON ApiextensionsV1WebhookClientConfig+instance A.ToJSON ApiextensionsV1WebhookClientConfig where+ toJSON ApiextensionsV1WebhookClientConfig {..} =+ _omitNulls+ [ "caBundle" .= apiextensionsV1WebhookClientConfigCaBundle+ , "service" .= apiextensionsV1WebhookClientConfigService+ , "url" .= apiextensionsV1WebhookClientConfigUrl+ ]+++-- | Construct a value of type 'ApiextensionsV1WebhookClientConfig' (by applying it's required fields, if any)+mkApiextensionsV1WebhookClientConfig+ :: ApiextensionsV1WebhookClientConfig+mkApiextensionsV1WebhookClientConfig =+ ApiextensionsV1WebhookClientConfig+ { apiextensionsV1WebhookClientConfigCaBundle = Nothing+ , apiextensionsV1WebhookClientConfigService = Nothing+ , apiextensionsV1WebhookClientConfigUrl = Nothing+ }++-- ** ApiregistrationV1ServiceReference+-- | ApiregistrationV1ServiceReference+-- ServiceReference holds a reference to Service.legacy.k8s.io+data ApiregistrationV1ServiceReference = ApiregistrationV1ServiceReference+ { apiregistrationV1ServiceReferenceName :: !(Maybe Text) -- ^ "name" - Name is the name of the service+ , apiregistrationV1ServiceReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the service+ , apiregistrationV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ApiregistrationV1ServiceReference+instance A.FromJSON ApiregistrationV1ServiceReference where+ parseJSON = A.withObject "ApiregistrationV1ServiceReference" $ \o ->+ ApiregistrationV1ServiceReference+ <$> (o .:? "name")+ <*> (o .:? "namespace")+ <*> (o .:? "port")++-- | ToJSON ApiregistrationV1ServiceReference+instance A.ToJSON ApiregistrationV1ServiceReference where+ toJSON ApiregistrationV1ServiceReference {..} =+ _omitNulls+ [ "name" .= apiregistrationV1ServiceReferenceName+ , "namespace" .= apiregistrationV1ServiceReferenceNamespace+ , "port" .= apiregistrationV1ServiceReferencePort+ ]+++-- | Construct a value of type 'ApiregistrationV1ServiceReference' (by applying it's required fields, if any)+mkApiregistrationV1ServiceReference+ :: ApiregistrationV1ServiceReference+mkApiregistrationV1ServiceReference =+ ApiregistrationV1ServiceReference+ { apiregistrationV1ServiceReferenceName = Nothing+ , apiregistrationV1ServiceReferenceNamespace = Nothing+ , apiregistrationV1ServiceReferencePort = Nothing+ }++-- ** AuthenticationV1TokenRequest+-- | AuthenticationV1TokenRequest+-- TokenRequest requests a token for a given service account.+data AuthenticationV1TokenRequest = AuthenticationV1TokenRequest+ { authenticationV1TokenRequestApiVersion :: !(Maybe Text) -- ^ "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+ , authenticationV1TokenRequestKind :: !(Maybe Text) -- ^ "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+ , authenticationV1TokenRequestMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , authenticationV1TokenRequestSpec :: !(V1TokenRequestSpec) -- ^ /Required/ "spec"+ , authenticationV1TokenRequestStatus :: !(Maybe V1TokenRequestStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON AuthenticationV1TokenRequest+instance A.FromJSON AuthenticationV1TokenRequest where+ parseJSON = A.withObject "AuthenticationV1TokenRequest" $ \o ->+ AuthenticationV1TokenRequest+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON AuthenticationV1TokenRequest+instance A.ToJSON AuthenticationV1TokenRequest where+ toJSON AuthenticationV1TokenRequest {..} =+ _omitNulls+ [ "apiVersion" .= authenticationV1TokenRequestApiVersion+ , "kind" .= authenticationV1TokenRequestKind+ , "metadata" .= authenticationV1TokenRequestMetadata+ , "spec" .= authenticationV1TokenRequestSpec+ , "status" .= authenticationV1TokenRequestStatus+ ]+++-- | Construct a value of type 'AuthenticationV1TokenRequest' (by applying it's required fields, if any)+mkAuthenticationV1TokenRequest+ :: V1TokenRequestSpec -- ^ 'authenticationV1TokenRequestSpec' + -> AuthenticationV1TokenRequest+mkAuthenticationV1TokenRequest authenticationV1TokenRequestSpec =+ AuthenticationV1TokenRequest+ { authenticationV1TokenRequestApiVersion = Nothing+ , authenticationV1TokenRequestKind = Nothing+ , authenticationV1TokenRequestMetadata = Nothing+ , authenticationV1TokenRequestSpec+ , authenticationV1TokenRequestStatus = Nothing+ }++-- ** CoreV1EndpointPort+-- | CoreV1EndpointPort+-- EndpointPort is a tuple that describes a single port. Deprecated: This API is deprecated in v1.33+.+data CoreV1EndpointPort = CoreV1EndpointPort+ { coreV1EndpointPortAppProtocol :: !(Maybe Text) -- ^ "appProtocol" - The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.+ , coreV1EndpointPortName :: !(Maybe Text) -- ^ "name" - The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.+ , coreV1EndpointPortPort :: !(Int) -- ^ /Required/ "port" - The port number of the endpoint.+ , coreV1EndpointPortProtocol :: !(Maybe Text) -- ^ "protocol" - The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CoreV1EndpointPort+instance A.FromJSON CoreV1EndpointPort where+ parseJSON = A.withObject "CoreV1EndpointPort" $ \o ->+ CoreV1EndpointPort+ <$> (o .:? "appProtocol")+ <*> (o .:? "name")+ <*> (o .: "port")+ <*> (o .:? "protocol")++-- | ToJSON CoreV1EndpointPort+instance A.ToJSON CoreV1EndpointPort where+ toJSON CoreV1EndpointPort {..} =+ _omitNulls+ [ "appProtocol" .= coreV1EndpointPortAppProtocol+ , "name" .= coreV1EndpointPortName+ , "port" .= coreV1EndpointPortPort+ , "protocol" .= coreV1EndpointPortProtocol+ ]+++-- | Construct a value of type 'CoreV1EndpointPort' (by applying it's required fields, if any)+mkCoreV1EndpointPort+ :: Int -- ^ 'coreV1EndpointPortPort': The port number of the endpoint.+ -> CoreV1EndpointPort+mkCoreV1EndpointPort coreV1EndpointPortPort =+ CoreV1EndpointPort+ { coreV1EndpointPortAppProtocol = Nothing+ , coreV1EndpointPortName = Nothing+ , coreV1EndpointPortPort+ , coreV1EndpointPortProtocol = Nothing+ }++-- ** CoreV1Event+-- | CoreV1Event+-- Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.+data CoreV1Event = CoreV1Event+ { coreV1EventAction :: !(Maybe Text) -- ^ "action" - What action was taken/failed regarding to the Regarding object.+ , coreV1EventApiVersion :: !(Maybe Text) -- ^ "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+ , coreV1EventCount :: !(Maybe Int) -- ^ "count" - The number of times this event has occurred.+ , coreV1EventEventTime :: !(Maybe DateTime) -- ^ "eventTime" - Time when this Event was first observed.+ , coreV1EventFirstTimestamp :: !(Maybe DateTime) -- ^ "firstTimestamp" - The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)+ , coreV1EventInvolvedObject :: !(V1ObjectReference) -- ^ /Required/ "involvedObject"+ , coreV1EventKind :: !(Maybe Text) -- ^ "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+ , coreV1EventLastTimestamp :: !(Maybe DateTime) -- ^ "lastTimestamp" - The time at which the most recent occurrence of this event was recorded.+ , coreV1EventMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the status of this operation.+ , coreV1EventMetadata :: !(V1ObjectMeta) -- ^ /Required/ "metadata"+ , coreV1EventReason :: !(Maybe Text) -- ^ "reason" - This should be a short, machine understandable string that gives the reason for the transition into the object's current status.+ , coreV1EventRelated :: !(Maybe V1ObjectReference) -- ^ "related"+ , coreV1EventReportingComponent :: !(Maybe Text) -- ^ "reportingComponent" - Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.+ , coreV1EventReportingInstance :: !(Maybe Text) -- ^ "reportingInstance" - ID of the controller instance, e.g. `kubelet-xyzf`.+ , coreV1EventSeries :: !(Maybe CoreV1EventSeries) -- ^ "series"+ , coreV1EventSource :: !(Maybe V1EventSource) -- ^ "source"+ , coreV1EventType :: !(Maybe Text) -- ^ "type" - Type of this event (Normal, Warning), new types could be added in the future+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CoreV1Event+instance A.FromJSON CoreV1Event where+ parseJSON = A.withObject "CoreV1Event" $ \o ->+ CoreV1Event+ <$> (o .:? "action")+ <*> (o .:? "apiVersion")+ <*> (o .:? "count")+ <*> (o .:? "eventTime")+ <*> (o .:? "firstTimestamp")+ <*> (o .: "involvedObject")+ <*> (o .:? "kind")+ <*> (o .:? "lastTimestamp")+ <*> (o .:? "message")+ <*> (o .: "metadata")+ <*> (o .:? "reason")+ <*> (o .:? "related")+ <*> (o .:? "reportingComponent")+ <*> (o .:? "reportingInstance")+ <*> (o .:? "series")+ <*> (o .:? "source")+ <*> (o .:? "type")++-- | ToJSON CoreV1Event+instance A.ToJSON CoreV1Event where+ toJSON CoreV1Event {..} =+ _omitNulls+ [ "action" .= coreV1EventAction+ , "apiVersion" .= coreV1EventApiVersion+ , "count" .= coreV1EventCount+ , "eventTime" .= coreV1EventEventTime+ , "firstTimestamp" .= coreV1EventFirstTimestamp+ , "involvedObject" .= coreV1EventInvolvedObject+ , "kind" .= coreV1EventKind+ , "lastTimestamp" .= coreV1EventLastTimestamp+ , "message" .= coreV1EventMessage+ , "metadata" .= coreV1EventMetadata+ , "reason" .= coreV1EventReason+ , "related" .= coreV1EventRelated+ , "reportingComponent" .= coreV1EventReportingComponent+ , "reportingInstance" .= coreV1EventReportingInstance+ , "series" .= coreV1EventSeries+ , "source" .= coreV1EventSource+ , "type" .= coreV1EventType+ ]+++-- | Construct a value of type 'CoreV1Event' (by applying it's required fields, if any)+mkCoreV1Event+ :: V1ObjectReference -- ^ 'coreV1EventInvolvedObject' + -> V1ObjectMeta -- ^ 'coreV1EventMetadata' + -> CoreV1Event+mkCoreV1Event coreV1EventInvolvedObject coreV1EventMetadata =+ CoreV1Event+ { coreV1EventAction = Nothing+ , coreV1EventApiVersion = Nothing+ , coreV1EventCount = Nothing+ , coreV1EventEventTime = Nothing+ , coreV1EventFirstTimestamp = Nothing+ , coreV1EventInvolvedObject+ , coreV1EventKind = Nothing+ , coreV1EventLastTimestamp = Nothing+ , coreV1EventMessage = Nothing+ , coreV1EventMetadata+ , coreV1EventReason = Nothing+ , coreV1EventRelated = Nothing+ , coreV1EventReportingComponent = Nothing+ , coreV1EventReportingInstance = Nothing+ , coreV1EventSeries = Nothing+ , coreV1EventSource = Nothing+ , coreV1EventType = Nothing+ }++-- ** CoreV1EventList+-- | CoreV1EventList+-- EventList is a list of events.+data CoreV1EventList = CoreV1EventList+ { coreV1EventListApiVersion :: !(Maybe Text) -- ^ "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+ , coreV1EventListItems :: !([CoreV1Event]) -- ^ /Required/ "items" - List of events+ , coreV1EventListKind :: !(Maybe Text) -- ^ "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+ , coreV1EventListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CoreV1EventList+instance A.FromJSON CoreV1EventList where+ parseJSON = A.withObject "CoreV1EventList" $ \o ->+ CoreV1EventList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON CoreV1EventList+instance A.ToJSON CoreV1EventList where+ toJSON CoreV1EventList {..} =+ _omitNulls+ [ "apiVersion" .= coreV1EventListApiVersion+ , "items" .= coreV1EventListItems+ , "kind" .= coreV1EventListKind+ , "metadata" .= coreV1EventListMetadata+ ]+++-- | Construct a value of type 'CoreV1EventList' (by applying it's required fields, if any)+mkCoreV1EventList+ :: [CoreV1Event] -- ^ 'coreV1EventListItems': List of events+ -> CoreV1EventList+mkCoreV1EventList coreV1EventListItems =+ CoreV1EventList+ { coreV1EventListApiVersion = Nothing+ , coreV1EventListItems+ , coreV1EventListKind = Nothing+ , coreV1EventListMetadata = Nothing+ }++-- ** CoreV1EventSeries+-- | CoreV1EventSeries+-- EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.+data CoreV1EventSeries = CoreV1EventSeries+ { coreV1EventSeriesCount :: !(Maybe Int) -- ^ "count" - Number of occurrences in this series up to the last heartbeat time+ , coreV1EventSeriesLastObservedTime :: !(Maybe DateTime) -- ^ "lastObservedTime" - Time of the last occurrence observed+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CoreV1EventSeries+instance A.FromJSON CoreV1EventSeries where+ parseJSON = A.withObject "CoreV1EventSeries" $ \o ->+ CoreV1EventSeries+ <$> (o .:? "count")+ <*> (o .:? "lastObservedTime")++-- | ToJSON CoreV1EventSeries+instance A.ToJSON CoreV1EventSeries where+ toJSON CoreV1EventSeries {..} =+ _omitNulls+ [ "count" .= coreV1EventSeriesCount+ , "lastObservedTime" .= coreV1EventSeriesLastObservedTime+ ]+++-- | Construct a value of type 'CoreV1EventSeries' (by applying it's required fields, if any)+mkCoreV1EventSeries+ :: CoreV1EventSeries+mkCoreV1EventSeries =+ CoreV1EventSeries+ { coreV1EventSeriesCount = Nothing+ , coreV1EventSeriesLastObservedTime = Nothing+ }++-- ** CoreV1ResourceClaim+-- | CoreV1ResourceClaim+-- ResourceClaim references one entry in PodSpec.ResourceClaims.+data CoreV1ResourceClaim = CoreV1ResourceClaim+ { coreV1ResourceClaimName :: !(Text) -- ^ /Required/ "name" - Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.+ , coreV1ResourceClaimRequest :: !(Maybe Text) -- ^ "request" - Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CoreV1ResourceClaim+instance A.FromJSON CoreV1ResourceClaim where+ parseJSON = A.withObject "CoreV1ResourceClaim" $ \o ->+ CoreV1ResourceClaim+ <$> (o .: "name")+ <*> (o .:? "request")++-- | ToJSON CoreV1ResourceClaim+instance A.ToJSON CoreV1ResourceClaim where+ toJSON CoreV1ResourceClaim {..} =+ _omitNulls+ [ "name" .= coreV1ResourceClaimName+ , "request" .= coreV1ResourceClaimRequest+ ]+++-- | Construct a value of type 'CoreV1ResourceClaim' (by applying it's required fields, if any)+mkCoreV1ResourceClaim+ :: Text -- ^ 'coreV1ResourceClaimName': Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.+ -> CoreV1ResourceClaim+mkCoreV1ResourceClaim coreV1ResourceClaimName =+ CoreV1ResourceClaim+ { coreV1ResourceClaimName+ , coreV1ResourceClaimRequest = Nothing+ }++-- ** DiscoveryV1EndpointPort+-- | DiscoveryV1EndpointPort+-- EndpointPort represents a Port used by an EndpointSlice+data DiscoveryV1EndpointPort = DiscoveryV1EndpointPort+ { discoveryV1EndpointPortAppProtocol :: !(Maybe Text) -- ^ "appProtocol" - The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.+ , discoveryV1EndpointPortName :: !(Maybe Text) -- ^ "name" - name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.+ , discoveryV1EndpointPortPort :: !(Maybe Int) -- ^ "port" - port represents the port number of the endpoint. If the EndpointSlice is derived from a Kubernetes service, this must be set to the service's target port. EndpointSlices used for other purposes may have a nil port.+ , discoveryV1EndpointPortProtocol :: !(Maybe Text) -- ^ "protocol" - protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON DiscoveryV1EndpointPort+instance A.FromJSON DiscoveryV1EndpointPort where+ parseJSON = A.withObject "DiscoveryV1EndpointPort" $ \o ->+ DiscoveryV1EndpointPort+ <$> (o .:? "appProtocol")+ <*> (o .:? "name")+ <*> (o .:? "port")+ <*> (o .:? "protocol")++-- | ToJSON DiscoveryV1EndpointPort+instance A.ToJSON DiscoveryV1EndpointPort where+ toJSON DiscoveryV1EndpointPort {..} =+ _omitNulls+ [ "appProtocol" .= discoveryV1EndpointPortAppProtocol+ , "name" .= discoveryV1EndpointPortName+ , "port" .= discoveryV1EndpointPortPort+ , "protocol" .= discoveryV1EndpointPortProtocol+ ]+++-- | Construct a value of type 'DiscoveryV1EndpointPort' (by applying it's required fields, if any)+mkDiscoveryV1EndpointPort+ :: DiscoveryV1EndpointPort+mkDiscoveryV1EndpointPort =+ DiscoveryV1EndpointPort+ { discoveryV1EndpointPortAppProtocol = Nothing+ , discoveryV1EndpointPortName = Nothing+ , discoveryV1EndpointPortPort = Nothing+ , discoveryV1EndpointPortProtocol = Nothing+ }++-- ** EventsV1Event+-- | EventsV1Event+-- Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.+data EventsV1Event = EventsV1Event+ { eventsV1EventAction :: !(Maybe Text) -- ^ "action" - action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field cannot be empty for new Events and it can have at most 128 characters.+ , eventsV1EventApiVersion :: !(Maybe Text) -- ^ "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+ , eventsV1EventDeprecatedCount :: !(Maybe Int) -- ^ "deprecatedCount" - deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.+ , eventsV1EventDeprecatedFirstTimestamp :: !(Maybe DateTime) -- ^ "deprecatedFirstTimestamp" - deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.+ , eventsV1EventDeprecatedLastTimestamp :: !(Maybe DateTime) -- ^ "deprecatedLastTimestamp" - deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.+ , eventsV1EventDeprecatedSource :: !(Maybe V1EventSource) -- ^ "deprecatedSource"+ , eventsV1EventEventTime :: !(DateTime) -- ^ /Required/ "eventTime" - eventTime is the time when this Event was first observed. It is required.+ , eventsV1EventKind :: !(Maybe Text) -- ^ "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+ , eventsV1EventMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , eventsV1EventNote :: !(Maybe Text) -- ^ "note" - note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.+ , eventsV1EventReason :: !(Maybe Text) -- ^ "reason" - reason is why the action was taken. It is human-readable. This field cannot be empty for new Events and it can have at most 128 characters.+ , eventsV1EventRegarding :: !(Maybe V1ObjectReference) -- ^ "regarding"+ , eventsV1EventRelated :: !(Maybe V1ObjectReference) -- ^ "related"+ , eventsV1EventReportingController :: !(Maybe Text) -- ^ "reportingController" - reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.+ , eventsV1EventReportingInstance :: !(Maybe Text) -- ^ "reportingInstance" - reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.+ , eventsV1EventSeries :: !(Maybe EventsV1EventSeries) -- ^ "series"+ , eventsV1EventType :: !(Maybe Text) -- ^ "type" - type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable. This field cannot be empty for new Events.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EventsV1Event+instance A.FromJSON EventsV1Event where+ parseJSON = A.withObject "EventsV1Event" $ \o ->+ EventsV1Event+ <$> (o .:? "action")+ <*> (o .:? "apiVersion")+ <*> (o .:? "deprecatedCount")+ <*> (o .:? "deprecatedFirstTimestamp")+ <*> (o .:? "deprecatedLastTimestamp")+ <*> (o .:? "deprecatedSource")+ <*> (o .: "eventTime")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "note")+ <*> (o .:? "reason")+ <*> (o .:? "regarding")+ <*> (o .:? "related")+ <*> (o .:? "reportingController")+ <*> (o .:? "reportingInstance")+ <*> (o .:? "series")+ <*> (o .:? "type")++-- | ToJSON EventsV1Event+instance A.ToJSON EventsV1Event where+ toJSON EventsV1Event {..} =+ _omitNulls+ [ "action" .= eventsV1EventAction+ , "apiVersion" .= eventsV1EventApiVersion+ , "deprecatedCount" .= eventsV1EventDeprecatedCount+ , "deprecatedFirstTimestamp" .= eventsV1EventDeprecatedFirstTimestamp+ , "deprecatedLastTimestamp" .= eventsV1EventDeprecatedLastTimestamp+ , "deprecatedSource" .= eventsV1EventDeprecatedSource+ , "eventTime" .= eventsV1EventEventTime+ , "kind" .= eventsV1EventKind+ , "metadata" .= eventsV1EventMetadata+ , "note" .= eventsV1EventNote+ , "reason" .= eventsV1EventReason+ , "regarding" .= eventsV1EventRegarding+ , "related" .= eventsV1EventRelated+ , "reportingController" .= eventsV1EventReportingController+ , "reportingInstance" .= eventsV1EventReportingInstance+ , "series" .= eventsV1EventSeries+ , "type" .= eventsV1EventType+ ]+++-- | Construct a value of type 'EventsV1Event' (by applying it's required fields, if any)+mkEventsV1Event+ :: DateTime -- ^ 'eventsV1EventEventTime': eventTime is the time when this Event was first observed. It is required.+ -> EventsV1Event+mkEventsV1Event eventsV1EventEventTime =+ EventsV1Event+ { eventsV1EventAction = Nothing+ , eventsV1EventApiVersion = Nothing+ , eventsV1EventDeprecatedCount = Nothing+ , eventsV1EventDeprecatedFirstTimestamp = Nothing+ , eventsV1EventDeprecatedLastTimestamp = Nothing+ , eventsV1EventDeprecatedSource = Nothing+ , eventsV1EventEventTime+ , eventsV1EventKind = Nothing+ , eventsV1EventMetadata = Nothing+ , eventsV1EventNote = Nothing+ , eventsV1EventReason = Nothing+ , eventsV1EventRegarding = Nothing+ , eventsV1EventRelated = Nothing+ , eventsV1EventReportingController = Nothing+ , eventsV1EventReportingInstance = Nothing+ , eventsV1EventSeries = Nothing+ , eventsV1EventType = Nothing+ }++-- ** EventsV1EventList+-- | EventsV1EventList+-- EventList is a list of Event objects.+data EventsV1EventList = EventsV1EventList+ { eventsV1EventListApiVersion :: !(Maybe Text) -- ^ "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+ , eventsV1EventListItems :: !([EventsV1Event]) -- ^ /Required/ "items" - items is a list of schema objects.+ , eventsV1EventListKind :: !(Maybe Text) -- ^ "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+ , eventsV1EventListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EventsV1EventList+instance A.FromJSON EventsV1EventList where+ parseJSON = A.withObject "EventsV1EventList" $ \o ->+ EventsV1EventList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON EventsV1EventList+instance A.ToJSON EventsV1EventList where+ toJSON EventsV1EventList {..} =+ _omitNulls+ [ "apiVersion" .= eventsV1EventListApiVersion+ , "items" .= eventsV1EventListItems+ , "kind" .= eventsV1EventListKind+ , "metadata" .= eventsV1EventListMetadata+ ]+++-- | Construct a value of type 'EventsV1EventList' (by applying it's required fields, if any)+mkEventsV1EventList+ :: [EventsV1Event] -- ^ 'eventsV1EventListItems': items is a list of schema objects.+ -> EventsV1EventList+mkEventsV1EventList eventsV1EventListItems =+ EventsV1EventList+ { eventsV1EventListApiVersion = Nothing+ , eventsV1EventListItems+ , eventsV1EventListKind = Nothing+ , eventsV1EventListMetadata = Nothing+ }++-- ** EventsV1EventSeries+-- | EventsV1EventSeries+-- EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.+data EventsV1EventSeries = EventsV1EventSeries+ { eventsV1EventSeriesCount :: !(Int) -- ^ /Required/ "count" - count is the number of occurrences in this series up to the last heartbeat time.+ , eventsV1EventSeriesLastObservedTime :: !(DateTime) -- ^ /Required/ "lastObservedTime" - lastObservedTime is the time when last Event from the series was seen before last heartbeat.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EventsV1EventSeries+instance A.FromJSON EventsV1EventSeries where+ parseJSON = A.withObject "EventsV1EventSeries" $ \o ->+ EventsV1EventSeries+ <$> (o .: "count")+ <*> (o .: "lastObservedTime")++-- | ToJSON EventsV1EventSeries+instance A.ToJSON EventsV1EventSeries where+ toJSON EventsV1EventSeries {..} =+ _omitNulls+ [ "count" .= eventsV1EventSeriesCount+ , "lastObservedTime" .= eventsV1EventSeriesLastObservedTime+ ]+++-- | Construct a value of type 'EventsV1EventSeries' (by applying it's required fields, if any)+mkEventsV1EventSeries+ :: Int -- ^ 'eventsV1EventSeriesCount': count is the number of occurrences in this series up to the last heartbeat time.+ -> DateTime -- ^ 'eventsV1EventSeriesLastObservedTime': lastObservedTime is the time when last Event from the series was seen before last heartbeat.+ -> EventsV1EventSeries+mkEventsV1EventSeries eventsV1EventSeriesCount eventsV1EventSeriesLastObservedTime =+ EventsV1EventSeries+ { eventsV1EventSeriesCount+ , eventsV1EventSeriesLastObservedTime+ }++-- ** FlowcontrolV1Subject+-- | FlowcontrolV1Subject+-- Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.+data FlowcontrolV1Subject = FlowcontrolV1Subject+ { flowcontrolV1SubjectGroup :: !(Maybe V1GroupSubject) -- ^ "group"+ , flowcontrolV1SubjectKind :: !(Text) -- ^ /Required/ "kind" - `kind` indicates which one of the other fields is non-empty. Required+ , flowcontrolV1SubjectServiceAccount :: !(Maybe V1ServiceAccountSubject) -- ^ "serviceAccount"+ , flowcontrolV1SubjectUser :: !(Maybe V1UserSubject) -- ^ "user"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON FlowcontrolV1Subject+instance A.FromJSON FlowcontrolV1Subject where+ parseJSON = A.withObject "FlowcontrolV1Subject" $ \o ->+ FlowcontrolV1Subject+ <$> (o .:? "group")+ <*> (o .: "kind")+ <*> (o .:? "serviceAccount")+ <*> (o .:? "user")++-- | ToJSON FlowcontrolV1Subject+instance A.ToJSON FlowcontrolV1Subject where+ toJSON FlowcontrolV1Subject {..} =+ _omitNulls+ [ "group" .= flowcontrolV1SubjectGroup+ , "kind" .= flowcontrolV1SubjectKind+ , "serviceAccount" .= flowcontrolV1SubjectServiceAccount+ , "user" .= flowcontrolV1SubjectUser+ ]+++-- | Construct a value of type 'FlowcontrolV1Subject' (by applying it's required fields, if any)+mkFlowcontrolV1Subject+ :: Text -- ^ 'flowcontrolV1SubjectKind': `kind` indicates which one of the other fields is non-empty. Required+ -> FlowcontrolV1Subject+mkFlowcontrolV1Subject flowcontrolV1SubjectKind =+ FlowcontrolV1Subject+ { flowcontrolV1SubjectGroup = Nothing+ , flowcontrolV1SubjectKind+ , flowcontrolV1SubjectServiceAccount = Nothing+ , flowcontrolV1SubjectUser = Nothing+ }++-- ** RbacV1Subject+-- | RbacV1Subject+-- Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.+data RbacV1Subject = RbacV1Subject+ { rbacV1SubjectApiGroup :: !(Maybe Text) -- ^ "apiGroup" - APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.+ , rbacV1SubjectKind :: !(Text) -- ^ /Required/ "kind" - Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.+ , rbacV1SubjectName :: !(Text) -- ^ /Required/ "name" - Name of the object being referenced.+ , rbacV1SubjectNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON RbacV1Subject+instance A.FromJSON RbacV1Subject where+ parseJSON = A.withObject "RbacV1Subject" $ \o ->+ RbacV1Subject+ <$> (o .:? "apiGroup")+ <*> (o .: "kind")+ <*> (o .: "name")+ <*> (o .:? "namespace")++-- | ToJSON RbacV1Subject+instance A.ToJSON RbacV1Subject where+ toJSON RbacV1Subject {..} =+ _omitNulls+ [ "apiGroup" .= rbacV1SubjectApiGroup+ , "kind" .= rbacV1SubjectKind+ , "name" .= rbacV1SubjectName+ , "namespace" .= rbacV1SubjectNamespace+ ]+++-- | Construct a value of type 'RbacV1Subject' (by applying it's required fields, if any)+mkRbacV1Subject+ :: Text -- ^ 'rbacV1SubjectKind': Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.+ -> Text -- ^ 'rbacV1SubjectName': Name of the object being referenced.+ -> RbacV1Subject+mkRbacV1Subject rbacV1SubjectKind rbacV1SubjectName =+ RbacV1Subject+ { rbacV1SubjectApiGroup = Nothing+ , rbacV1SubjectKind+ , rbacV1SubjectName+ , rbacV1SubjectNamespace = Nothing+ }++-- ** ResourceV1ResourceClaim+-- | ResourceV1ResourceClaim+-- 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.+data ResourceV1ResourceClaim = ResourceV1ResourceClaim+ { resourceV1ResourceClaimApiVersion :: !(Maybe Text) -- ^ "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+ , resourceV1ResourceClaimKind :: !(Maybe Text) -- ^ "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+ , resourceV1ResourceClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , resourceV1ResourceClaimSpec :: !(V1ResourceClaimSpec) -- ^ /Required/ "spec"+ , resourceV1ResourceClaimStatus :: !(Maybe V1ResourceClaimStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ResourceV1ResourceClaim+instance A.FromJSON ResourceV1ResourceClaim where+ parseJSON = A.withObject "ResourceV1ResourceClaim" $ \o ->+ ResourceV1ResourceClaim+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON ResourceV1ResourceClaim+instance A.ToJSON ResourceV1ResourceClaim where+ toJSON ResourceV1ResourceClaim {..} =+ _omitNulls+ [ "apiVersion" .= resourceV1ResourceClaimApiVersion+ , "kind" .= resourceV1ResourceClaimKind+ , "metadata" .= resourceV1ResourceClaimMetadata+ , "spec" .= resourceV1ResourceClaimSpec+ , "status" .= resourceV1ResourceClaimStatus+ ]+++-- | Construct a value of type 'ResourceV1ResourceClaim' (by applying it's required fields, if any)+mkResourceV1ResourceClaim+ :: V1ResourceClaimSpec -- ^ 'resourceV1ResourceClaimSpec' + -> ResourceV1ResourceClaim+mkResourceV1ResourceClaim resourceV1ResourceClaimSpec =+ ResourceV1ResourceClaim+ { resourceV1ResourceClaimApiVersion = Nothing+ , resourceV1ResourceClaimKind = Nothing+ , resourceV1ResourceClaimMetadata = Nothing+ , resourceV1ResourceClaimSpec+ , resourceV1ResourceClaimStatus = Nothing+ }++-- ** StorageV1TokenRequest+-- | StorageV1TokenRequest+-- TokenRequest contains parameters of a service account token.+data StorageV1TokenRequest = StorageV1TokenRequest+ { storageV1TokenRequestAudience :: !(Text) -- ^ /Required/ "audience" - audience is the intended audience of the token in \"TokenRequestSpec\". It will default to the audiences of kube apiserver.+ , storageV1TokenRequestExpirationSeconds :: !(Maybe Integer) -- ^ "expirationSeconds" - expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\". It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON StorageV1TokenRequest+instance A.FromJSON StorageV1TokenRequest where+ parseJSON = A.withObject "StorageV1TokenRequest" $ \o ->+ StorageV1TokenRequest+ <$> (o .: "audience")+ <*> (o .:? "expirationSeconds")++-- | ToJSON StorageV1TokenRequest+instance A.ToJSON StorageV1TokenRequest where+ toJSON StorageV1TokenRequest {..} =+ _omitNulls+ [ "audience" .= storageV1TokenRequestAudience+ , "expirationSeconds" .= storageV1TokenRequestExpirationSeconds+ ]+++-- | Construct a value of type 'StorageV1TokenRequest' (by applying it's required fields, if any)+mkStorageV1TokenRequest+ :: Text -- ^ 'storageV1TokenRequestAudience': audience is the intended audience of the token in \"TokenRequestSpec\". It will default to the audiences of kube apiserver.+ -> StorageV1TokenRequest+mkStorageV1TokenRequest storageV1TokenRequestAudience =+ StorageV1TokenRequest+ { storageV1TokenRequestAudience+ , storageV1TokenRequestExpirationSeconds = Nothing+ }++-- ** V1APIGroup+-- | V1APIGroup+-- APIGroup contains the name, the supported versions, and the preferred version of a group.+data V1APIGroup = V1APIGroup+ { v1APIGroupApiVersion :: !(Maybe Text) -- ^ "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+ , v1APIGroupKind :: !(Maybe Text) -- ^ "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+ , v1APIGroupName :: !(Text) -- ^ /Required/ "name" - name is the name of the group.+ , v1APIGroupPreferredVersion :: !(Maybe V1GroupVersionForDiscovery) -- ^ "preferredVersion"+ , v1APIGroupServerAddressByClientCidrs :: !(Maybe [V1ServerAddressByClientCIDR]) -- ^ "serverAddressByClientCIDRs" - a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.+ , v1APIGroupVersions :: !([V1GroupVersionForDiscovery]) -- ^ /Required/ "versions" - versions are the versions supported in this group.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIGroup+instance A.FromJSON V1APIGroup where+ parseJSON = A.withObject "V1APIGroup" $ \o ->+ V1APIGroup+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .: "name")+ <*> (o .:? "preferredVersion")+ <*> (o .:? "serverAddressByClientCIDRs")+ <*> (o .: "versions")++-- | ToJSON V1APIGroup+instance A.ToJSON V1APIGroup where+ toJSON V1APIGroup {..} =+ _omitNulls+ [ "apiVersion" .= v1APIGroupApiVersion+ , "kind" .= v1APIGroupKind+ , "name" .= v1APIGroupName+ , "preferredVersion" .= v1APIGroupPreferredVersion+ , "serverAddressByClientCIDRs" .= v1APIGroupServerAddressByClientCidrs+ , "versions" .= v1APIGroupVersions+ ]+++-- | Construct a value of type 'V1APIGroup' (by applying it's required fields, if any)+mkV1APIGroup+ :: Text -- ^ 'v1APIGroupName': name is the name of the group.+ -> [V1GroupVersionForDiscovery] -- ^ 'v1APIGroupVersions': versions are the versions supported in this group.+ -> V1APIGroup+mkV1APIGroup v1APIGroupName v1APIGroupVersions =+ V1APIGroup+ { v1APIGroupApiVersion = Nothing+ , v1APIGroupKind = Nothing+ , v1APIGroupName+ , v1APIGroupPreferredVersion = Nothing+ , v1APIGroupServerAddressByClientCidrs = Nothing+ , v1APIGroupVersions+ }++-- ** V1APIGroupList+-- | V1APIGroupList+-- APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.+data V1APIGroupList = V1APIGroupList+ { v1APIGroupListApiVersion :: !(Maybe Text) -- ^ "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+ , v1APIGroupListGroups :: !([V1APIGroup]) -- ^ /Required/ "groups" - groups is a list of APIGroup.+ , v1APIGroupListKind :: !(Maybe Text) -- ^ "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+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIGroupList+instance A.FromJSON V1APIGroupList where+ parseJSON = A.withObject "V1APIGroupList" $ \o ->+ V1APIGroupList+ <$> (o .:? "apiVersion")+ <*> (o .: "groups")+ <*> (o .:? "kind")++-- | ToJSON V1APIGroupList+instance A.ToJSON V1APIGroupList where+ toJSON V1APIGroupList {..} =+ _omitNulls+ [ "apiVersion" .= v1APIGroupListApiVersion+ , "groups" .= v1APIGroupListGroups+ , "kind" .= v1APIGroupListKind+ ]+++-- | Construct a value of type 'V1APIGroupList' (by applying it's required fields, if any)+mkV1APIGroupList+ :: [V1APIGroup] -- ^ 'v1APIGroupListGroups': groups is a list of APIGroup.+ -> V1APIGroupList+mkV1APIGroupList v1APIGroupListGroups =+ V1APIGroupList+ { v1APIGroupListApiVersion = Nothing+ , v1APIGroupListGroups+ , v1APIGroupListKind = Nothing+ }++-- ** V1APIResource+-- | V1APIResource+-- APIResource specifies the name of a resource and whether it is namespaced.+data V1APIResource = V1APIResource+ { v1APIResourceCategories :: !(Maybe [Text]) -- ^ "categories" - categories is a list of the grouped resources this resource belongs to (e.g. 'all')+ , v1APIResourceGroup :: !(Maybe Text) -- ^ "group" - group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".+ , v1APIResourceKind :: !(Text) -- ^ /Required/ "kind" - kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')+ , v1APIResourceName :: !(Text) -- ^ /Required/ "name" - name is the plural name of the resource.+ , v1APIResourceNamespaced :: !(Bool) -- ^ /Required/ "namespaced" - namespaced indicates if a resource is namespaced or not.+ , v1APIResourceShortNames :: !(Maybe [Text]) -- ^ "shortNames" - shortNames is a list of suggested short names of the resource.+ , v1APIResourceSingularName :: !(Text) -- ^ /Required/ "singularName" - singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.+ , v1APIResourceStorageVersionHash :: !(Maybe Text) -- ^ "storageVersionHash" - The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.+ , v1APIResourceVerbs :: !([Text]) -- ^ /Required/ "verbs" - verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)+ , v1APIResourceVersion :: !(Maybe Text) -- ^ "version" - version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIResource+instance A.FromJSON V1APIResource where+ parseJSON = A.withObject "V1APIResource" $ \o ->+ V1APIResource+ <$> (o .:? "categories")+ <*> (o .:? "group")+ <*> (o .: "kind")+ <*> (o .: "name")+ <*> (o .: "namespaced")+ <*> (o .:? "shortNames")+ <*> (o .: "singularName")+ <*> (o .:? "storageVersionHash")+ <*> (o .: "verbs")+ <*> (o .:? "version")++-- | ToJSON V1APIResource+instance A.ToJSON V1APIResource where+ toJSON V1APIResource {..} =+ _omitNulls+ [ "categories" .= v1APIResourceCategories+ , "group" .= v1APIResourceGroup+ , "kind" .= v1APIResourceKind+ , "name" .= v1APIResourceName+ , "namespaced" .= v1APIResourceNamespaced+ , "shortNames" .= v1APIResourceShortNames+ , "singularName" .= v1APIResourceSingularName+ , "storageVersionHash" .= v1APIResourceStorageVersionHash+ , "verbs" .= v1APIResourceVerbs+ , "version" .= v1APIResourceVersion+ ]+++-- | Construct a value of type 'V1APIResource' (by applying it's required fields, if any)+mkV1APIResource+ :: Text -- ^ 'v1APIResourceKind': kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')+ -> Text -- ^ 'v1APIResourceName': name is the plural name of the resource.+ -> Bool -- ^ 'v1APIResourceNamespaced': namespaced indicates if a resource is namespaced or not.+ -> Text -- ^ 'v1APIResourceSingularName': singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.+ -> [Text] -- ^ 'v1APIResourceVerbs': verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)+ -> V1APIResource+mkV1APIResource v1APIResourceKind v1APIResourceName v1APIResourceNamespaced v1APIResourceSingularName v1APIResourceVerbs =+ V1APIResource+ { v1APIResourceCategories = Nothing+ , v1APIResourceGroup = Nothing+ , v1APIResourceKind+ , v1APIResourceName+ , v1APIResourceNamespaced+ , v1APIResourceShortNames = Nothing+ , v1APIResourceSingularName+ , v1APIResourceStorageVersionHash = Nothing+ , v1APIResourceVerbs+ , v1APIResourceVersion = Nothing+ }++-- ** V1APIResourceList+-- | V1APIResourceList+-- APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.+data V1APIResourceList = V1APIResourceList+ { v1APIResourceListApiVersion :: !(Maybe Text) -- ^ "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+ , v1APIResourceListGroupVersion :: !(Text) -- ^ /Required/ "groupVersion" - groupVersion is the group and version this APIResourceList is for.+ , v1APIResourceListKind :: !(Maybe Text) -- ^ "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+ , v1APIResourceListResources :: !([V1APIResource]) -- ^ /Required/ "resources" - resources contains the name of the resources and if they are namespaced.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIResourceList+instance A.FromJSON V1APIResourceList where+ parseJSON = A.withObject "V1APIResourceList" $ \o ->+ V1APIResourceList+ <$> (o .:? "apiVersion")+ <*> (o .: "groupVersion")+ <*> (o .:? "kind")+ <*> (o .: "resources")++-- | ToJSON V1APIResourceList+instance A.ToJSON V1APIResourceList where+ toJSON V1APIResourceList {..} =+ _omitNulls+ [ "apiVersion" .= v1APIResourceListApiVersion+ , "groupVersion" .= v1APIResourceListGroupVersion+ , "kind" .= v1APIResourceListKind+ , "resources" .= v1APIResourceListResources+ ]+++-- | Construct a value of type 'V1APIResourceList' (by applying it's required fields, if any)+mkV1APIResourceList+ :: Text -- ^ 'v1APIResourceListGroupVersion': groupVersion is the group and version this APIResourceList is for.+ -> [V1APIResource] -- ^ 'v1APIResourceListResources': resources contains the name of the resources and if they are namespaced.+ -> V1APIResourceList+mkV1APIResourceList v1APIResourceListGroupVersion v1APIResourceListResources =+ V1APIResourceList+ { v1APIResourceListApiVersion = Nothing+ , v1APIResourceListGroupVersion+ , v1APIResourceListKind = Nothing+ , v1APIResourceListResources+ }++-- ** V1APIService+-- | V1APIService+-- APIService represents a server for a particular GroupVersion. Name must be \"version.group\".+data V1APIService = V1APIService+ { v1APIServiceApiVersion :: !(Maybe Text) -- ^ "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+ , v1APIServiceKind :: !(Maybe Text) -- ^ "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+ , v1APIServiceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1APIServiceSpec :: !(Maybe V1APIServiceSpec) -- ^ "spec"+ , v1APIServiceStatus :: !(Maybe V1APIServiceStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIService+instance A.FromJSON V1APIService where+ parseJSON = A.withObject "V1APIService" $ \o ->+ V1APIService+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1APIService+instance A.ToJSON V1APIService where+ toJSON V1APIService {..} =+ _omitNulls+ [ "apiVersion" .= v1APIServiceApiVersion+ , "kind" .= v1APIServiceKind+ , "metadata" .= v1APIServiceMetadata+ , "spec" .= v1APIServiceSpec+ , "status" .= v1APIServiceStatus+ ]+++-- | Construct a value of type 'V1APIService' (by applying it's required fields, if any)+mkV1APIService+ :: V1APIService+mkV1APIService =+ V1APIService+ { v1APIServiceApiVersion = Nothing+ , v1APIServiceKind = Nothing+ , v1APIServiceMetadata = Nothing+ , v1APIServiceSpec = Nothing+ , v1APIServiceStatus = Nothing+ }++-- ** V1APIServiceCondition+-- | V1APIServiceCondition+-- APIServiceCondition describes the state of an APIService at a particular point+data V1APIServiceCondition = V1APIServiceCondition+ { v1APIServiceConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.+ , v1APIServiceConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.+ , v1APIServiceConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition's last transition.+ , v1APIServiceConditionStatus :: !(Text) -- ^ /Required/ "status" - Status is the status of the condition. Can be True, False, Unknown.+ , v1APIServiceConditionType :: !(Text) -- ^ /Required/ "type" - Type is the type of the condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIServiceCondition+instance A.FromJSON V1APIServiceCondition where+ parseJSON = A.withObject "V1APIServiceCondition" $ \o ->+ V1APIServiceCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1APIServiceCondition+instance A.ToJSON V1APIServiceCondition where+ toJSON V1APIServiceCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1APIServiceConditionLastTransitionTime+ , "message" .= v1APIServiceConditionMessage+ , "reason" .= v1APIServiceConditionReason+ , "status" .= v1APIServiceConditionStatus+ , "type" .= v1APIServiceConditionType+ ]+++-- | Construct a value of type 'V1APIServiceCondition' (by applying it's required fields, if any)+mkV1APIServiceCondition+ :: Text -- ^ 'v1APIServiceConditionStatus': Status is the status of the condition. Can be True, False, Unknown.+ -> Text -- ^ 'v1APIServiceConditionType': Type is the type of the condition.+ -> V1APIServiceCondition+mkV1APIServiceCondition v1APIServiceConditionStatus v1APIServiceConditionType =+ V1APIServiceCondition+ { v1APIServiceConditionLastTransitionTime = Nothing+ , v1APIServiceConditionMessage = Nothing+ , v1APIServiceConditionReason = Nothing+ , v1APIServiceConditionStatus+ , v1APIServiceConditionType+ }++-- ** V1APIServiceList+-- | V1APIServiceList+-- APIServiceList is a list of APIService objects.+data V1APIServiceList = V1APIServiceList+ { v1APIServiceListApiVersion :: !(Maybe Text) -- ^ "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+ , v1APIServiceListItems :: !([V1APIService]) -- ^ /Required/ "items" - Items is the list of APIService+ , v1APIServiceListKind :: !(Maybe Text) -- ^ "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+ , v1APIServiceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIServiceList+instance A.FromJSON V1APIServiceList where+ parseJSON = A.withObject "V1APIServiceList" $ \o ->+ V1APIServiceList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1APIServiceList+instance A.ToJSON V1APIServiceList where+ toJSON V1APIServiceList {..} =+ _omitNulls+ [ "apiVersion" .= v1APIServiceListApiVersion+ , "items" .= v1APIServiceListItems+ , "kind" .= v1APIServiceListKind+ , "metadata" .= v1APIServiceListMetadata+ ]+++-- | Construct a value of type 'V1APIServiceList' (by applying it's required fields, if any)+mkV1APIServiceList+ :: [V1APIService] -- ^ 'v1APIServiceListItems': Items is the list of APIService+ -> V1APIServiceList+mkV1APIServiceList v1APIServiceListItems =+ V1APIServiceList+ { v1APIServiceListApiVersion = Nothing+ , v1APIServiceListItems+ , v1APIServiceListKind = Nothing+ , v1APIServiceListMetadata = Nothing+ }++-- ** V1APIServiceSpec+-- | V1APIServiceSpec+-- APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.+data V1APIServiceSpec = V1APIServiceSpec+ { v1APIServiceSpecCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.+ , v1APIServiceSpecGroup :: !(Maybe Text) -- ^ "group" - Group is the API group name this server hosts+ , v1APIServiceSpecGroupPriorityMinimum :: !(Int) -- ^ /Required/ "groupPriorityMinimum" - GroupPriorityMinimum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMinimum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s+ , v1APIServiceSpecInsecureSkipTlsVerify :: !(Maybe Bool) -- ^ "insecureSkipTLSVerify" - InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.+ , v1APIServiceSpecService :: !(Maybe ApiregistrationV1ServiceReference) -- ^ "service"+ , v1APIServiceSpecVersion :: !(Maybe Text) -- ^ "version" - Version is the API version this server hosts. For example, \"v1\"+ , v1APIServiceSpecVersionPriority :: !(Int) -- ^ /Required/ "versionPriority" - VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIServiceSpec+instance A.FromJSON V1APIServiceSpec where+ parseJSON = A.withObject "V1APIServiceSpec" $ \o ->+ V1APIServiceSpec+ <$> (o .:? "caBundle")+ <*> (o .:? "group")+ <*> (o .: "groupPriorityMinimum")+ <*> (o .:? "insecureSkipTLSVerify")+ <*> (o .:? "service")+ <*> (o .:? "version")+ <*> (o .: "versionPriority")++-- | ToJSON V1APIServiceSpec+instance A.ToJSON V1APIServiceSpec where+ toJSON V1APIServiceSpec {..} =+ _omitNulls+ [ "caBundle" .= v1APIServiceSpecCaBundle+ , "group" .= v1APIServiceSpecGroup+ , "groupPriorityMinimum" .= v1APIServiceSpecGroupPriorityMinimum+ , "insecureSkipTLSVerify" .= v1APIServiceSpecInsecureSkipTlsVerify+ , "service" .= v1APIServiceSpecService+ , "version" .= v1APIServiceSpecVersion+ , "versionPriority" .= v1APIServiceSpecVersionPriority+ ]+++-- | Construct a value of type 'V1APIServiceSpec' (by applying it's required fields, if any)+mkV1APIServiceSpec+ :: Int -- ^ 'v1APIServiceSpecGroupPriorityMinimum': GroupPriorityMinimum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMinimum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s+ -> Int -- ^ 'v1APIServiceSpecVersionPriority': VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.+ -> V1APIServiceSpec+mkV1APIServiceSpec v1APIServiceSpecGroupPriorityMinimum v1APIServiceSpecVersionPriority =+ V1APIServiceSpec+ { v1APIServiceSpecCaBundle = Nothing+ , v1APIServiceSpecGroup = Nothing+ , v1APIServiceSpecGroupPriorityMinimum+ , v1APIServiceSpecInsecureSkipTlsVerify = Nothing+ , v1APIServiceSpecService = Nothing+ , v1APIServiceSpecVersion = Nothing+ , v1APIServiceSpecVersionPriority+ }++-- ** V1APIServiceStatus+-- | V1APIServiceStatus+-- APIServiceStatus contains derived information about an API server+data V1APIServiceStatus = V1APIServiceStatus+ { v1APIServiceStatusConditions :: !(Maybe [V1APIServiceCondition]) -- ^ "conditions" - Current service state of apiService.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIServiceStatus+instance A.FromJSON V1APIServiceStatus where+ parseJSON = A.withObject "V1APIServiceStatus" $ \o ->+ V1APIServiceStatus+ <$> (o .:? "conditions")++-- | ToJSON V1APIServiceStatus+instance A.ToJSON V1APIServiceStatus where+ toJSON V1APIServiceStatus {..} =+ _omitNulls+ [ "conditions" .= v1APIServiceStatusConditions+ ]+++-- | Construct a value of type 'V1APIServiceStatus' (by applying it's required fields, if any)+mkV1APIServiceStatus+ :: V1APIServiceStatus+mkV1APIServiceStatus =+ V1APIServiceStatus+ { v1APIServiceStatusConditions = Nothing+ }++-- ** V1APIVersions+-- | V1APIVersions+-- APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.+data V1APIVersions = V1APIVersions+ { v1APIVersionsApiVersion :: !(Maybe Text) -- ^ "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+ , v1APIVersionsKind :: !(Maybe Text) -- ^ "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+ , v1APIVersionsServerAddressByClientCidrs :: !([V1ServerAddressByClientCIDR]) -- ^ /Required/ "serverAddressByClientCIDRs" - a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.+ , v1APIVersionsVersions :: !([Text]) -- ^ /Required/ "versions" - versions are the api versions that are available.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1APIVersions+instance A.FromJSON V1APIVersions where+ parseJSON = A.withObject "V1APIVersions" $ \o ->+ V1APIVersions+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .: "serverAddressByClientCIDRs")+ <*> (o .: "versions")++-- | ToJSON V1APIVersions+instance A.ToJSON V1APIVersions where+ toJSON V1APIVersions {..} =+ _omitNulls+ [ "apiVersion" .= v1APIVersionsApiVersion+ , "kind" .= v1APIVersionsKind+ , "serverAddressByClientCIDRs" .= v1APIVersionsServerAddressByClientCidrs+ , "versions" .= v1APIVersionsVersions+ ]+++-- | Construct a value of type 'V1APIVersions' (by applying it's required fields, if any)+mkV1APIVersions+ :: [V1ServerAddressByClientCIDR] -- ^ 'v1APIVersionsServerAddressByClientCidrs': a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.+ -> [Text] -- ^ 'v1APIVersionsVersions': versions are the api versions that are available.+ -> V1APIVersions+mkV1APIVersions v1APIVersionsServerAddressByClientCidrs v1APIVersionsVersions =+ V1APIVersions+ { v1APIVersionsApiVersion = Nothing+ , v1APIVersionsKind = Nothing+ , v1APIVersionsServerAddressByClientCidrs+ , v1APIVersionsVersions+ }++-- ** V1AWSElasticBlockStoreVolumeSource+-- | V1AWSElasticBlockStoreVolumeSource+-- Represents a Persistent Disk resource in AWS. An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.+data V1AWSElasticBlockStoreVolumeSource = V1AWSElasticBlockStoreVolumeSource+ { v1AWSElasticBlockStoreVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore+ , v1AWSElasticBlockStoreVolumeSourcePartition :: !(Maybe Int) -- ^ "partition" - partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).+ , v1AWSElasticBlockStoreVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore+ , v1AWSElasticBlockStoreVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AWSElasticBlockStoreVolumeSource+instance A.FromJSON V1AWSElasticBlockStoreVolumeSource where+ parseJSON = A.withObject "V1AWSElasticBlockStoreVolumeSource" $ \o ->+ V1AWSElasticBlockStoreVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "partition")+ <*> (o .:? "readOnly")+ <*> (o .: "volumeID")++-- | ToJSON V1AWSElasticBlockStoreVolumeSource+instance A.ToJSON V1AWSElasticBlockStoreVolumeSource where+ toJSON V1AWSElasticBlockStoreVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1AWSElasticBlockStoreVolumeSourceFsType+ , "partition" .= v1AWSElasticBlockStoreVolumeSourcePartition+ , "readOnly" .= v1AWSElasticBlockStoreVolumeSourceReadOnly+ , "volumeID" .= v1AWSElasticBlockStoreVolumeSourceVolumeId+ ]+++-- | Construct a value of type 'V1AWSElasticBlockStoreVolumeSource' (by applying it's required fields, if any)+mkV1AWSElasticBlockStoreVolumeSource+ :: Text -- ^ 'v1AWSElasticBlockStoreVolumeSourceVolumeId': volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore+ -> V1AWSElasticBlockStoreVolumeSource+mkV1AWSElasticBlockStoreVolumeSource v1AWSElasticBlockStoreVolumeSourceVolumeId =+ V1AWSElasticBlockStoreVolumeSource+ { v1AWSElasticBlockStoreVolumeSourceFsType = Nothing+ , v1AWSElasticBlockStoreVolumeSourcePartition = Nothing+ , v1AWSElasticBlockStoreVolumeSourceReadOnly = Nothing+ , v1AWSElasticBlockStoreVolumeSourceVolumeId+ }++-- ** V1Affinity+-- | V1Affinity+-- Affinity is a group of affinity scheduling rules.+data V1Affinity = V1Affinity+ { v1AffinityNodeAffinity :: !(Maybe V1NodeAffinity) -- ^ "nodeAffinity"+ , v1AffinityPodAffinity :: !(Maybe V1PodAffinity) -- ^ "podAffinity"+ , v1AffinityPodAntiAffinity :: !(Maybe V1PodAntiAffinity) -- ^ "podAntiAffinity"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Affinity+instance A.FromJSON V1Affinity where+ parseJSON = A.withObject "V1Affinity" $ \o ->+ V1Affinity+ <$> (o .:? "nodeAffinity")+ <*> (o .:? "podAffinity")+ <*> (o .:? "podAntiAffinity")++-- | ToJSON V1Affinity+instance A.ToJSON V1Affinity where+ toJSON V1Affinity {..} =+ _omitNulls+ [ "nodeAffinity" .= v1AffinityNodeAffinity+ , "podAffinity" .= v1AffinityPodAffinity+ , "podAntiAffinity" .= v1AffinityPodAntiAffinity+ ]+++-- | Construct a value of type 'V1Affinity' (by applying it's required fields, if any)+mkV1Affinity+ :: V1Affinity+mkV1Affinity =+ V1Affinity+ { v1AffinityNodeAffinity = Nothing+ , v1AffinityPodAffinity = Nothing+ , v1AffinityPodAntiAffinity = Nothing+ }++-- ** V1AggregationRule+-- | V1AggregationRule+-- AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole+data V1AggregationRule = V1AggregationRule+ { v1AggregationRuleClusterRoleSelectors :: !(Maybe [V1LabelSelector]) -- ^ "clusterRoleSelectors" - ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AggregationRule+instance A.FromJSON V1AggregationRule where+ parseJSON = A.withObject "V1AggregationRule" $ \o ->+ V1AggregationRule+ <$> (o .:? "clusterRoleSelectors")++-- | ToJSON V1AggregationRule+instance A.ToJSON V1AggregationRule where+ toJSON V1AggregationRule {..} =+ _omitNulls+ [ "clusterRoleSelectors" .= v1AggregationRuleClusterRoleSelectors+ ]+++-- | Construct a value of type 'V1AggregationRule' (by applying it's required fields, if any)+mkV1AggregationRule+ :: V1AggregationRule+mkV1AggregationRule =+ V1AggregationRule+ { v1AggregationRuleClusterRoleSelectors = Nothing+ }++-- ** V1AllocatedDeviceStatus+-- | V1AllocatedDeviceStatus+-- AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices.+data V1AllocatedDeviceStatus = V1AllocatedDeviceStatus+ { v1AllocatedDeviceStatusConditions :: !(Maybe [V1Condition]) -- ^ "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. Must not contain more than 8 entries.+ , v1AllocatedDeviceStatusData :: !(Maybe A.Value) -- ^ "data" - Data contains arbitrary driver-specific data. The length of the raw data must be smaller or equal to 10 Ki.+ , v1AllocatedDeviceStatusDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ , v1AllocatedDeviceStatusDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1AllocatedDeviceStatusNetworkData :: !(Maybe V1NetworkDeviceData) -- ^ "networkData"+ , v1AllocatedDeviceStatusPool :: !(Text) -- ^ /Required/ "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.+ , v1AllocatedDeviceStatusShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AllocatedDeviceStatus+instance A.FromJSON V1AllocatedDeviceStatus where+ parseJSON = A.withObject "V1AllocatedDeviceStatus" $ \o ->+ V1AllocatedDeviceStatus+ <$> (o .:? "conditions")+ <*> (o .:? "data")+ <*> (o .: "device")+ <*> (o .: "driver")+ <*> (o .:? "networkData")+ <*> (o .: "pool")+ <*> (o .:? "shareID")++-- | ToJSON V1AllocatedDeviceStatus+instance A.ToJSON V1AllocatedDeviceStatus where+ toJSON V1AllocatedDeviceStatus {..} =+ _omitNulls+ [ "conditions" .= v1AllocatedDeviceStatusConditions+ , "data" .= v1AllocatedDeviceStatusData+ , "device" .= v1AllocatedDeviceStatusDevice+ , "driver" .= v1AllocatedDeviceStatusDriver+ , "networkData" .= v1AllocatedDeviceStatusNetworkData+ , "pool" .= v1AllocatedDeviceStatusPool+ , "shareID" .= v1AllocatedDeviceStatusShareId+ ]+++-- | Construct a value of type 'V1AllocatedDeviceStatus' (by applying it's required fields, if any)+mkV1AllocatedDeviceStatus+ :: Text -- ^ 'v1AllocatedDeviceStatusDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ -> Text -- ^ 'v1AllocatedDeviceStatusDriver': 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. It should use only lower case characters.+ -> Text -- ^ 'v1AllocatedDeviceStatusPool': 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.+ -> V1AllocatedDeviceStatus+mkV1AllocatedDeviceStatus v1AllocatedDeviceStatusDevice v1AllocatedDeviceStatusDriver v1AllocatedDeviceStatusPool =+ V1AllocatedDeviceStatus+ { v1AllocatedDeviceStatusConditions = Nothing+ , v1AllocatedDeviceStatusData = Nothing+ , v1AllocatedDeviceStatusDevice+ , v1AllocatedDeviceStatusDriver+ , v1AllocatedDeviceStatusNetworkData = Nothing+ , v1AllocatedDeviceStatusPool+ , v1AllocatedDeviceStatusShareId = Nothing+ }++-- ** V1AllocationResult+-- | V1AllocationResult+-- AllocationResult contains attributes of an allocated resource.+data V1AllocationResult = V1AllocationResult+ { v1AllocationResultAllocationTimestamp :: !(Maybe DateTime) -- ^ "allocationTimestamp" - AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate.+ , v1AllocationResultDevices :: !(Maybe V1DeviceAllocationResult) -- ^ "devices"+ , v1AllocationResultNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AllocationResult+instance A.FromJSON V1AllocationResult where+ parseJSON = A.withObject "V1AllocationResult" $ \o ->+ V1AllocationResult+ <$> (o .:? "allocationTimestamp")+ <*> (o .:? "devices")+ <*> (o .:? "nodeSelector")++-- | ToJSON V1AllocationResult+instance A.ToJSON V1AllocationResult where+ toJSON V1AllocationResult {..} =+ _omitNulls+ [ "allocationTimestamp" .= v1AllocationResultAllocationTimestamp+ , "devices" .= v1AllocationResultDevices+ , "nodeSelector" .= v1AllocationResultNodeSelector+ ]+++-- | Construct a value of type 'V1AllocationResult' (by applying it's required fields, if any)+mkV1AllocationResult+ :: V1AllocationResult+mkV1AllocationResult =+ V1AllocationResult+ { v1AllocationResultAllocationTimestamp = Nothing+ , v1AllocationResultDevices = Nothing+ , v1AllocationResultNodeSelector = Nothing+ }++-- ** V1AppArmorProfile+-- | V1AppArmorProfile+-- AppArmorProfile defines a pod or container's AppArmor settings.+data V1AppArmorProfile = V1AppArmorProfile+ { v1AppArmorProfileLocalhostProfile :: !(Maybe Text) -- ^ "localhostProfile" - localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \"Localhost\".+ , v1AppArmorProfileType :: !(Text) -- ^ /Required/ "type" - type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AppArmorProfile+instance A.FromJSON V1AppArmorProfile where+ parseJSON = A.withObject "V1AppArmorProfile" $ \o ->+ V1AppArmorProfile+ <$> (o .:? "localhostProfile")+ <*> (o .: "type")++-- | ToJSON V1AppArmorProfile+instance A.ToJSON V1AppArmorProfile where+ toJSON V1AppArmorProfile {..} =+ _omitNulls+ [ "localhostProfile" .= v1AppArmorProfileLocalhostProfile+ , "type" .= v1AppArmorProfileType+ ]+++-- | Construct a value of type 'V1AppArmorProfile' (by applying it's required fields, if any)+mkV1AppArmorProfile+ :: Text -- ^ 'v1AppArmorProfileType': type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement.+ -> V1AppArmorProfile+mkV1AppArmorProfile v1AppArmorProfileType =+ V1AppArmorProfile+ { v1AppArmorProfileLocalhostProfile = Nothing+ , v1AppArmorProfileType+ }++-- ** V1AttachedVolume+-- | V1AttachedVolume+-- AttachedVolume describes a volume attached to a node+data V1AttachedVolume = V1AttachedVolume+ { v1AttachedVolumeDevicePath :: !(Text) -- ^ /Required/ "devicePath" - DevicePath represents the device path where the volume should be available+ , v1AttachedVolumeName :: !(Text) -- ^ /Required/ "name" - Name of the attached volume+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AttachedVolume+instance A.FromJSON V1AttachedVolume where+ parseJSON = A.withObject "V1AttachedVolume" $ \o ->+ V1AttachedVolume+ <$> (o .: "devicePath")+ <*> (o .: "name")++-- | ToJSON V1AttachedVolume+instance A.ToJSON V1AttachedVolume where+ toJSON V1AttachedVolume {..} =+ _omitNulls+ [ "devicePath" .= v1AttachedVolumeDevicePath+ , "name" .= v1AttachedVolumeName+ ]+++-- | Construct a value of type 'V1AttachedVolume' (by applying it's required fields, if any)+mkV1AttachedVolume+ :: Text -- ^ 'v1AttachedVolumeDevicePath': DevicePath represents the device path where the volume should be available+ -> Text -- ^ 'v1AttachedVolumeName': Name of the attached volume+ -> V1AttachedVolume+mkV1AttachedVolume v1AttachedVolumeDevicePath v1AttachedVolumeName =+ V1AttachedVolume+ { v1AttachedVolumeDevicePath+ , v1AttachedVolumeName+ }++-- ** V1AuditAnnotation+-- | V1AuditAnnotation+-- AuditAnnotation describes how to produce an audit annotation for an API request.+data V1AuditAnnotation = V1AuditAnnotation+ { v1AuditAnnotationKey :: !(Text) -- ^ /Required/ "key" - 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.+ , v1AuditAnnotationValueExpression :: !(Text) -- ^ /Required/ "valueExpression" - 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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AuditAnnotation+instance A.FromJSON V1AuditAnnotation where+ parseJSON = A.withObject "V1AuditAnnotation" $ \o ->+ V1AuditAnnotation+ <$> (o .: "key")+ <*> (o .: "valueExpression")++-- | ToJSON V1AuditAnnotation+instance A.ToJSON V1AuditAnnotation where+ toJSON V1AuditAnnotation {..} =+ _omitNulls+ [ "key" .= v1AuditAnnotationKey+ , "valueExpression" .= v1AuditAnnotationValueExpression+ ]+++-- | Construct a value of type 'V1AuditAnnotation' (by applying it's required fields, if any)+mkV1AuditAnnotation+ :: Text -- ^ 'v1AuditAnnotationKey': 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.+ -> Text -- ^ 'v1AuditAnnotationValueExpression': 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.+ -> V1AuditAnnotation+mkV1AuditAnnotation v1AuditAnnotationKey v1AuditAnnotationValueExpression =+ V1AuditAnnotation+ { v1AuditAnnotationKey+ , v1AuditAnnotationValueExpression+ }++-- ** V1AzureDiskVolumeSource+-- | V1AzureDiskVolumeSource+-- AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.+data V1AzureDiskVolumeSource = V1AzureDiskVolumeSource+ { v1AzureDiskVolumeSourceCachingMode :: !(Maybe Text) -- ^ "cachingMode" - cachingMode is the Host Caching mode: None, Read Only, Read Write.+ , v1AzureDiskVolumeSourceDiskName :: !(Text) -- ^ /Required/ "diskName" - diskName is the Name of the data disk in the blob storage+ , v1AzureDiskVolumeSourceDiskUri :: !(Text) -- ^ /Required/ "diskURI" - diskURI is the URI of data disk in the blob storage+ , v1AzureDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.+ , v1AzureDiskVolumeSourceKind :: !(Maybe Text) -- ^ "kind" - kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared+ , v1AzureDiskVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AzureDiskVolumeSource+instance A.FromJSON V1AzureDiskVolumeSource where+ parseJSON = A.withObject "V1AzureDiskVolumeSource" $ \o ->+ V1AzureDiskVolumeSource+ <$> (o .:? "cachingMode")+ <*> (o .: "diskName")+ <*> (o .: "diskURI")+ <*> (o .:? "fsType")+ <*> (o .:? "kind")+ <*> (o .:? "readOnly")++-- | ToJSON V1AzureDiskVolumeSource+instance A.ToJSON V1AzureDiskVolumeSource where+ toJSON V1AzureDiskVolumeSource {..} =+ _omitNulls+ [ "cachingMode" .= v1AzureDiskVolumeSourceCachingMode+ , "diskName" .= v1AzureDiskVolumeSourceDiskName+ , "diskURI" .= v1AzureDiskVolumeSourceDiskUri+ , "fsType" .= v1AzureDiskVolumeSourceFsType+ , "kind" .= v1AzureDiskVolumeSourceKind+ , "readOnly" .= v1AzureDiskVolumeSourceReadOnly+ ]+++-- | Construct a value of type 'V1AzureDiskVolumeSource' (by applying it's required fields, if any)+mkV1AzureDiskVolumeSource+ :: Text -- ^ 'v1AzureDiskVolumeSourceDiskName': diskName is the Name of the data disk in the blob storage+ -> Text -- ^ 'v1AzureDiskVolumeSourceDiskUri': diskURI is the URI of data disk in the blob storage+ -> V1AzureDiskVolumeSource+mkV1AzureDiskVolumeSource v1AzureDiskVolumeSourceDiskName v1AzureDiskVolumeSourceDiskUri =+ V1AzureDiskVolumeSource+ { v1AzureDiskVolumeSourceCachingMode = Nothing+ , v1AzureDiskVolumeSourceDiskName+ , v1AzureDiskVolumeSourceDiskUri+ , v1AzureDiskVolumeSourceFsType = Nothing+ , v1AzureDiskVolumeSourceKind = Nothing+ , v1AzureDiskVolumeSourceReadOnly = Nothing+ }++-- ** V1AzureFilePersistentVolumeSource+-- | V1AzureFilePersistentVolumeSource+-- AzureFile represents an Azure File Service mount on the host and bind mount to the pod.+data V1AzureFilePersistentVolumeSource = V1AzureFilePersistentVolumeSource+ { v1AzureFilePersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1AzureFilePersistentVolumeSourceSecretName :: !(Text) -- ^ /Required/ "secretName" - secretName is the name of secret that contains Azure Storage Account Name and Key+ , v1AzureFilePersistentVolumeSourceSecretNamespace :: !(Maybe Text) -- ^ "secretNamespace" - secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod+ , v1AzureFilePersistentVolumeSourceShareName :: !(Text) -- ^ /Required/ "shareName" - shareName is the azure Share Name+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AzureFilePersistentVolumeSource+instance A.FromJSON V1AzureFilePersistentVolumeSource where+ parseJSON = A.withObject "V1AzureFilePersistentVolumeSource" $ \o ->+ V1AzureFilePersistentVolumeSource+ <$> (o .:? "readOnly")+ <*> (o .: "secretName")+ <*> (o .:? "secretNamespace")+ <*> (o .: "shareName")++-- | ToJSON V1AzureFilePersistentVolumeSource+instance A.ToJSON V1AzureFilePersistentVolumeSource where+ toJSON V1AzureFilePersistentVolumeSource {..} =+ _omitNulls+ [ "readOnly" .= v1AzureFilePersistentVolumeSourceReadOnly+ , "secretName" .= v1AzureFilePersistentVolumeSourceSecretName+ , "secretNamespace" .= v1AzureFilePersistentVolumeSourceSecretNamespace+ , "shareName" .= v1AzureFilePersistentVolumeSourceShareName+ ]+++-- | Construct a value of type 'V1AzureFilePersistentVolumeSource' (by applying it's required fields, if any)+mkV1AzureFilePersistentVolumeSource+ :: Text -- ^ 'v1AzureFilePersistentVolumeSourceSecretName': secretName is the name of secret that contains Azure Storage Account Name and Key+ -> Text -- ^ 'v1AzureFilePersistentVolumeSourceShareName': shareName is the azure Share Name+ -> V1AzureFilePersistentVolumeSource+mkV1AzureFilePersistentVolumeSource v1AzureFilePersistentVolumeSourceSecretName v1AzureFilePersistentVolumeSourceShareName =+ V1AzureFilePersistentVolumeSource+ { v1AzureFilePersistentVolumeSourceReadOnly = Nothing+ , v1AzureFilePersistentVolumeSourceSecretName+ , v1AzureFilePersistentVolumeSourceSecretNamespace = Nothing+ , v1AzureFilePersistentVolumeSourceShareName+ }++-- ** V1AzureFileVolumeSource+-- | V1AzureFileVolumeSource+-- AzureFile represents an Azure File Service mount on the host and bind mount to the pod.+data V1AzureFileVolumeSource = V1AzureFileVolumeSource+ { v1AzureFileVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1AzureFileVolumeSourceSecretName :: !(Text) -- ^ /Required/ "secretName" - secretName is the name of secret that contains Azure Storage Account Name and Key+ , v1AzureFileVolumeSourceShareName :: !(Text) -- ^ /Required/ "shareName" - shareName is the azure share Name+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1AzureFileVolumeSource+instance A.FromJSON V1AzureFileVolumeSource where+ parseJSON = A.withObject "V1AzureFileVolumeSource" $ \o ->+ V1AzureFileVolumeSource+ <$> (o .:? "readOnly")+ <*> (o .: "secretName")+ <*> (o .: "shareName")++-- | ToJSON V1AzureFileVolumeSource+instance A.ToJSON V1AzureFileVolumeSource where+ toJSON V1AzureFileVolumeSource {..} =+ _omitNulls+ [ "readOnly" .= v1AzureFileVolumeSourceReadOnly+ , "secretName" .= v1AzureFileVolumeSourceSecretName+ , "shareName" .= v1AzureFileVolumeSourceShareName+ ]+++-- | Construct a value of type 'V1AzureFileVolumeSource' (by applying it's required fields, if any)+mkV1AzureFileVolumeSource+ :: Text -- ^ 'v1AzureFileVolumeSourceSecretName': secretName is the name of secret that contains Azure Storage Account Name and Key+ -> Text -- ^ 'v1AzureFileVolumeSourceShareName': shareName is the azure share Name+ -> V1AzureFileVolumeSource+mkV1AzureFileVolumeSource v1AzureFileVolumeSourceSecretName v1AzureFileVolumeSourceShareName =+ V1AzureFileVolumeSource+ { v1AzureFileVolumeSourceReadOnly = Nothing+ , v1AzureFileVolumeSourceSecretName+ , v1AzureFileVolumeSourceShareName+ }++-- ** V1Binding+-- | V1Binding+-- Binding ties one object to another; for example, a pod is bound to a node by a scheduler.+data V1Binding = V1Binding+ { v1BindingApiVersion :: !(Maybe Text) -- ^ "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+ , v1BindingKind :: !(Maybe Text) -- ^ "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+ , v1BindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1BindingTarget :: !(V1ObjectReference) -- ^ /Required/ "target"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Binding+instance A.FromJSON V1Binding where+ parseJSON = A.withObject "V1Binding" $ \o ->+ V1Binding+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "target")++-- | ToJSON V1Binding+instance A.ToJSON V1Binding where+ toJSON V1Binding {..} =+ _omitNulls+ [ "apiVersion" .= v1BindingApiVersion+ , "kind" .= v1BindingKind+ , "metadata" .= v1BindingMetadata+ , "target" .= v1BindingTarget+ ]+++-- | Construct a value of type 'V1Binding' (by applying it's required fields, if any)+mkV1Binding+ :: V1ObjectReference -- ^ 'v1BindingTarget' + -> V1Binding+mkV1Binding v1BindingTarget =+ V1Binding+ { v1BindingApiVersion = Nothing+ , v1BindingKind = Nothing+ , v1BindingMetadata = Nothing+ , v1BindingTarget+ }++-- ** V1BoundObjectReference+-- | V1BoundObjectReference+-- BoundObjectReference is a reference to an object that a token is bound to.+data V1BoundObjectReference = V1BoundObjectReference+ { v1BoundObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent.+ , v1BoundObjectReferenceKind :: !(Maybe Text) -- ^ "kind" - Kind of the referent. Valid kinds are 'Pod' and 'Secret'.+ , v1BoundObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent.+ , v1BoundObjectReferenceUid :: !(Maybe Text) -- ^ "uid" - UID of the referent.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1BoundObjectReference+instance A.FromJSON V1BoundObjectReference where+ parseJSON = A.withObject "V1BoundObjectReference" $ \o ->+ V1BoundObjectReference+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "name")+ <*> (o .:? "uid")++-- | ToJSON V1BoundObjectReference+instance A.ToJSON V1BoundObjectReference where+ toJSON V1BoundObjectReference {..} =+ _omitNulls+ [ "apiVersion" .= v1BoundObjectReferenceApiVersion+ , "kind" .= v1BoundObjectReferenceKind+ , "name" .= v1BoundObjectReferenceName+ , "uid" .= v1BoundObjectReferenceUid+ ]+++-- | Construct a value of type 'V1BoundObjectReference' (by applying it's required fields, if any)+mkV1BoundObjectReference+ :: V1BoundObjectReference+mkV1BoundObjectReference =+ V1BoundObjectReference+ { v1BoundObjectReferenceApiVersion = Nothing+ , v1BoundObjectReferenceKind = Nothing+ , v1BoundObjectReferenceName = Nothing+ , v1BoundObjectReferenceUid = Nothing+ }++-- ** V1CELDeviceSelector+-- | V1CELDeviceSelector+-- CELDeviceSelector contains a CEL expression for selecting a device.+data V1CELDeviceSelector = V1CELDeviceSelector+ { v1CELDeviceSelectorExpression :: !(Text) -- ^ /Required/ "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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CELDeviceSelector+instance A.FromJSON V1CELDeviceSelector where+ parseJSON = A.withObject "V1CELDeviceSelector" $ \o ->+ V1CELDeviceSelector+ <$> (o .: "expression")++-- | ToJSON V1CELDeviceSelector+instance A.ToJSON V1CELDeviceSelector where+ toJSON V1CELDeviceSelector {..} =+ _omitNulls+ [ "expression" .= v1CELDeviceSelectorExpression+ ]+++-- | Construct a value of type 'V1CELDeviceSelector' (by applying it's required fields, if any)+mkV1CELDeviceSelector+ :: Text -- ^ 'v1CELDeviceSelectorExpression': 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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.+ -> V1CELDeviceSelector+mkV1CELDeviceSelector v1CELDeviceSelectorExpression =+ V1CELDeviceSelector+ { v1CELDeviceSelectorExpression+ }++-- ** V1CSIDriver+-- | V1CSIDriver+-- CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.+data V1CSIDriver = V1CSIDriver+ { v1CSIDriverApiVersion :: !(Maybe Text) -- ^ "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+ , v1CSIDriverKind :: !(Maybe Text) -- ^ "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+ , v1CSIDriverMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1CSIDriverSpec :: !(V1CSIDriverSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSIDriver+instance A.FromJSON V1CSIDriver where+ parseJSON = A.withObject "V1CSIDriver" $ \o ->+ V1CSIDriver+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1CSIDriver+instance A.ToJSON V1CSIDriver where+ toJSON V1CSIDriver {..} =+ _omitNulls+ [ "apiVersion" .= v1CSIDriverApiVersion+ , "kind" .= v1CSIDriverKind+ , "metadata" .= v1CSIDriverMetadata+ , "spec" .= v1CSIDriverSpec+ ]+++-- | Construct a value of type 'V1CSIDriver' (by applying it's required fields, if any)+mkV1CSIDriver+ :: V1CSIDriverSpec -- ^ 'v1CSIDriverSpec' + -> V1CSIDriver+mkV1CSIDriver v1CSIDriverSpec =+ V1CSIDriver+ { v1CSIDriverApiVersion = Nothing+ , v1CSIDriverKind = Nothing+ , v1CSIDriverMetadata = Nothing+ , v1CSIDriverSpec+ }++-- ** V1CSIDriverList+-- | V1CSIDriverList+-- CSIDriverList is a collection of CSIDriver objects.+data V1CSIDriverList = V1CSIDriverList+ { v1CSIDriverListApiVersion :: !(Maybe Text) -- ^ "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+ , v1CSIDriverListItems :: !([V1CSIDriver]) -- ^ /Required/ "items" - items is the list of CSIDriver+ , v1CSIDriverListKind :: !(Maybe Text) -- ^ "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+ , v1CSIDriverListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSIDriverList+instance A.FromJSON V1CSIDriverList where+ parseJSON = A.withObject "V1CSIDriverList" $ \o ->+ V1CSIDriverList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1CSIDriverList+instance A.ToJSON V1CSIDriverList where+ toJSON V1CSIDriverList {..} =+ _omitNulls+ [ "apiVersion" .= v1CSIDriverListApiVersion+ , "items" .= v1CSIDriverListItems+ , "kind" .= v1CSIDriverListKind+ , "metadata" .= v1CSIDriverListMetadata+ ]+++-- | Construct a value of type 'V1CSIDriverList' (by applying it's required fields, if any)+mkV1CSIDriverList+ :: [V1CSIDriver] -- ^ 'v1CSIDriverListItems': items is the list of CSIDriver+ -> V1CSIDriverList+mkV1CSIDriverList v1CSIDriverListItems =+ V1CSIDriverList+ { v1CSIDriverListApiVersion = Nothing+ , v1CSIDriverListItems+ , v1CSIDriverListKind = Nothing+ , v1CSIDriverListMetadata = Nothing+ }++-- ** V1CSIDriverSpec+-- | V1CSIDriverSpec+-- CSIDriverSpec is the specification of a CSIDriver.+data V1CSIDriverSpec = V1CSIDriverSpec+ { v1CSIDriverSpecAttachRequired :: !(Maybe Bool) -- ^ "attachRequired" - attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called. This field is immutable.+ , v1CSIDriverSpecFsGroupPolicy :: !(Maybe Text) -- ^ "fsGroupPolicy" - fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field was immutable in Kubernetes < 1.29 and now is mutable. Defaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.+ , v1CSIDriverSpecNodeAllocatableUpdatePeriodSeconds :: !(Maybe Integer) -- ^ "nodeAllocatableUpdatePeriodSeconds" - nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds. This is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled. This field is mutable.+ , v1CSIDriverSpecPodInfoOnMount :: !(Maybe Bool) -- ^ "podInfoOnMount" - podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume defined by a CSIVolumeSource, otherwise \"false\" \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver. This field was immutable in Kubernetes < 1.29 and now is mutable.+ , v1CSIDriverSpecRequiresRepublish :: !(Maybe Bool) -- ^ "requiresRepublish" - requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false. Note: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.+ , v1CSIDriverSpecSeLinuxMount :: !(Maybe Bool) -- ^ "seLinuxMount" - seLinuxMount specifies if the CSI driver supports \"-o context\" mount option. When \"true\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context. When \"false\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem. Default is \"false\".+ , v1CSIDriverSpecServiceAccountTokenInSecrets :: !(Maybe Bool) -- ^ "serviceAccountTokenInSecrets" - serviceAccountTokenInSecrets is an opt-in for CSI drivers to indicate that service account tokens should be passed via the Secrets field in NodePublishVolumeRequest instead of the VolumeContext field. The CSI specification provides a dedicated Secrets field for sensitive information like tokens, which is the appropriate mechanism for handling credentials. This addresses security concerns where sensitive tokens were being logged as part of volume context. When \"true\", kubelet will pass the tokens only in the Secrets field with the key \"csi.storage.k8s.io/serviceAccount.tokens\". The CSI driver must be updated to read tokens from the Secrets field instead of VolumeContext. When \"false\" or not set, kubelet will pass the tokens in VolumeContext with the key \"csi.storage.k8s.io/serviceAccount.tokens\" (existing behavior). This maintains backward compatibility with existing CSI drivers. This field can only be set when TokenRequests is configured. The API server will reject CSIDriver specs that set this field without TokenRequests. Default behavior if unset is to pass tokens in the VolumeContext field.+ , v1CSIDriverSpecStorageCapacity :: !(Maybe Bool) -- ^ "storageCapacity" - storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information, if set to true. The check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object. Alternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published. This field was immutable in Kubernetes <= 1.22 and now is mutable.+ , v1CSIDriverSpecTokenRequests :: !(Maybe [StorageV1TokenRequest]) -- ^ "tokenRequests" - tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": { \"<audience>\": { \"token\": <token>, \"expirationTimestamp\": <expiration timestamp in RFC3339>, }, ... } Note: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.+ , v1CSIDriverSpecVolumeLifecycleModes :: !(Maybe [Text]) -- ^ "volumeLifecycleModes" - volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta. This field is immutable.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSIDriverSpec+instance A.FromJSON V1CSIDriverSpec where+ parseJSON = A.withObject "V1CSIDriverSpec" $ \o ->+ V1CSIDriverSpec+ <$> (o .:? "attachRequired")+ <*> (o .:? "fsGroupPolicy")+ <*> (o .:? "nodeAllocatableUpdatePeriodSeconds")+ <*> (o .:? "podInfoOnMount")+ <*> (o .:? "requiresRepublish")+ <*> (o .:? "seLinuxMount")+ <*> (o .:? "serviceAccountTokenInSecrets")+ <*> (o .:? "storageCapacity")+ <*> (o .:? "tokenRequests")+ <*> (o .:? "volumeLifecycleModes")++-- | ToJSON V1CSIDriverSpec+instance A.ToJSON V1CSIDriverSpec where+ toJSON V1CSIDriverSpec {..} =+ _omitNulls+ [ "attachRequired" .= v1CSIDriverSpecAttachRequired+ , "fsGroupPolicy" .= v1CSIDriverSpecFsGroupPolicy+ , "nodeAllocatableUpdatePeriodSeconds" .= v1CSIDriverSpecNodeAllocatableUpdatePeriodSeconds+ , "podInfoOnMount" .= v1CSIDriverSpecPodInfoOnMount+ , "requiresRepublish" .= v1CSIDriverSpecRequiresRepublish+ , "seLinuxMount" .= v1CSIDriverSpecSeLinuxMount+ , "serviceAccountTokenInSecrets" .= v1CSIDriverSpecServiceAccountTokenInSecrets+ , "storageCapacity" .= v1CSIDriverSpecStorageCapacity+ , "tokenRequests" .= v1CSIDriverSpecTokenRequests+ , "volumeLifecycleModes" .= v1CSIDriverSpecVolumeLifecycleModes+ ]+++-- | Construct a value of type 'V1CSIDriverSpec' (by applying it's required fields, if any)+mkV1CSIDriverSpec+ :: V1CSIDriverSpec+mkV1CSIDriverSpec =+ V1CSIDriverSpec+ { v1CSIDriverSpecAttachRequired = Nothing+ , v1CSIDriverSpecFsGroupPolicy = Nothing+ , v1CSIDriverSpecNodeAllocatableUpdatePeriodSeconds = Nothing+ , v1CSIDriverSpecPodInfoOnMount = Nothing+ , v1CSIDriverSpecRequiresRepublish = Nothing+ , v1CSIDriverSpecSeLinuxMount = Nothing+ , v1CSIDriverSpecServiceAccountTokenInSecrets = Nothing+ , v1CSIDriverSpecStorageCapacity = Nothing+ , v1CSIDriverSpecTokenRequests = Nothing+ , v1CSIDriverSpecVolumeLifecycleModes = Nothing+ }++-- ** V1CSINode+-- | V1CSINode+-- CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.+data V1CSINode = V1CSINode+ { v1CSINodeApiVersion :: !(Maybe Text) -- ^ "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+ , v1CSINodeKind :: !(Maybe Text) -- ^ "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+ , v1CSINodeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1CSINodeSpec :: !(V1CSINodeSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSINode+instance A.FromJSON V1CSINode where+ parseJSON = A.withObject "V1CSINode" $ \o ->+ V1CSINode+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1CSINode+instance A.ToJSON V1CSINode where+ toJSON V1CSINode {..} =+ _omitNulls+ [ "apiVersion" .= v1CSINodeApiVersion+ , "kind" .= v1CSINodeKind+ , "metadata" .= v1CSINodeMetadata+ , "spec" .= v1CSINodeSpec+ ]+++-- | Construct a value of type 'V1CSINode' (by applying it's required fields, if any)+mkV1CSINode+ :: V1CSINodeSpec -- ^ 'v1CSINodeSpec' + -> V1CSINode+mkV1CSINode v1CSINodeSpec =+ V1CSINode+ { v1CSINodeApiVersion = Nothing+ , v1CSINodeKind = Nothing+ , v1CSINodeMetadata = Nothing+ , v1CSINodeSpec+ }++-- ** V1CSINodeDriver+-- | V1CSINodeDriver+-- CSINodeDriver holds information about the specification of one CSI driver installed on a node+data V1CSINodeDriver = V1CSINodeDriver+ { v1CSINodeDriverAllocatable :: !(Maybe V1VolumeNodeResources) -- ^ "allocatable"+ , v1CSINodeDriverName :: !(Text) -- ^ /Required/ "name" - name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.+ , v1CSINodeDriverNodeId :: !(Text) -- ^ /Required/ "nodeID" - nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.+ , v1CSINodeDriverTopologyKeys :: !(Maybe [Text]) -- ^ "topologyKeys" - topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSINodeDriver+instance A.FromJSON V1CSINodeDriver where+ parseJSON = A.withObject "V1CSINodeDriver" $ \o ->+ V1CSINodeDriver+ <$> (o .:? "allocatable")+ <*> (o .: "name")+ <*> (o .: "nodeID")+ <*> (o .:? "topologyKeys")++-- | ToJSON V1CSINodeDriver+instance A.ToJSON V1CSINodeDriver where+ toJSON V1CSINodeDriver {..} =+ _omitNulls+ [ "allocatable" .= v1CSINodeDriverAllocatable+ , "name" .= v1CSINodeDriverName+ , "nodeID" .= v1CSINodeDriverNodeId+ , "topologyKeys" .= v1CSINodeDriverTopologyKeys+ ]+++-- | Construct a value of type 'V1CSINodeDriver' (by applying it's required fields, if any)+mkV1CSINodeDriver+ :: Text -- ^ 'v1CSINodeDriverName': name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.+ -> Text -- ^ 'v1CSINodeDriverNodeId': nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.+ -> V1CSINodeDriver+mkV1CSINodeDriver v1CSINodeDriverName v1CSINodeDriverNodeId =+ V1CSINodeDriver+ { v1CSINodeDriverAllocatable = Nothing+ , v1CSINodeDriverName+ , v1CSINodeDriverNodeId+ , v1CSINodeDriverTopologyKeys = Nothing+ }++-- ** V1CSINodeList+-- | V1CSINodeList+-- CSINodeList is a collection of CSINode objects.+data V1CSINodeList = V1CSINodeList+ { v1CSINodeListApiVersion :: !(Maybe Text) -- ^ "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+ , v1CSINodeListItems :: !([V1CSINode]) -- ^ /Required/ "items" - items is the list of CSINode+ , v1CSINodeListKind :: !(Maybe Text) -- ^ "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+ , v1CSINodeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSINodeList+instance A.FromJSON V1CSINodeList where+ parseJSON = A.withObject "V1CSINodeList" $ \o ->+ V1CSINodeList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1CSINodeList+instance A.ToJSON V1CSINodeList where+ toJSON V1CSINodeList {..} =+ _omitNulls+ [ "apiVersion" .= v1CSINodeListApiVersion+ , "items" .= v1CSINodeListItems+ , "kind" .= v1CSINodeListKind+ , "metadata" .= v1CSINodeListMetadata+ ]+++-- | Construct a value of type 'V1CSINodeList' (by applying it's required fields, if any)+mkV1CSINodeList+ :: [V1CSINode] -- ^ 'v1CSINodeListItems': items is the list of CSINode+ -> V1CSINodeList+mkV1CSINodeList v1CSINodeListItems =+ V1CSINodeList+ { v1CSINodeListApiVersion = Nothing+ , v1CSINodeListItems+ , v1CSINodeListKind = Nothing+ , v1CSINodeListMetadata = Nothing+ }++-- ** V1CSINodeSpec+-- | V1CSINodeSpec+-- CSINodeSpec holds information about the specification of all CSI drivers installed on a node+data V1CSINodeSpec = V1CSINodeSpec+ { v1CSINodeSpecDrivers :: !([V1CSINodeDriver]) -- ^ /Required/ "drivers" - drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSINodeSpec+instance A.FromJSON V1CSINodeSpec where+ parseJSON = A.withObject "V1CSINodeSpec" $ \o ->+ V1CSINodeSpec+ <$> (o .: "drivers")++-- | ToJSON V1CSINodeSpec+instance A.ToJSON V1CSINodeSpec where+ toJSON V1CSINodeSpec {..} =+ _omitNulls+ [ "drivers" .= v1CSINodeSpecDrivers+ ]+++-- | Construct a value of type 'V1CSINodeSpec' (by applying it's required fields, if any)+mkV1CSINodeSpec+ :: [V1CSINodeDriver] -- ^ 'v1CSINodeSpecDrivers': drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.+ -> V1CSINodeSpec+mkV1CSINodeSpec v1CSINodeSpecDrivers =+ V1CSINodeSpec+ { v1CSINodeSpecDrivers+ }++-- ** V1CSIPersistentVolumeSource+-- | V1CSIPersistentVolumeSource+-- Represents storage that is managed by an external CSI volume driver+data V1CSIPersistentVolumeSource = V1CSIPersistentVolumeSource+ { v1CSIPersistentVolumeSourceControllerExpandSecretRef :: !(Maybe V1SecretReference) -- ^ "controllerExpandSecretRef"+ , v1CSIPersistentVolumeSourceControllerPublishSecretRef :: !(Maybe V1SecretReference) -- ^ "controllerPublishSecretRef"+ , v1CSIPersistentVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the driver to use for this volume. Required.+ , v1CSIPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".+ , v1CSIPersistentVolumeSourceNodeExpandSecretRef :: !(Maybe V1SecretReference) -- ^ "nodeExpandSecretRef"+ , v1CSIPersistentVolumeSourceNodePublishSecretRef :: !(Maybe V1SecretReference) -- ^ "nodePublishSecretRef"+ , v1CSIPersistentVolumeSourceNodeStageSecretRef :: !(Maybe V1SecretReference) -- ^ "nodeStageSecretRef"+ , v1CSIPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).+ , v1CSIPersistentVolumeSourceVolumeAttributes :: !(Maybe (Map.Map String Text)) -- ^ "volumeAttributes" - volumeAttributes of the volume to publish.+ , v1CSIPersistentVolumeSourceVolumeHandle :: !(Text) -- ^ /Required/ "volumeHandle" - volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSIPersistentVolumeSource+instance A.FromJSON V1CSIPersistentVolumeSource where+ parseJSON = A.withObject "V1CSIPersistentVolumeSource" $ \o ->+ V1CSIPersistentVolumeSource+ <$> (o .:? "controllerExpandSecretRef")+ <*> (o .:? "controllerPublishSecretRef")+ <*> (o .: "driver")+ <*> (o .:? "fsType")+ <*> (o .:? "nodeExpandSecretRef")+ <*> (o .:? "nodePublishSecretRef")+ <*> (o .:? "nodeStageSecretRef")+ <*> (o .:? "readOnly")+ <*> (o .:? "volumeAttributes")+ <*> (o .: "volumeHandle")++-- | ToJSON V1CSIPersistentVolumeSource+instance A.ToJSON V1CSIPersistentVolumeSource where+ toJSON V1CSIPersistentVolumeSource {..} =+ _omitNulls+ [ "controllerExpandSecretRef" .= v1CSIPersistentVolumeSourceControllerExpandSecretRef+ , "controllerPublishSecretRef" .= v1CSIPersistentVolumeSourceControllerPublishSecretRef+ , "driver" .= v1CSIPersistentVolumeSourceDriver+ , "fsType" .= v1CSIPersistentVolumeSourceFsType+ , "nodeExpandSecretRef" .= v1CSIPersistentVolumeSourceNodeExpandSecretRef+ , "nodePublishSecretRef" .= v1CSIPersistentVolumeSourceNodePublishSecretRef+ , "nodeStageSecretRef" .= v1CSIPersistentVolumeSourceNodeStageSecretRef+ , "readOnly" .= v1CSIPersistentVolumeSourceReadOnly+ , "volumeAttributes" .= v1CSIPersistentVolumeSourceVolumeAttributes+ , "volumeHandle" .= v1CSIPersistentVolumeSourceVolumeHandle+ ]+++-- | Construct a value of type 'V1CSIPersistentVolumeSource' (by applying it's required fields, if any)+mkV1CSIPersistentVolumeSource+ :: Text -- ^ 'v1CSIPersistentVolumeSourceDriver': driver is the name of the driver to use for this volume. Required.+ -> Text -- ^ 'v1CSIPersistentVolumeSourceVolumeHandle': volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.+ -> V1CSIPersistentVolumeSource+mkV1CSIPersistentVolumeSource v1CSIPersistentVolumeSourceDriver v1CSIPersistentVolumeSourceVolumeHandle =+ V1CSIPersistentVolumeSource+ { v1CSIPersistentVolumeSourceControllerExpandSecretRef = Nothing+ , v1CSIPersistentVolumeSourceControllerPublishSecretRef = Nothing+ , v1CSIPersistentVolumeSourceDriver+ , v1CSIPersistentVolumeSourceFsType = Nothing+ , v1CSIPersistentVolumeSourceNodeExpandSecretRef = Nothing+ , v1CSIPersistentVolumeSourceNodePublishSecretRef = Nothing+ , v1CSIPersistentVolumeSourceNodeStageSecretRef = Nothing+ , v1CSIPersistentVolumeSourceReadOnly = Nothing+ , v1CSIPersistentVolumeSourceVolumeAttributes = Nothing+ , v1CSIPersistentVolumeSourceVolumeHandle+ }++-- ** V1CSIStorageCapacity+-- | V1CSIStorageCapacity+-- CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes. For example this can express things like: - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\" - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\" The following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero The producer of these objects can decide which approach is more suitable. They are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.+data V1CSIStorageCapacity = V1CSIStorageCapacity+ { v1CSIStorageCapacityApiVersion :: !(Maybe Text) -- ^ "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+ , v1CSIStorageCapacityCapacity :: !(Maybe Quantity) -- ^ "capacity"+ , v1CSIStorageCapacityKind :: !(Maybe Text) -- ^ "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+ , v1CSIStorageCapacityMaximumVolumeSize :: !(Maybe Quantity) -- ^ "maximumVolumeSize"+ , v1CSIStorageCapacityMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1CSIStorageCapacityNodeTopology :: !(Maybe V1LabelSelector) -- ^ "nodeTopology"+ , v1CSIStorageCapacityStorageClassName :: !(Text) -- ^ /Required/ "storageClassName" - storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSIStorageCapacity+instance A.FromJSON V1CSIStorageCapacity where+ parseJSON = A.withObject "V1CSIStorageCapacity" $ \o ->+ V1CSIStorageCapacity+ <$> (o .:? "apiVersion")+ <*> (o .:? "capacity")+ <*> (o .:? "kind")+ <*> (o .:? "maximumVolumeSize")+ <*> (o .:? "metadata")+ <*> (o .:? "nodeTopology")+ <*> (o .: "storageClassName")++-- | ToJSON V1CSIStorageCapacity+instance A.ToJSON V1CSIStorageCapacity where+ toJSON V1CSIStorageCapacity {..} =+ _omitNulls+ [ "apiVersion" .= v1CSIStorageCapacityApiVersion+ , "capacity" .= v1CSIStorageCapacityCapacity+ , "kind" .= v1CSIStorageCapacityKind+ , "maximumVolumeSize" .= v1CSIStorageCapacityMaximumVolumeSize+ , "metadata" .= v1CSIStorageCapacityMetadata+ , "nodeTopology" .= v1CSIStorageCapacityNodeTopology+ , "storageClassName" .= v1CSIStorageCapacityStorageClassName+ ]+++-- | Construct a value of type 'V1CSIStorageCapacity' (by applying it's required fields, if any)+mkV1CSIStorageCapacity+ :: Text -- ^ 'v1CSIStorageCapacityStorageClassName': storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.+ -> V1CSIStorageCapacity+mkV1CSIStorageCapacity v1CSIStorageCapacityStorageClassName =+ V1CSIStorageCapacity+ { v1CSIStorageCapacityApiVersion = Nothing+ , v1CSIStorageCapacityCapacity = Nothing+ , v1CSIStorageCapacityKind = Nothing+ , v1CSIStorageCapacityMaximumVolumeSize = Nothing+ , v1CSIStorageCapacityMetadata = Nothing+ , v1CSIStorageCapacityNodeTopology = Nothing+ , v1CSIStorageCapacityStorageClassName+ }++-- ** V1CSIStorageCapacityList+-- | V1CSIStorageCapacityList+-- CSIStorageCapacityList is a collection of CSIStorageCapacity objects.+data V1CSIStorageCapacityList = V1CSIStorageCapacityList+ { v1CSIStorageCapacityListApiVersion :: !(Maybe Text) -- ^ "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+ , v1CSIStorageCapacityListItems :: !([V1CSIStorageCapacity]) -- ^ /Required/ "items" - items is the list of CSIStorageCapacity objects.+ , v1CSIStorageCapacityListKind :: !(Maybe Text) -- ^ "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+ , v1CSIStorageCapacityListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSIStorageCapacityList+instance A.FromJSON V1CSIStorageCapacityList where+ parseJSON = A.withObject "V1CSIStorageCapacityList" $ \o ->+ V1CSIStorageCapacityList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1CSIStorageCapacityList+instance A.ToJSON V1CSIStorageCapacityList where+ toJSON V1CSIStorageCapacityList {..} =+ _omitNulls+ [ "apiVersion" .= v1CSIStorageCapacityListApiVersion+ , "items" .= v1CSIStorageCapacityListItems+ , "kind" .= v1CSIStorageCapacityListKind+ , "metadata" .= v1CSIStorageCapacityListMetadata+ ]+++-- | Construct a value of type 'V1CSIStorageCapacityList' (by applying it's required fields, if any)+mkV1CSIStorageCapacityList+ :: [V1CSIStorageCapacity] -- ^ 'v1CSIStorageCapacityListItems': items is the list of CSIStorageCapacity objects.+ -> V1CSIStorageCapacityList+mkV1CSIStorageCapacityList v1CSIStorageCapacityListItems =+ V1CSIStorageCapacityList+ { v1CSIStorageCapacityListApiVersion = Nothing+ , v1CSIStorageCapacityListItems+ , v1CSIStorageCapacityListKind = Nothing+ , v1CSIStorageCapacityListMetadata = Nothing+ }++-- ** V1CSIVolumeSource+-- | V1CSIVolumeSource+-- Represents a source location of a volume to mount, managed by an external CSI driver+data V1CSIVolumeSource = V1CSIVolumeSource+ { v1CSIVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.+ , v1CSIVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.+ , v1CSIVolumeSourceNodePublishSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "nodePublishSecretRef"+ , v1CSIVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).+ , v1CSIVolumeSourceVolumeAttributes :: !(Maybe (Map.Map String Text)) -- ^ "volumeAttributes" - volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CSIVolumeSource+instance A.FromJSON V1CSIVolumeSource where+ parseJSON = A.withObject "V1CSIVolumeSource" $ \o ->+ V1CSIVolumeSource+ <$> (o .: "driver")+ <*> (o .:? "fsType")+ <*> (o .:? "nodePublishSecretRef")+ <*> (o .:? "readOnly")+ <*> (o .:? "volumeAttributes")++-- | ToJSON V1CSIVolumeSource+instance A.ToJSON V1CSIVolumeSource where+ toJSON V1CSIVolumeSource {..} =+ _omitNulls+ [ "driver" .= v1CSIVolumeSourceDriver+ , "fsType" .= v1CSIVolumeSourceFsType+ , "nodePublishSecretRef" .= v1CSIVolumeSourceNodePublishSecretRef+ , "readOnly" .= v1CSIVolumeSourceReadOnly+ , "volumeAttributes" .= v1CSIVolumeSourceVolumeAttributes+ ]+++-- | Construct a value of type 'V1CSIVolumeSource' (by applying it's required fields, if any)+mkV1CSIVolumeSource+ :: Text -- ^ 'v1CSIVolumeSourceDriver': driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.+ -> V1CSIVolumeSource+mkV1CSIVolumeSource v1CSIVolumeSourceDriver =+ V1CSIVolumeSource+ { v1CSIVolumeSourceDriver+ , v1CSIVolumeSourceFsType = Nothing+ , v1CSIVolumeSourceNodePublishSecretRef = Nothing+ , v1CSIVolumeSourceReadOnly = Nothing+ , v1CSIVolumeSourceVolumeAttributes = Nothing+ }++-- ** V1Capabilities+-- | V1Capabilities+-- Adds and removes POSIX capabilities from running containers.+data V1Capabilities = V1Capabilities+ { v1CapabilitiesAdd :: !(Maybe [Text]) -- ^ "add" - Added capabilities+ , v1CapabilitiesDrop :: !(Maybe [Text]) -- ^ "drop" - Removed capabilities+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Capabilities+instance A.FromJSON V1Capabilities where+ parseJSON = A.withObject "V1Capabilities" $ \o ->+ V1Capabilities+ <$> (o .:? "add")+ <*> (o .:? "drop")++-- | ToJSON V1Capabilities+instance A.ToJSON V1Capabilities where+ toJSON V1Capabilities {..} =+ _omitNulls+ [ "add" .= v1CapabilitiesAdd+ , "drop" .= v1CapabilitiesDrop+ ]+++-- | Construct a value of type 'V1Capabilities' (by applying it's required fields, if any)+mkV1Capabilities+ :: V1Capabilities+mkV1Capabilities =+ V1Capabilities+ { v1CapabilitiesAdd = Nothing+ , v1CapabilitiesDrop = Nothing+ }++-- ** V1CapacityRequestPolicy+-- | V1CapacityRequestPolicy+-- CapacityRequestPolicy defines how requests consume device capacity. Must not set more than one ValidRequestValues.+data V1CapacityRequestPolicy = V1CapacityRequestPolicy+ { v1CapacityRequestPolicyDefault :: !(Maybe Quantity) -- ^ "default"+ , v1CapacityRequestPolicyValidRange :: !(Maybe V1CapacityRequestPolicyRange) -- ^ "validRange"+ , v1CapacityRequestPolicyValidValues :: !(Maybe [Quantity]) -- ^ "validValues" - ValidValues defines a set of acceptable quantity values in consuming requests. Must not contain more than 10 entries. Must be sorted in ascending order. If this field is set, Default must be defined and it must be included in ValidValues list. If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≤ max(validValues). If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CapacityRequestPolicy+instance A.FromJSON V1CapacityRequestPolicy where+ parseJSON = A.withObject "V1CapacityRequestPolicy" $ \o ->+ V1CapacityRequestPolicy+ <$> (o .:? "default")+ <*> (o .:? "validRange")+ <*> (o .:? "validValues")++-- | ToJSON V1CapacityRequestPolicy+instance A.ToJSON V1CapacityRequestPolicy where+ toJSON V1CapacityRequestPolicy {..} =+ _omitNulls+ [ "default" .= v1CapacityRequestPolicyDefault+ , "validRange" .= v1CapacityRequestPolicyValidRange+ , "validValues" .= v1CapacityRequestPolicyValidValues+ ]+++-- | Construct a value of type 'V1CapacityRequestPolicy' (by applying it's required fields, if any)+mkV1CapacityRequestPolicy+ :: V1CapacityRequestPolicy+mkV1CapacityRequestPolicy =+ V1CapacityRequestPolicy+ { v1CapacityRequestPolicyDefault = Nothing+ , v1CapacityRequestPolicyValidRange = Nothing+ , v1CapacityRequestPolicyValidValues = Nothing+ }++-- ** V1CapacityRequestPolicyRange+-- | V1CapacityRequestPolicyRange+-- CapacityRequestPolicyRange defines a valid range for consumable capacity values. - If the requested amount is less than Min, it is rounded up to the Min value. - If Step is set and the requested amount is between Min and Max but not aligned with Step, it will be rounded up to the next value equal to Min + (n * Step). - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, and the device cannot be allocated.+data V1CapacityRequestPolicyRange = V1CapacityRequestPolicyRange+ { v1CapacityRequestPolicyRangeMax :: !(Maybe Quantity) -- ^ "max"+ , v1CapacityRequestPolicyRangeMin :: !(Quantity) -- ^ /Required/ "min"+ , v1CapacityRequestPolicyRangeStep :: !(Maybe Quantity) -- ^ "step"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CapacityRequestPolicyRange+instance A.FromJSON V1CapacityRequestPolicyRange where+ parseJSON = A.withObject "V1CapacityRequestPolicyRange" $ \o ->+ V1CapacityRequestPolicyRange+ <$> (o .:? "max")+ <*> (o .: "min")+ <*> (o .:? "step")++-- | ToJSON V1CapacityRequestPolicyRange+instance A.ToJSON V1CapacityRequestPolicyRange where+ toJSON V1CapacityRequestPolicyRange {..} =+ _omitNulls+ [ "max" .= v1CapacityRequestPolicyRangeMax+ , "min" .= v1CapacityRequestPolicyRangeMin+ , "step" .= v1CapacityRequestPolicyRangeStep+ ]+++-- | Construct a value of type 'V1CapacityRequestPolicyRange' (by applying it's required fields, if any)+mkV1CapacityRequestPolicyRange+ :: Quantity -- ^ 'v1CapacityRequestPolicyRangeMin' + -> V1CapacityRequestPolicyRange+mkV1CapacityRequestPolicyRange v1CapacityRequestPolicyRangeMin =+ V1CapacityRequestPolicyRange+ { v1CapacityRequestPolicyRangeMax = Nothing+ , v1CapacityRequestPolicyRangeMin+ , v1CapacityRequestPolicyRangeStep = Nothing+ }++-- ** V1CapacityRequirements+-- | V1CapacityRequirements+-- CapacityRequirements defines the capacity requirements for a specific device request.+data V1CapacityRequirements = V1CapacityRequirements+ { v1CapacityRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[<domain>].<name>.compareTo(quantity(<request quantity>)) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid value—because it exceeds what the requestPolicy allows— the device is considered ineligible for allocation. For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity (i.e., the whole device is claimed). - If a requestPolicy is set, the default consumed capacity is determined according to that policy. If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CapacityRequirements+instance A.FromJSON V1CapacityRequirements where+ parseJSON = A.withObject "V1CapacityRequirements" $ \o ->+ V1CapacityRequirements+ <$> (o .:? "requests")++-- | ToJSON V1CapacityRequirements+instance A.ToJSON V1CapacityRequirements where+ toJSON V1CapacityRequirements {..} =+ _omitNulls+ [ "requests" .= v1CapacityRequirementsRequests+ ]+++-- | Construct a value of type 'V1CapacityRequirements' (by applying it's required fields, if any)+mkV1CapacityRequirements+ :: V1CapacityRequirements+mkV1CapacityRequirements =+ V1CapacityRequirements+ { v1CapacityRequirementsRequests = Nothing+ }++-- ** V1CephFSPersistentVolumeSource+-- | V1CephFSPersistentVolumeSource+-- Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.+data V1CephFSPersistentVolumeSource = V1CephFSPersistentVolumeSource+ { v1CephFSPersistentVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ , v1CephFSPersistentVolumeSourcePath :: !(Maybe Text) -- ^ "path" - path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /+ , v1CephFSPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ , v1CephFSPersistentVolumeSourceSecretFile :: !(Maybe Text) -- ^ "secretFile" - secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ , v1CephFSPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"+ , v1CephFSPersistentVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CephFSPersistentVolumeSource+instance A.FromJSON V1CephFSPersistentVolumeSource where+ parseJSON = A.withObject "V1CephFSPersistentVolumeSource" $ \o ->+ V1CephFSPersistentVolumeSource+ <$> (o .: "monitors")+ <*> (o .:? "path")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretFile")+ <*> (o .:? "secretRef")+ <*> (o .:? "user")++-- | ToJSON V1CephFSPersistentVolumeSource+instance A.ToJSON V1CephFSPersistentVolumeSource where+ toJSON V1CephFSPersistentVolumeSource {..} =+ _omitNulls+ [ "monitors" .= v1CephFSPersistentVolumeSourceMonitors+ , "path" .= v1CephFSPersistentVolumeSourcePath+ , "readOnly" .= v1CephFSPersistentVolumeSourceReadOnly+ , "secretFile" .= v1CephFSPersistentVolumeSourceSecretFile+ , "secretRef" .= v1CephFSPersistentVolumeSourceSecretRef+ , "user" .= v1CephFSPersistentVolumeSourceUser+ ]+++-- | Construct a value of type 'V1CephFSPersistentVolumeSource' (by applying it's required fields, if any)+mkV1CephFSPersistentVolumeSource+ :: [Text] -- ^ 'v1CephFSPersistentVolumeSourceMonitors': monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ -> V1CephFSPersistentVolumeSource+mkV1CephFSPersistentVolumeSource v1CephFSPersistentVolumeSourceMonitors =+ V1CephFSPersistentVolumeSource+ { v1CephFSPersistentVolumeSourceMonitors+ , v1CephFSPersistentVolumeSourcePath = Nothing+ , v1CephFSPersistentVolumeSourceReadOnly = Nothing+ , v1CephFSPersistentVolumeSourceSecretFile = Nothing+ , v1CephFSPersistentVolumeSourceSecretRef = Nothing+ , v1CephFSPersistentVolumeSourceUser = Nothing+ }++-- ** V1CephFSVolumeSource+-- | V1CephFSVolumeSource+-- Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.+data V1CephFSVolumeSource = V1CephFSVolumeSource+ { v1CephFSVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ , v1CephFSVolumeSourcePath :: !(Maybe Text) -- ^ "path" - path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /+ , v1CephFSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ , v1CephFSVolumeSourceSecretFile :: !(Maybe Text) -- ^ "secretFile" - secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ , v1CephFSVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"+ , v1CephFSVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CephFSVolumeSource+instance A.FromJSON V1CephFSVolumeSource where+ parseJSON = A.withObject "V1CephFSVolumeSource" $ \o ->+ V1CephFSVolumeSource+ <$> (o .: "monitors")+ <*> (o .:? "path")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretFile")+ <*> (o .:? "secretRef")+ <*> (o .:? "user")++-- | ToJSON V1CephFSVolumeSource+instance A.ToJSON V1CephFSVolumeSource where+ toJSON V1CephFSVolumeSource {..} =+ _omitNulls+ [ "monitors" .= v1CephFSVolumeSourceMonitors+ , "path" .= v1CephFSVolumeSourcePath+ , "readOnly" .= v1CephFSVolumeSourceReadOnly+ , "secretFile" .= v1CephFSVolumeSourceSecretFile+ , "secretRef" .= v1CephFSVolumeSourceSecretRef+ , "user" .= v1CephFSVolumeSourceUser+ ]+++-- | Construct a value of type 'V1CephFSVolumeSource' (by applying it's required fields, if any)+mkV1CephFSVolumeSource+ :: [Text] -- ^ 'v1CephFSVolumeSourceMonitors': monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it+ -> V1CephFSVolumeSource+mkV1CephFSVolumeSource v1CephFSVolumeSourceMonitors =+ V1CephFSVolumeSource+ { v1CephFSVolumeSourceMonitors+ , v1CephFSVolumeSourcePath = Nothing+ , v1CephFSVolumeSourceReadOnly = Nothing+ , v1CephFSVolumeSourceSecretFile = Nothing+ , v1CephFSVolumeSourceSecretRef = Nothing+ , v1CephFSVolumeSourceUser = Nothing+ }++-- ** V1CertificateSigningRequest+-- | V1CertificateSigningRequest+-- CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued. Kubelets use this API to obtain: 1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName). 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName). This API can be used to request client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client\" signerName), or to obtain certificates from custom non-Kubernetes signers.+data V1CertificateSigningRequest = V1CertificateSigningRequest+ { v1CertificateSigningRequestApiVersion :: !(Maybe Text) -- ^ "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+ , v1CertificateSigningRequestKind :: !(Maybe Text) -- ^ "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+ , v1CertificateSigningRequestMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1CertificateSigningRequestSpec :: !(V1CertificateSigningRequestSpec) -- ^ /Required/ "spec"+ , v1CertificateSigningRequestStatus :: !(Maybe V1CertificateSigningRequestStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CertificateSigningRequest+instance A.FromJSON V1CertificateSigningRequest where+ parseJSON = A.withObject "V1CertificateSigningRequest" $ \o ->+ V1CertificateSigningRequest+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1CertificateSigningRequest+instance A.ToJSON V1CertificateSigningRequest where+ toJSON V1CertificateSigningRequest {..} =+ _omitNulls+ [ "apiVersion" .= v1CertificateSigningRequestApiVersion+ , "kind" .= v1CertificateSigningRequestKind+ , "metadata" .= v1CertificateSigningRequestMetadata+ , "spec" .= v1CertificateSigningRequestSpec+ , "status" .= v1CertificateSigningRequestStatus+ ]+++-- | Construct a value of type 'V1CertificateSigningRequest' (by applying it's required fields, if any)+mkV1CertificateSigningRequest+ :: V1CertificateSigningRequestSpec -- ^ 'v1CertificateSigningRequestSpec' + -> V1CertificateSigningRequest+mkV1CertificateSigningRequest v1CertificateSigningRequestSpec =+ V1CertificateSigningRequest+ { v1CertificateSigningRequestApiVersion = Nothing+ , v1CertificateSigningRequestKind = Nothing+ , v1CertificateSigningRequestMetadata = Nothing+ , v1CertificateSigningRequestSpec+ , v1CertificateSigningRequestStatus = Nothing+ }++-- ** V1CertificateSigningRequestCondition+-- | V1CertificateSigningRequestCondition+-- CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object+data V1CertificateSigningRequestCondition = V1CertificateSigningRequestCondition+ { v1CertificateSigningRequestConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.+ , v1CertificateSigningRequestConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - lastUpdateTime is the time of the last update to this condition+ , v1CertificateSigningRequestConditionMessage :: !(Maybe Text) -- ^ "message" - message contains a human readable message with details about the request state+ , v1CertificateSigningRequestConditionReason :: !(Maybe Text) -- ^ "reason" - reason indicates a brief reason for the request state+ , v1CertificateSigningRequestConditionStatus :: !(Text) -- ^ /Required/ "status" - status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".+ , v1CertificateSigningRequestConditionType :: !(Text) -- ^ /Required/ "type" - type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\". An \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer. A \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer. A \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate. Approved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added. Only one condition of a given type is allowed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CertificateSigningRequestCondition+instance A.FromJSON V1CertificateSigningRequestCondition where+ parseJSON = A.withObject "V1CertificateSigningRequestCondition" $ \o ->+ V1CertificateSigningRequestCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "lastUpdateTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1CertificateSigningRequestCondition+instance A.ToJSON V1CertificateSigningRequestCondition where+ toJSON V1CertificateSigningRequestCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1CertificateSigningRequestConditionLastTransitionTime+ , "lastUpdateTime" .= v1CertificateSigningRequestConditionLastUpdateTime+ , "message" .= v1CertificateSigningRequestConditionMessage+ , "reason" .= v1CertificateSigningRequestConditionReason+ , "status" .= v1CertificateSigningRequestConditionStatus+ , "type" .= v1CertificateSigningRequestConditionType+ ]+++-- | Construct a value of type 'V1CertificateSigningRequestCondition' (by applying it's required fields, if any)+mkV1CertificateSigningRequestCondition+ :: Text -- ^ 'v1CertificateSigningRequestConditionStatus': status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".+ -> Text -- ^ 'v1CertificateSigningRequestConditionType': type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\". An \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer. A \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer. A \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate. Approved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added. Only one condition of a given type is allowed.+ -> V1CertificateSigningRequestCondition+mkV1CertificateSigningRequestCondition v1CertificateSigningRequestConditionStatus v1CertificateSigningRequestConditionType =+ V1CertificateSigningRequestCondition+ { v1CertificateSigningRequestConditionLastTransitionTime = Nothing+ , v1CertificateSigningRequestConditionLastUpdateTime = Nothing+ , v1CertificateSigningRequestConditionMessage = Nothing+ , v1CertificateSigningRequestConditionReason = Nothing+ , v1CertificateSigningRequestConditionStatus+ , v1CertificateSigningRequestConditionType+ }++-- ** V1CertificateSigningRequestList+-- | V1CertificateSigningRequestList+-- CertificateSigningRequestList is a collection of CertificateSigningRequest objects+data V1CertificateSigningRequestList = V1CertificateSigningRequestList+ { v1CertificateSigningRequestListApiVersion :: !(Maybe Text) -- ^ "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+ , v1CertificateSigningRequestListItems :: !([V1CertificateSigningRequest]) -- ^ /Required/ "items" - items is a collection of CertificateSigningRequest objects+ , v1CertificateSigningRequestListKind :: !(Maybe Text) -- ^ "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+ , v1CertificateSigningRequestListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CertificateSigningRequestList+instance A.FromJSON V1CertificateSigningRequestList where+ parseJSON = A.withObject "V1CertificateSigningRequestList" $ \o ->+ V1CertificateSigningRequestList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1CertificateSigningRequestList+instance A.ToJSON V1CertificateSigningRequestList where+ toJSON V1CertificateSigningRequestList {..} =+ _omitNulls+ [ "apiVersion" .= v1CertificateSigningRequestListApiVersion+ , "items" .= v1CertificateSigningRequestListItems+ , "kind" .= v1CertificateSigningRequestListKind+ , "metadata" .= v1CertificateSigningRequestListMetadata+ ]+++-- | Construct a value of type 'V1CertificateSigningRequestList' (by applying it's required fields, if any)+mkV1CertificateSigningRequestList+ :: [V1CertificateSigningRequest] -- ^ 'v1CertificateSigningRequestListItems': items is a collection of CertificateSigningRequest objects+ -> V1CertificateSigningRequestList+mkV1CertificateSigningRequestList v1CertificateSigningRequestListItems =+ V1CertificateSigningRequestList+ { v1CertificateSigningRequestListApiVersion = Nothing+ , v1CertificateSigningRequestListItems+ , v1CertificateSigningRequestListKind = Nothing+ , v1CertificateSigningRequestListMetadata = Nothing+ }++-- ** V1CertificateSigningRequestSpec+-- | V1CertificateSigningRequestSpec+-- CertificateSigningRequestSpec contains the certificate request.+data V1CertificateSigningRequestSpec = V1CertificateSigningRequestSpec+ { v1CertificateSigningRequestSpecExpirationSeconds :: !(Maybe Int) -- ^ "expirationSeconds" - expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration. The v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager. Certificate signers may not honor this field for various reasons: 1. Old signer that is unaware of the field (such as the in-tree implementations prior to v1.22) 2. Signer whose configured maximum is shorter than the requested duration 3. Signer whose configured minimum is longer than the requested duration The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.+ , v1CertificateSigningRequestSpecExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.+ , v1CertificateSigningRequestSpecGroups :: !(Maybe [Text]) -- ^ "groups" - groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.+ , v1CertificateSigningRequestSpecRequest :: !(ByteArray) -- ^ /Required/ "request" - request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.+ , v1CertificateSigningRequestSpecSignerName :: !(Text) -- ^ /Required/ "signerName" - signerName indicates the requested signer, and is a qualified name. List/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector. Well-known Kubernetes signers are: 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver. Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager. 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver. Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager. 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely. Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager. More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers Custom signerNames can also be specified. The signer defines: 1. Trust distribution: how trust (CA bundles) are distributed. 2. Permitted subjects: and behavior when a disallowed subject is requested. 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested. 4. Required, permitted, or forbidden key usages / extended key usages. 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin. 6. Whether or not requests for CA certificates are allowed.+ , v1CertificateSigningRequestSpecUid :: !(Maybe Text) -- ^ "uid" - uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.+ , v1CertificateSigningRequestSpecUsages :: !(Maybe [Text]) -- ^ "usages" - usages specifies a set of key usages requested in the issued certificate. Requests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\". Requests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\". Valid values are: \"signing\", \"digital signature\", \"content commitment\", \"key encipherment\", \"key agreement\", \"data encipherment\", \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\", \"server auth\", \"client auth\", \"code signing\", \"email protection\", \"s/mime\", \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\", \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"+ , v1CertificateSigningRequestSpecUsername :: !(Maybe Text) -- ^ "username" - username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CertificateSigningRequestSpec+instance A.FromJSON V1CertificateSigningRequestSpec where+ parseJSON = A.withObject "V1CertificateSigningRequestSpec" $ \o ->+ V1CertificateSigningRequestSpec+ <$> (o .:? "expirationSeconds")+ <*> (o .:? "extra")+ <*> (o .:? "groups")+ <*> (o .: "request")+ <*> (o .: "signerName")+ <*> (o .:? "uid")+ <*> (o .:? "usages")+ <*> (o .:? "username")++-- | ToJSON V1CertificateSigningRequestSpec+instance A.ToJSON V1CertificateSigningRequestSpec where+ toJSON V1CertificateSigningRequestSpec {..} =+ _omitNulls+ [ "expirationSeconds" .= v1CertificateSigningRequestSpecExpirationSeconds+ , "extra" .= v1CertificateSigningRequestSpecExtra+ , "groups" .= v1CertificateSigningRequestSpecGroups+ , "request" .= v1CertificateSigningRequestSpecRequest+ , "signerName" .= v1CertificateSigningRequestSpecSignerName+ , "uid" .= v1CertificateSigningRequestSpecUid+ , "usages" .= v1CertificateSigningRequestSpecUsages+ , "username" .= v1CertificateSigningRequestSpecUsername+ ]+++-- | Construct a value of type 'V1CertificateSigningRequestSpec' (by applying it's required fields, if any)+mkV1CertificateSigningRequestSpec+ :: ByteArray -- ^ 'v1CertificateSigningRequestSpecRequest': request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.+ -> Text -- ^ 'v1CertificateSigningRequestSpecSignerName': signerName indicates the requested signer, and is a qualified name. List/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector. Well-known Kubernetes signers are: 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver. Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager. 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver. Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager. 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely. Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager. More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers Custom signerNames can also be specified. The signer defines: 1. Trust distribution: how trust (CA bundles) are distributed. 2. Permitted subjects: and behavior when a disallowed subject is requested. 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested. 4. Required, permitted, or forbidden key usages / extended key usages. 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin. 6. Whether or not requests for CA certificates are allowed.+ -> V1CertificateSigningRequestSpec+mkV1CertificateSigningRequestSpec v1CertificateSigningRequestSpecRequest v1CertificateSigningRequestSpecSignerName =+ V1CertificateSigningRequestSpec+ { v1CertificateSigningRequestSpecExpirationSeconds = Nothing+ , v1CertificateSigningRequestSpecExtra = Nothing+ , v1CertificateSigningRequestSpecGroups = Nothing+ , v1CertificateSigningRequestSpecRequest+ , v1CertificateSigningRequestSpecSignerName+ , v1CertificateSigningRequestSpecUid = Nothing+ , v1CertificateSigningRequestSpecUsages = Nothing+ , v1CertificateSigningRequestSpecUsername = Nothing+ }++-- ** V1CertificateSigningRequestStatus+-- | V1CertificateSigningRequestStatus+-- CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.+data V1CertificateSigningRequestStatus = V1CertificateSigningRequestStatus+ { v1CertificateSigningRequestStatusCertificate :: !(Maybe ByteArray) -- ^ "certificate" - certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable. If the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty. Validation requirements: 1. certificate must contain one or more PEM blocks. 2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280. 3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated, to allow for explanatory text as described in section 5.2 of RFC7468. If more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. The certificate is encoded in PEM format. When serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of: base64( -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- )+ , v1CertificateSigningRequestStatusConditions :: !(Maybe [V1CertificateSigningRequestCondition]) -- ^ "conditions" - conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CertificateSigningRequestStatus+instance A.FromJSON V1CertificateSigningRequestStatus where+ parseJSON = A.withObject "V1CertificateSigningRequestStatus" $ \o ->+ V1CertificateSigningRequestStatus+ <$> (o .:? "certificate")+ <*> (o .:? "conditions")++-- | ToJSON V1CertificateSigningRequestStatus+instance A.ToJSON V1CertificateSigningRequestStatus where+ toJSON V1CertificateSigningRequestStatus {..} =+ _omitNulls+ [ "certificate" .= v1CertificateSigningRequestStatusCertificate+ , "conditions" .= v1CertificateSigningRequestStatusConditions+ ]+++-- | Construct a value of type 'V1CertificateSigningRequestStatus' (by applying it's required fields, if any)+mkV1CertificateSigningRequestStatus+ :: V1CertificateSigningRequestStatus+mkV1CertificateSigningRequestStatus =+ V1CertificateSigningRequestStatus+ { v1CertificateSigningRequestStatusCertificate = Nothing+ , v1CertificateSigningRequestStatusConditions = Nothing+ }++-- ** V1CinderPersistentVolumeSource+-- | V1CinderPersistentVolumeSource+-- Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.+data V1CinderPersistentVolumeSource = V1CinderPersistentVolumeSource+ { v1CinderPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md+ , v1CinderPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md+ , v1CinderPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"+ , v1CinderPersistentVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CinderPersistentVolumeSource+instance A.FromJSON V1CinderPersistentVolumeSource where+ parseJSON = A.withObject "V1CinderPersistentVolumeSource" $ \o ->+ V1CinderPersistentVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")+ <*> (o .: "volumeID")++-- | ToJSON V1CinderPersistentVolumeSource+instance A.ToJSON V1CinderPersistentVolumeSource where+ toJSON V1CinderPersistentVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1CinderPersistentVolumeSourceFsType+ , "readOnly" .= v1CinderPersistentVolumeSourceReadOnly+ , "secretRef" .= v1CinderPersistentVolumeSourceSecretRef+ , "volumeID" .= v1CinderPersistentVolumeSourceVolumeId+ ]+++-- | Construct a value of type 'V1CinderPersistentVolumeSource' (by applying it's required fields, if any)+mkV1CinderPersistentVolumeSource+ :: Text -- ^ 'v1CinderPersistentVolumeSourceVolumeId': volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md+ -> V1CinderPersistentVolumeSource+mkV1CinderPersistentVolumeSource v1CinderPersistentVolumeSourceVolumeId =+ V1CinderPersistentVolumeSource+ { v1CinderPersistentVolumeSourceFsType = Nothing+ , v1CinderPersistentVolumeSourceReadOnly = Nothing+ , v1CinderPersistentVolumeSourceSecretRef = Nothing+ , v1CinderPersistentVolumeSourceVolumeId+ }++-- ** V1CinderVolumeSource+-- | V1CinderVolumeSource+-- Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.+data V1CinderVolumeSource = V1CinderVolumeSource+ { v1CinderVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md+ , v1CinderVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md+ , v1CinderVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"+ , v1CinderVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CinderVolumeSource+instance A.FromJSON V1CinderVolumeSource where+ parseJSON = A.withObject "V1CinderVolumeSource" $ \o ->+ V1CinderVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")+ <*> (o .: "volumeID")++-- | ToJSON V1CinderVolumeSource+instance A.ToJSON V1CinderVolumeSource where+ toJSON V1CinderVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1CinderVolumeSourceFsType+ , "readOnly" .= v1CinderVolumeSourceReadOnly+ , "secretRef" .= v1CinderVolumeSourceSecretRef+ , "volumeID" .= v1CinderVolumeSourceVolumeId+ ]+++-- | Construct a value of type 'V1CinderVolumeSource' (by applying it's required fields, if any)+mkV1CinderVolumeSource+ :: Text -- ^ 'v1CinderVolumeSourceVolumeId': volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md+ -> V1CinderVolumeSource+mkV1CinderVolumeSource v1CinderVolumeSourceVolumeId =+ V1CinderVolumeSource+ { v1CinderVolumeSourceFsType = Nothing+ , v1CinderVolumeSourceReadOnly = Nothing+ , v1CinderVolumeSourceSecretRef = Nothing+ , v1CinderVolumeSourceVolumeId+ }++-- ** V1ClientIPConfig+-- | V1ClientIPConfig+-- ClientIPConfig represents the configurations of Client IP based session affinity.+data V1ClientIPConfig = V1ClientIPConfig+ { v1ClientIPConfigTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ClientIPConfig+instance A.FromJSON V1ClientIPConfig where+ parseJSON = A.withObject "V1ClientIPConfig" $ \o ->+ V1ClientIPConfig+ <$> (o .:? "timeoutSeconds")++-- | ToJSON V1ClientIPConfig+instance A.ToJSON V1ClientIPConfig where+ toJSON V1ClientIPConfig {..} =+ _omitNulls+ [ "timeoutSeconds" .= v1ClientIPConfigTimeoutSeconds+ ]+++-- | Construct a value of type 'V1ClientIPConfig' (by applying it's required fields, if any)+mkV1ClientIPConfig+ :: V1ClientIPConfig+mkV1ClientIPConfig =+ V1ClientIPConfig+ { v1ClientIPConfigTimeoutSeconds = Nothing+ }++-- ** V1ClusterRole+-- | V1ClusterRole+-- ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.+data V1ClusterRole = V1ClusterRole+ { v1ClusterRoleAggregationRule :: !(Maybe V1AggregationRule) -- ^ "aggregationRule"+ , v1ClusterRoleApiVersion :: !(Maybe Text) -- ^ "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+ , v1ClusterRoleKind :: !(Maybe Text) -- ^ "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+ , v1ClusterRoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ClusterRoleRules :: !(Maybe [V1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this ClusterRole+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ClusterRole+instance A.FromJSON V1ClusterRole where+ parseJSON = A.withObject "V1ClusterRole" $ \o ->+ V1ClusterRole+ <$> (o .:? "aggregationRule")+ <*> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "rules")++-- | ToJSON V1ClusterRole+instance A.ToJSON V1ClusterRole where+ toJSON V1ClusterRole {..} =+ _omitNulls+ [ "aggregationRule" .= v1ClusterRoleAggregationRule+ , "apiVersion" .= v1ClusterRoleApiVersion+ , "kind" .= v1ClusterRoleKind+ , "metadata" .= v1ClusterRoleMetadata+ , "rules" .= v1ClusterRoleRules+ ]+++-- | Construct a value of type 'V1ClusterRole' (by applying it's required fields, if any)+mkV1ClusterRole+ :: V1ClusterRole+mkV1ClusterRole =+ V1ClusterRole+ { v1ClusterRoleAggregationRule = Nothing+ , v1ClusterRoleApiVersion = Nothing+ , v1ClusterRoleKind = Nothing+ , v1ClusterRoleMetadata = Nothing+ , v1ClusterRoleRules = Nothing+ }++-- ** V1ClusterRoleBinding+-- | V1ClusterRoleBinding+-- ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.+data V1ClusterRoleBinding = V1ClusterRoleBinding+ { v1ClusterRoleBindingApiVersion :: !(Maybe Text) -- ^ "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+ , v1ClusterRoleBindingKind :: !(Maybe Text) -- ^ "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+ , v1ClusterRoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ClusterRoleBindingRoleRef :: !(V1RoleRef) -- ^ /Required/ "roleRef"+ , v1ClusterRoleBindingSubjects :: !(Maybe [RbacV1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ClusterRoleBinding+instance A.FromJSON V1ClusterRoleBinding where+ parseJSON = A.withObject "V1ClusterRoleBinding" $ \o ->+ V1ClusterRoleBinding+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "roleRef")+ <*> (o .:? "subjects")++-- | ToJSON V1ClusterRoleBinding+instance A.ToJSON V1ClusterRoleBinding where+ toJSON V1ClusterRoleBinding {..} =+ _omitNulls+ [ "apiVersion" .= v1ClusterRoleBindingApiVersion+ , "kind" .= v1ClusterRoleBindingKind+ , "metadata" .= v1ClusterRoleBindingMetadata+ , "roleRef" .= v1ClusterRoleBindingRoleRef+ , "subjects" .= v1ClusterRoleBindingSubjects+ ]+++-- | Construct a value of type 'V1ClusterRoleBinding' (by applying it's required fields, if any)+mkV1ClusterRoleBinding+ :: V1RoleRef -- ^ 'v1ClusterRoleBindingRoleRef' + -> V1ClusterRoleBinding+mkV1ClusterRoleBinding v1ClusterRoleBindingRoleRef =+ V1ClusterRoleBinding+ { v1ClusterRoleBindingApiVersion = Nothing+ , v1ClusterRoleBindingKind = Nothing+ , v1ClusterRoleBindingMetadata = Nothing+ , v1ClusterRoleBindingRoleRef+ , v1ClusterRoleBindingSubjects = Nothing+ }++-- ** V1ClusterRoleBindingList+-- | V1ClusterRoleBindingList+-- ClusterRoleBindingList is a collection of ClusterRoleBindings+data V1ClusterRoleBindingList = V1ClusterRoleBindingList+ { v1ClusterRoleBindingListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ClusterRoleBindingListItems :: !([V1ClusterRoleBinding]) -- ^ /Required/ "items" - Items is a list of ClusterRoleBindings+ , v1ClusterRoleBindingListKind :: !(Maybe Text) -- ^ "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+ , v1ClusterRoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ClusterRoleBindingList+instance A.FromJSON V1ClusterRoleBindingList where+ parseJSON = A.withObject "V1ClusterRoleBindingList" $ \o ->+ V1ClusterRoleBindingList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ClusterRoleBindingList+instance A.ToJSON V1ClusterRoleBindingList where+ toJSON V1ClusterRoleBindingList {..} =+ _omitNulls+ [ "apiVersion" .= v1ClusterRoleBindingListApiVersion+ , "items" .= v1ClusterRoleBindingListItems+ , "kind" .= v1ClusterRoleBindingListKind+ , "metadata" .= v1ClusterRoleBindingListMetadata+ ]+++-- | Construct a value of type 'V1ClusterRoleBindingList' (by applying it's required fields, if any)+mkV1ClusterRoleBindingList+ :: [V1ClusterRoleBinding] -- ^ 'v1ClusterRoleBindingListItems': Items is a list of ClusterRoleBindings+ -> V1ClusterRoleBindingList+mkV1ClusterRoleBindingList v1ClusterRoleBindingListItems =+ V1ClusterRoleBindingList+ { v1ClusterRoleBindingListApiVersion = Nothing+ , v1ClusterRoleBindingListItems+ , v1ClusterRoleBindingListKind = Nothing+ , v1ClusterRoleBindingListMetadata = Nothing+ }++-- ** V1ClusterRoleList+-- | V1ClusterRoleList+-- ClusterRoleList is a collection of ClusterRoles+data V1ClusterRoleList = V1ClusterRoleList+ { v1ClusterRoleListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ClusterRoleListItems :: !([V1ClusterRole]) -- ^ /Required/ "items" - Items is a list of ClusterRoles+ , v1ClusterRoleListKind :: !(Maybe Text) -- ^ "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+ , v1ClusterRoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ClusterRoleList+instance A.FromJSON V1ClusterRoleList where+ parseJSON = A.withObject "V1ClusterRoleList" $ \o ->+ V1ClusterRoleList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ClusterRoleList+instance A.ToJSON V1ClusterRoleList where+ toJSON V1ClusterRoleList {..} =+ _omitNulls+ [ "apiVersion" .= v1ClusterRoleListApiVersion+ , "items" .= v1ClusterRoleListItems+ , "kind" .= v1ClusterRoleListKind+ , "metadata" .= v1ClusterRoleListMetadata+ ]+++-- | Construct a value of type 'V1ClusterRoleList' (by applying it's required fields, if any)+mkV1ClusterRoleList+ :: [V1ClusterRole] -- ^ 'v1ClusterRoleListItems': Items is a list of ClusterRoles+ -> V1ClusterRoleList+mkV1ClusterRoleList v1ClusterRoleListItems =+ V1ClusterRoleList+ { v1ClusterRoleListApiVersion = Nothing+ , v1ClusterRoleListItems+ , v1ClusterRoleListKind = Nothing+ , v1ClusterRoleListMetadata = Nothing+ }++-- ** V1ClusterTrustBundleProjection+-- | V1ClusterTrustBundleProjection+-- ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.+data V1ClusterTrustBundleProjection = V1ClusterTrustBundleProjection+ { v1ClusterTrustBundleProjectionLabelSelector :: !(Maybe V1LabelSelector) -- ^ "labelSelector"+ , v1ClusterTrustBundleProjectionName :: !(Maybe Text) -- ^ "name" - Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.+ , v1ClusterTrustBundleProjectionOptional :: !(Maybe Bool) -- ^ "optional" - If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.+ , v1ClusterTrustBundleProjectionPath :: !(Text) -- ^ /Required/ "path" - Relative path from the volume root to write the bundle.+ , v1ClusterTrustBundleProjectionSignerName :: !(Maybe Text) -- ^ "signerName" - Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ClusterTrustBundleProjection+instance A.FromJSON V1ClusterTrustBundleProjection where+ parseJSON = A.withObject "V1ClusterTrustBundleProjection" $ \o ->+ V1ClusterTrustBundleProjection+ <$> (o .:? "labelSelector")+ <*> (o .:? "name")+ <*> (o .:? "optional")+ <*> (o .: "path")+ <*> (o .:? "signerName")++-- | ToJSON V1ClusterTrustBundleProjection+instance A.ToJSON V1ClusterTrustBundleProjection where+ toJSON V1ClusterTrustBundleProjection {..} =+ _omitNulls+ [ "labelSelector" .= v1ClusterTrustBundleProjectionLabelSelector+ , "name" .= v1ClusterTrustBundleProjectionName+ , "optional" .= v1ClusterTrustBundleProjectionOptional+ , "path" .= v1ClusterTrustBundleProjectionPath+ , "signerName" .= v1ClusterTrustBundleProjectionSignerName+ ]+++-- | Construct a value of type 'V1ClusterTrustBundleProjection' (by applying it's required fields, if any)+mkV1ClusterTrustBundleProjection+ :: Text -- ^ 'v1ClusterTrustBundleProjectionPath': Relative path from the volume root to write the bundle.+ -> V1ClusterTrustBundleProjection+mkV1ClusterTrustBundleProjection v1ClusterTrustBundleProjectionPath =+ V1ClusterTrustBundleProjection+ { v1ClusterTrustBundleProjectionLabelSelector = Nothing+ , v1ClusterTrustBundleProjectionName = Nothing+ , v1ClusterTrustBundleProjectionOptional = Nothing+ , v1ClusterTrustBundleProjectionPath+ , v1ClusterTrustBundleProjectionSignerName = Nothing+ }++-- ** V1ComponentCondition+-- | V1ComponentCondition+-- Information about the condition of a component.+data V1ComponentCondition = V1ComponentCondition+ { v1ComponentConditionError :: !(Maybe Text) -- ^ "error" - Condition error code for a component. For example, a health check error code.+ , v1ComponentConditionMessage :: !(Maybe Text) -- ^ "message" - Message about the condition for a component. For example, information about a health check.+ , v1ComponentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".+ , v1ComponentConditionType :: !(Text) -- ^ /Required/ "type" - Type of condition for a component. Valid value: \"Healthy\"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ComponentCondition+instance A.FromJSON V1ComponentCondition where+ parseJSON = A.withObject "V1ComponentCondition" $ \o ->+ V1ComponentCondition+ <$> (o .:? "error")+ <*> (o .:? "message")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1ComponentCondition+instance A.ToJSON V1ComponentCondition where+ toJSON V1ComponentCondition {..} =+ _omitNulls+ [ "error" .= v1ComponentConditionError+ , "message" .= v1ComponentConditionMessage+ , "status" .= v1ComponentConditionStatus+ , "type" .= v1ComponentConditionType+ ]+++-- | Construct a value of type 'V1ComponentCondition' (by applying it's required fields, if any)+mkV1ComponentCondition+ :: Text -- ^ 'v1ComponentConditionStatus': Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".+ -> Text -- ^ 'v1ComponentConditionType': Type of condition for a component. Valid value: \"Healthy\"+ -> V1ComponentCondition+mkV1ComponentCondition v1ComponentConditionStatus v1ComponentConditionType =+ V1ComponentCondition+ { v1ComponentConditionError = Nothing+ , v1ComponentConditionMessage = Nothing+ , v1ComponentConditionStatus+ , v1ComponentConditionType+ }++-- ** V1ComponentStatus+-- | V1ComponentStatus+-- ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19++data V1ComponentStatus = V1ComponentStatus+ { v1ComponentStatusApiVersion :: !(Maybe Text) -- ^ "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+ , v1ComponentStatusConditions :: !(Maybe [V1ComponentCondition]) -- ^ "conditions" - List of component conditions observed+ , v1ComponentStatusKind :: !(Maybe Text) -- ^ "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+ , v1ComponentStatusMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ComponentStatus+instance A.FromJSON V1ComponentStatus where+ parseJSON = A.withObject "V1ComponentStatus" $ \o ->+ V1ComponentStatus+ <$> (o .:? "apiVersion")+ <*> (o .:? "conditions")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ComponentStatus+instance A.ToJSON V1ComponentStatus where+ toJSON V1ComponentStatus {..} =+ _omitNulls+ [ "apiVersion" .= v1ComponentStatusApiVersion+ , "conditions" .= v1ComponentStatusConditions+ , "kind" .= v1ComponentStatusKind+ , "metadata" .= v1ComponentStatusMetadata+ ]+++-- | Construct a value of type 'V1ComponentStatus' (by applying it's required fields, if any)+mkV1ComponentStatus+ :: V1ComponentStatus+mkV1ComponentStatus =+ V1ComponentStatus+ { v1ComponentStatusApiVersion = Nothing+ , v1ComponentStatusConditions = Nothing+ , v1ComponentStatusKind = Nothing+ , v1ComponentStatusMetadata = Nothing+ }++-- ** V1ComponentStatusList+-- | V1ComponentStatusList+-- Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19++data V1ComponentStatusList = V1ComponentStatusList+ { v1ComponentStatusListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ComponentStatusListItems :: !([V1ComponentStatus]) -- ^ /Required/ "items" - List of ComponentStatus objects.+ , v1ComponentStatusListKind :: !(Maybe Text) -- ^ "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+ , v1ComponentStatusListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ComponentStatusList+instance A.FromJSON V1ComponentStatusList where+ parseJSON = A.withObject "V1ComponentStatusList" $ \o ->+ V1ComponentStatusList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ComponentStatusList+instance A.ToJSON V1ComponentStatusList where+ toJSON V1ComponentStatusList {..} =+ _omitNulls+ [ "apiVersion" .= v1ComponentStatusListApiVersion+ , "items" .= v1ComponentStatusListItems+ , "kind" .= v1ComponentStatusListKind+ , "metadata" .= v1ComponentStatusListMetadata+ ]+++-- | Construct a value of type 'V1ComponentStatusList' (by applying it's required fields, if any)+mkV1ComponentStatusList+ :: [V1ComponentStatus] -- ^ 'v1ComponentStatusListItems': List of ComponentStatus objects.+ -> V1ComponentStatusList+mkV1ComponentStatusList v1ComponentStatusListItems =+ V1ComponentStatusList+ { v1ComponentStatusListApiVersion = Nothing+ , v1ComponentStatusListItems+ , v1ComponentStatusListKind = Nothing+ , v1ComponentStatusListMetadata = Nothing+ }++-- ** V1Condition+-- | V1Condition+-- Condition contains details for one aspect of the current state of this API Resource.+data V1Condition = V1Condition+ { v1ConditionLastTransitionTime :: !(DateTime) -- ^ /Required/ "lastTransitionTime" - lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.+ , v1ConditionMessage :: !(Text) -- ^ /Required/ "message" - message is a human readable message indicating details about the transition. This may be an empty string.+ , v1ConditionObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.+ , v1ConditionReason :: !(Text) -- ^ /Required/ "reason" - reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.+ , v1ConditionStatus :: !(Text) -- ^ /Required/ "status" - status of the condition, one of True, False, Unknown.+ , v1ConditionType :: !(Text) -- ^ /Required/ "type" - type of condition in CamelCase or in foo.example.com/CamelCase.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Condition+instance A.FromJSON V1Condition where+ parseJSON = A.withObject "V1Condition" $ \o ->+ V1Condition+ <$> (o .: "lastTransitionTime")+ <*> (o .: "message")+ <*> (o .:? "observedGeneration")+ <*> (o .: "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1Condition+instance A.ToJSON V1Condition where+ toJSON V1Condition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1ConditionLastTransitionTime+ , "message" .= v1ConditionMessage+ , "observedGeneration" .= v1ConditionObservedGeneration+ , "reason" .= v1ConditionReason+ , "status" .= v1ConditionStatus+ , "type" .= v1ConditionType+ ]+++-- | Construct a value of type 'V1Condition' (by applying it's required fields, if any)+mkV1Condition+ :: DateTime -- ^ 'v1ConditionLastTransitionTime': lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.+ -> Text -- ^ 'v1ConditionMessage': message is a human readable message indicating details about the transition. This may be an empty string.+ -> Text -- ^ 'v1ConditionReason': reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.+ -> Text -- ^ 'v1ConditionStatus': status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1ConditionType': type of condition in CamelCase or in foo.example.com/CamelCase.+ -> V1Condition+mkV1Condition v1ConditionLastTransitionTime v1ConditionMessage v1ConditionReason v1ConditionStatus v1ConditionType =+ V1Condition+ { v1ConditionLastTransitionTime+ , v1ConditionMessage+ , v1ConditionObservedGeneration = Nothing+ , v1ConditionReason+ , v1ConditionStatus+ , v1ConditionType+ }++-- ** V1ConfigMap+-- | V1ConfigMap+-- ConfigMap holds configuration data for pods to consume.+data V1ConfigMap = V1ConfigMap+ { v1ConfigMapApiVersion :: !(Maybe Text) -- ^ "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+ , v1ConfigMapBinaryData :: !(Maybe (Map.Map String ByteArray)) -- ^ "binaryData" - BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.+ , v1ConfigMapData :: !(Maybe (Map.Map String Text)) -- ^ "data" - Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.+ , v1ConfigMapImmutable :: !(Maybe Bool) -- ^ "immutable" - Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.+ , v1ConfigMapKind :: !(Maybe Text) -- ^ "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+ , v1ConfigMapMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ConfigMap+instance A.FromJSON V1ConfigMap where+ parseJSON = A.withObject "V1ConfigMap" $ \o ->+ V1ConfigMap+ <$> (o .:? "apiVersion")+ <*> (o .:? "binaryData")+ <*> (o .:? "data")+ <*> (o .:? "immutable")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ConfigMap+instance A.ToJSON V1ConfigMap where+ toJSON V1ConfigMap {..} =+ _omitNulls+ [ "apiVersion" .= v1ConfigMapApiVersion+ , "binaryData" .= v1ConfigMapBinaryData+ , "data" .= v1ConfigMapData+ , "immutable" .= v1ConfigMapImmutable+ , "kind" .= v1ConfigMapKind+ , "metadata" .= v1ConfigMapMetadata+ ]+++-- | Construct a value of type 'V1ConfigMap' (by applying it's required fields, if any)+mkV1ConfigMap+ :: V1ConfigMap+mkV1ConfigMap =+ V1ConfigMap+ { v1ConfigMapApiVersion = Nothing+ , v1ConfigMapBinaryData = Nothing+ , v1ConfigMapData = Nothing+ , v1ConfigMapImmutable = Nothing+ , v1ConfigMapKind = Nothing+ , v1ConfigMapMetadata = Nothing+ }++-- ** V1ConfigMapEnvSource+-- | V1ConfigMapEnvSource+-- ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.+data V1ConfigMapEnvSource = V1ConfigMapEnvSource+ { v1ConfigMapEnvSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ , v1ConfigMapEnvSourceOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the ConfigMap must be defined+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ConfigMapEnvSource+instance A.FromJSON V1ConfigMapEnvSource where+ parseJSON = A.withObject "V1ConfigMapEnvSource" $ \o ->+ V1ConfigMapEnvSource+ <$> (o .:? "name")+ <*> (o .:? "optional")++-- | ToJSON V1ConfigMapEnvSource+instance A.ToJSON V1ConfigMapEnvSource where+ toJSON V1ConfigMapEnvSource {..} =+ _omitNulls+ [ "name" .= v1ConfigMapEnvSourceName+ , "optional" .= v1ConfigMapEnvSourceOptional+ ]+++-- | Construct a value of type 'V1ConfigMapEnvSource' (by applying it's required fields, if any)+mkV1ConfigMapEnvSource+ :: V1ConfigMapEnvSource+mkV1ConfigMapEnvSource =+ V1ConfigMapEnvSource+ { v1ConfigMapEnvSourceName = Nothing+ , v1ConfigMapEnvSourceOptional = Nothing+ }++-- ** V1ConfigMapKeySelector+-- | V1ConfigMapKeySelector+-- Selects a key from a ConfigMap.+data V1ConfigMapKeySelector = V1ConfigMapKeySelector+ { v1ConfigMapKeySelectorKey :: !(Text) -- ^ /Required/ "key" - The key to select.+ , v1ConfigMapKeySelectorName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ , v1ConfigMapKeySelectorOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the ConfigMap or its key must be defined+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ConfigMapKeySelector+instance A.FromJSON V1ConfigMapKeySelector where+ parseJSON = A.withObject "V1ConfigMapKeySelector" $ \o ->+ V1ConfigMapKeySelector+ <$> (o .: "key")+ <*> (o .:? "name")+ <*> (o .:? "optional")++-- | ToJSON V1ConfigMapKeySelector+instance A.ToJSON V1ConfigMapKeySelector where+ toJSON V1ConfigMapKeySelector {..} =+ _omitNulls+ [ "key" .= v1ConfigMapKeySelectorKey+ , "name" .= v1ConfigMapKeySelectorName+ , "optional" .= v1ConfigMapKeySelectorOptional+ ]+++-- | Construct a value of type 'V1ConfigMapKeySelector' (by applying it's required fields, if any)+mkV1ConfigMapKeySelector+ :: Text -- ^ 'v1ConfigMapKeySelectorKey': The key to select.+ -> V1ConfigMapKeySelector+mkV1ConfigMapKeySelector v1ConfigMapKeySelectorKey =+ V1ConfigMapKeySelector+ { v1ConfigMapKeySelectorKey+ , v1ConfigMapKeySelectorName = Nothing+ , v1ConfigMapKeySelectorOptional = Nothing+ }++-- ** V1ConfigMapList+-- | V1ConfigMapList+-- ConfigMapList is a resource containing a list of ConfigMap objects.+data V1ConfigMapList = V1ConfigMapList+ { v1ConfigMapListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ConfigMapListItems :: !([V1ConfigMap]) -- ^ /Required/ "items" - Items is the list of ConfigMaps.+ , v1ConfigMapListKind :: !(Maybe Text) -- ^ "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+ , v1ConfigMapListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ConfigMapList+instance A.FromJSON V1ConfigMapList where+ parseJSON = A.withObject "V1ConfigMapList" $ \o ->+ V1ConfigMapList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ConfigMapList+instance A.ToJSON V1ConfigMapList where+ toJSON V1ConfigMapList {..} =+ _omitNulls+ [ "apiVersion" .= v1ConfigMapListApiVersion+ , "items" .= v1ConfigMapListItems+ , "kind" .= v1ConfigMapListKind+ , "metadata" .= v1ConfigMapListMetadata+ ]+++-- | Construct a value of type 'V1ConfigMapList' (by applying it's required fields, if any)+mkV1ConfigMapList+ :: [V1ConfigMap] -- ^ 'v1ConfigMapListItems': Items is the list of ConfigMaps.+ -> V1ConfigMapList+mkV1ConfigMapList v1ConfigMapListItems =+ V1ConfigMapList+ { v1ConfigMapListApiVersion = Nothing+ , v1ConfigMapListItems+ , v1ConfigMapListKind = Nothing+ , v1ConfigMapListMetadata = Nothing+ }++-- ** V1ConfigMapNodeConfigSource+-- | V1ConfigMapNodeConfigSource+-- ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration+data V1ConfigMapNodeConfigSource = V1ConfigMapNodeConfigSource+ { v1ConfigMapNodeConfigSourceKubeletConfigKey :: !(Text) -- ^ /Required/ "kubeletConfigKey" - KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.+ , v1ConfigMapNodeConfigSourceName :: !(Text) -- ^ /Required/ "name" - Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.+ , v1ConfigMapNodeConfigSourceNamespace :: !(Text) -- ^ /Required/ "namespace" - Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.+ , v1ConfigMapNodeConfigSourceResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.+ , v1ConfigMapNodeConfigSourceUid :: !(Maybe Text) -- ^ "uid" - UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ConfigMapNodeConfigSource+instance A.FromJSON V1ConfigMapNodeConfigSource where+ parseJSON = A.withObject "V1ConfigMapNodeConfigSource" $ \o ->+ V1ConfigMapNodeConfigSource+ <$> (o .: "kubeletConfigKey")+ <*> (o .: "name")+ <*> (o .: "namespace")+ <*> (o .:? "resourceVersion")+ <*> (o .:? "uid")++-- | ToJSON V1ConfigMapNodeConfigSource+instance A.ToJSON V1ConfigMapNodeConfigSource where+ toJSON V1ConfigMapNodeConfigSource {..} =+ _omitNulls+ [ "kubeletConfigKey" .= v1ConfigMapNodeConfigSourceKubeletConfigKey+ , "name" .= v1ConfigMapNodeConfigSourceName+ , "namespace" .= v1ConfigMapNodeConfigSourceNamespace+ , "resourceVersion" .= v1ConfigMapNodeConfigSourceResourceVersion+ , "uid" .= v1ConfigMapNodeConfigSourceUid+ ]+++-- | Construct a value of type 'V1ConfigMapNodeConfigSource' (by applying it's required fields, if any)+mkV1ConfigMapNodeConfigSource+ :: Text -- ^ 'v1ConfigMapNodeConfigSourceKubeletConfigKey': KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.+ -> Text -- ^ 'v1ConfigMapNodeConfigSourceName': Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.+ -> Text -- ^ 'v1ConfigMapNodeConfigSourceNamespace': Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.+ -> V1ConfigMapNodeConfigSource+mkV1ConfigMapNodeConfigSource v1ConfigMapNodeConfigSourceKubeletConfigKey v1ConfigMapNodeConfigSourceName v1ConfigMapNodeConfigSourceNamespace =+ V1ConfigMapNodeConfigSource+ { v1ConfigMapNodeConfigSourceKubeletConfigKey+ , v1ConfigMapNodeConfigSourceName+ , v1ConfigMapNodeConfigSourceNamespace+ , v1ConfigMapNodeConfigSourceResourceVersion = Nothing+ , v1ConfigMapNodeConfigSourceUid = Nothing+ }++-- ** V1ConfigMapProjection+-- | V1ConfigMapProjection+-- Adapts a ConfigMap into a projected volume. The contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.+data V1ConfigMapProjection = V1ConfigMapProjection+ { v1ConfigMapProjectionItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.+ , v1ConfigMapProjectionName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ , v1ConfigMapProjectionOptional :: !(Maybe Bool) -- ^ "optional" - optional specify whether the ConfigMap or its keys must be defined+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ConfigMapProjection+instance A.FromJSON V1ConfigMapProjection where+ parseJSON = A.withObject "V1ConfigMapProjection" $ \o ->+ V1ConfigMapProjection+ <$> (o .:? "items")+ <*> (o .:? "name")+ <*> (o .:? "optional")++-- | ToJSON V1ConfigMapProjection+instance A.ToJSON V1ConfigMapProjection where+ toJSON V1ConfigMapProjection {..} =+ _omitNulls+ [ "items" .= v1ConfigMapProjectionItems+ , "name" .= v1ConfigMapProjectionName+ , "optional" .= v1ConfigMapProjectionOptional+ ]+++-- | Construct a value of type 'V1ConfigMapProjection' (by applying it's required fields, if any)+mkV1ConfigMapProjection+ :: V1ConfigMapProjection+mkV1ConfigMapProjection =+ V1ConfigMapProjection+ { v1ConfigMapProjectionItems = Nothing+ , v1ConfigMapProjectionName = Nothing+ , v1ConfigMapProjectionOptional = Nothing+ }++-- ** V1ConfigMapVolumeSource+-- | V1ConfigMapVolumeSource+-- Adapts a ConfigMap into a volume. The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.+data V1ConfigMapVolumeSource = V1ConfigMapVolumeSource+ { v1ConfigMapVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.+ , v1ConfigMapVolumeSourceItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.+ , v1ConfigMapVolumeSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ , v1ConfigMapVolumeSourceOptional :: !(Maybe Bool) -- ^ "optional" - optional specify whether the ConfigMap or its keys must be defined+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ConfigMapVolumeSource+instance A.FromJSON V1ConfigMapVolumeSource where+ parseJSON = A.withObject "V1ConfigMapVolumeSource" $ \o ->+ V1ConfigMapVolumeSource+ <$> (o .:? "defaultMode")+ <*> (o .:? "items")+ <*> (o .:? "name")+ <*> (o .:? "optional")++-- | ToJSON V1ConfigMapVolumeSource+instance A.ToJSON V1ConfigMapVolumeSource where+ toJSON V1ConfigMapVolumeSource {..} =+ _omitNulls+ [ "defaultMode" .= v1ConfigMapVolumeSourceDefaultMode+ , "items" .= v1ConfigMapVolumeSourceItems+ , "name" .= v1ConfigMapVolumeSourceName+ , "optional" .= v1ConfigMapVolumeSourceOptional+ ]+++-- | Construct a value of type 'V1ConfigMapVolumeSource' (by applying it's required fields, if any)+mkV1ConfigMapVolumeSource+ :: V1ConfigMapVolumeSource+mkV1ConfigMapVolumeSource =+ V1ConfigMapVolumeSource+ { v1ConfigMapVolumeSourceDefaultMode = Nothing+ , v1ConfigMapVolumeSourceItems = Nothing+ , v1ConfigMapVolumeSourceName = Nothing+ , v1ConfigMapVolumeSourceOptional = Nothing+ }++-- ** V1Container+-- | V1Container+-- A single application container that you want to run within a pod.+data V1Container = V1Container+ { v1ContainerArgs :: !(Maybe [Text]) -- ^ "args" - Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell+ , v1ContainerCommand :: !(Maybe [Text]) -- ^ "command" - Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell+ , v1ContainerEnv :: !(Maybe [V1EnvVar]) -- ^ "env" - List of environment variables to set in the container. Cannot be updated.+ , v1ContainerEnvFrom :: !(Maybe [V1EnvFromSource]) -- ^ "envFrom" - List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.+ , v1ContainerImage :: !(Maybe Text) -- ^ "image" - Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.+ , v1ContainerImagePullPolicy :: !(Maybe Text) -- ^ "imagePullPolicy" - Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images+ , v1ContainerLifecycle :: !(Maybe V1Lifecycle) -- ^ "lifecycle"+ , v1ContainerLivenessProbe :: !(Maybe V1Probe) -- ^ "livenessProbe"+ , v1ContainerName :: !(Text) -- ^ /Required/ "name" - Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.+ , v1ContainerPorts :: !(Maybe [V1ContainerPort]) -- ^ "ports" - List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.+ , v1ContainerReadinessProbe :: !(Maybe V1Probe) -- ^ "readinessProbe"+ , v1ContainerResizePolicy :: !(Maybe [V1ContainerResizePolicy]) -- ^ "resizePolicy" - Resources resize policy for the container. This field cannot be set on ephemeral containers.+ , v1ContainerResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"+ , v1ContainerRestartPolicy :: !(Maybe Text) -- ^ "restartPolicy" - RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.+ , v1ContainerRestartPolicyRules :: !(Maybe [V1ContainerRestartRule]) -- ^ "restartPolicyRules" - Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.+ , v1ContainerSecurityContext :: !(Maybe V1SecurityContext) -- ^ "securityContext"+ , v1ContainerStartupProbe :: !(Maybe V1Probe) -- ^ "startupProbe"+ , v1ContainerStdin :: !(Maybe Bool) -- ^ "stdin" - Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.+ , v1ContainerStdinOnce :: !(Maybe Bool) -- ^ "stdinOnce" - Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false+ , v1ContainerTerminationMessagePath :: !(Maybe Text) -- ^ "terminationMessagePath" - Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.+ , v1ContainerTerminationMessagePolicy :: !(Maybe Text) -- ^ "terminationMessagePolicy" - Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.+ , v1ContainerTty :: !(Maybe Bool) -- ^ "tty" - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.+ , v1ContainerVolumeDevices :: !(Maybe [V1VolumeDevice]) -- ^ "volumeDevices" - volumeDevices is the list of block devices to be used by the container.+ , v1ContainerVolumeMounts :: !(Maybe [V1VolumeMount]) -- ^ "volumeMounts" - Pod volumes to mount into the container's filesystem. Cannot be updated.+ , v1ContainerWorkingDir :: !(Maybe Text) -- ^ "workingDir" - Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Container+instance A.FromJSON V1Container where+ parseJSON = A.withObject "V1Container" $ \o ->+ V1Container+ <$> (o .:? "args")+ <*> (o .:? "command")+ <*> (o .:? "env")+ <*> (o .:? "envFrom")+ <*> (o .:? "image")+ <*> (o .:? "imagePullPolicy")+ <*> (o .:? "lifecycle")+ <*> (o .:? "livenessProbe")+ <*> (o .: "name")+ <*> (o .:? "ports")+ <*> (o .:? "readinessProbe")+ <*> (o .:? "resizePolicy")+ <*> (o .:? "resources")+ <*> (o .:? "restartPolicy")+ <*> (o .:? "restartPolicyRules")+ <*> (o .:? "securityContext")+ <*> (o .:? "startupProbe")+ <*> (o .:? "stdin")+ <*> (o .:? "stdinOnce")+ <*> (o .:? "terminationMessagePath")+ <*> (o .:? "terminationMessagePolicy")+ <*> (o .:? "tty")+ <*> (o .:? "volumeDevices")+ <*> (o .:? "volumeMounts")+ <*> (o .:? "workingDir")++-- | ToJSON V1Container+instance A.ToJSON V1Container where+ toJSON V1Container {..} =+ _omitNulls+ [ "args" .= v1ContainerArgs+ , "command" .= v1ContainerCommand+ , "env" .= v1ContainerEnv+ , "envFrom" .= v1ContainerEnvFrom+ , "image" .= v1ContainerImage+ , "imagePullPolicy" .= v1ContainerImagePullPolicy+ , "lifecycle" .= v1ContainerLifecycle+ , "livenessProbe" .= v1ContainerLivenessProbe+ , "name" .= v1ContainerName+ , "ports" .= v1ContainerPorts+ , "readinessProbe" .= v1ContainerReadinessProbe+ , "resizePolicy" .= v1ContainerResizePolicy+ , "resources" .= v1ContainerResources+ , "restartPolicy" .= v1ContainerRestartPolicy+ , "restartPolicyRules" .= v1ContainerRestartPolicyRules+ , "securityContext" .= v1ContainerSecurityContext+ , "startupProbe" .= v1ContainerStartupProbe+ , "stdin" .= v1ContainerStdin+ , "stdinOnce" .= v1ContainerStdinOnce+ , "terminationMessagePath" .= v1ContainerTerminationMessagePath+ , "terminationMessagePolicy" .= v1ContainerTerminationMessagePolicy+ , "tty" .= v1ContainerTty+ , "volumeDevices" .= v1ContainerVolumeDevices+ , "volumeMounts" .= v1ContainerVolumeMounts+ , "workingDir" .= v1ContainerWorkingDir+ ]+++-- | Construct a value of type 'V1Container' (by applying it's required fields, if any)+mkV1Container+ :: Text -- ^ 'v1ContainerName': Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.+ -> V1Container+mkV1Container v1ContainerName =+ V1Container+ { v1ContainerArgs = Nothing+ , v1ContainerCommand = Nothing+ , v1ContainerEnv = Nothing+ , v1ContainerEnvFrom = Nothing+ , v1ContainerImage = Nothing+ , v1ContainerImagePullPolicy = Nothing+ , v1ContainerLifecycle = Nothing+ , v1ContainerLivenessProbe = Nothing+ , v1ContainerName+ , v1ContainerPorts = Nothing+ , v1ContainerReadinessProbe = Nothing+ , v1ContainerResizePolicy = Nothing+ , v1ContainerResources = Nothing+ , v1ContainerRestartPolicy = Nothing+ , v1ContainerRestartPolicyRules = Nothing+ , v1ContainerSecurityContext = Nothing+ , v1ContainerStartupProbe = Nothing+ , v1ContainerStdin = Nothing+ , v1ContainerStdinOnce = Nothing+ , v1ContainerTerminationMessagePath = Nothing+ , v1ContainerTerminationMessagePolicy = Nothing+ , v1ContainerTty = Nothing+ , v1ContainerVolumeDevices = Nothing+ , v1ContainerVolumeMounts = Nothing+ , v1ContainerWorkingDir = Nothing+ }++-- ** V1ContainerExtendedResourceRequest+-- | V1ContainerExtendedResourceRequest+-- ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name.+data V1ContainerExtendedResourceRequest = V1ContainerExtendedResourceRequest+ { v1ContainerExtendedResourceRequestContainerName :: !(Text) -- ^ /Required/ "containerName" - The name of the container requesting resources.+ , v1ContainerExtendedResourceRequestRequestName :: !(Text) -- ^ /Required/ "requestName" - The name of the request in the special ResourceClaim which corresponds to the extended resource.+ , v1ContainerExtendedResourceRequestResourceName :: !(Text) -- ^ /Required/ "resourceName" - The name of the extended resource in that container which gets backed by DRA.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerExtendedResourceRequest+instance A.FromJSON V1ContainerExtendedResourceRequest where+ parseJSON = A.withObject "V1ContainerExtendedResourceRequest" $ \o ->+ V1ContainerExtendedResourceRequest+ <$> (o .: "containerName")+ <*> (o .: "requestName")+ <*> (o .: "resourceName")++-- | ToJSON V1ContainerExtendedResourceRequest+instance A.ToJSON V1ContainerExtendedResourceRequest where+ toJSON V1ContainerExtendedResourceRequest {..} =+ _omitNulls+ [ "containerName" .= v1ContainerExtendedResourceRequestContainerName+ , "requestName" .= v1ContainerExtendedResourceRequestRequestName+ , "resourceName" .= v1ContainerExtendedResourceRequestResourceName+ ]+++-- | Construct a value of type 'V1ContainerExtendedResourceRequest' (by applying it's required fields, if any)+mkV1ContainerExtendedResourceRequest+ :: Text -- ^ 'v1ContainerExtendedResourceRequestContainerName': The name of the container requesting resources.+ -> Text -- ^ 'v1ContainerExtendedResourceRequestRequestName': The name of the request in the special ResourceClaim which corresponds to the extended resource.+ -> Text -- ^ 'v1ContainerExtendedResourceRequestResourceName': The name of the extended resource in that container which gets backed by DRA.+ -> V1ContainerExtendedResourceRequest+mkV1ContainerExtendedResourceRequest v1ContainerExtendedResourceRequestContainerName v1ContainerExtendedResourceRequestRequestName v1ContainerExtendedResourceRequestResourceName =+ V1ContainerExtendedResourceRequest+ { v1ContainerExtendedResourceRequestContainerName+ , v1ContainerExtendedResourceRequestRequestName+ , v1ContainerExtendedResourceRequestResourceName+ }++-- ** V1ContainerImage+-- | V1ContainerImage+-- Describe a container image+data V1ContainerImage = V1ContainerImage+ { v1ContainerImageNames :: !(Maybe [Text]) -- ^ "names" - Names by which this image is known. e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]+ , v1ContainerImageSizeBytes :: !(Maybe Integer) -- ^ "sizeBytes" - The size of the image in bytes.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerImage+instance A.FromJSON V1ContainerImage where+ parseJSON = A.withObject "V1ContainerImage" $ \o ->+ V1ContainerImage+ <$> (o .:? "names")+ <*> (o .:? "sizeBytes")++-- | ToJSON V1ContainerImage+instance A.ToJSON V1ContainerImage where+ toJSON V1ContainerImage {..} =+ _omitNulls+ [ "names" .= v1ContainerImageNames+ , "sizeBytes" .= v1ContainerImageSizeBytes+ ]+++-- | Construct a value of type 'V1ContainerImage' (by applying it's required fields, if any)+mkV1ContainerImage+ :: V1ContainerImage+mkV1ContainerImage =+ V1ContainerImage+ { v1ContainerImageNames = Nothing+ , v1ContainerImageSizeBytes = Nothing+ }++-- ** V1ContainerPort+-- | V1ContainerPort+-- ContainerPort represents a network port in a single container.+data V1ContainerPort = V1ContainerPort+ { v1ContainerPortContainerPort :: !(Int) -- ^ /Required/ "containerPort" - Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.+ , v1ContainerPortHostIp :: !(Maybe Text) -- ^ "hostIP" - What host IP to bind the external port to.+ , v1ContainerPortHostPort :: !(Maybe Int) -- ^ "hostPort" - Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.+ , v1ContainerPortName :: !(Maybe Text) -- ^ "name" - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.+ , v1ContainerPortProtocol :: !(Maybe Text) -- ^ "protocol" - Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerPort+instance A.FromJSON V1ContainerPort where+ parseJSON = A.withObject "V1ContainerPort" $ \o ->+ V1ContainerPort+ <$> (o .: "containerPort")+ <*> (o .:? "hostIP")+ <*> (o .:? "hostPort")+ <*> (o .:? "name")+ <*> (o .:? "protocol")++-- | ToJSON V1ContainerPort+instance A.ToJSON V1ContainerPort where+ toJSON V1ContainerPort {..} =+ _omitNulls+ [ "containerPort" .= v1ContainerPortContainerPort+ , "hostIP" .= v1ContainerPortHostIp+ , "hostPort" .= v1ContainerPortHostPort+ , "name" .= v1ContainerPortName+ , "protocol" .= v1ContainerPortProtocol+ ]+++-- | Construct a value of type 'V1ContainerPort' (by applying it's required fields, if any)+mkV1ContainerPort+ :: Int -- ^ 'v1ContainerPortContainerPort': Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.+ -> V1ContainerPort+mkV1ContainerPort v1ContainerPortContainerPort =+ V1ContainerPort+ { v1ContainerPortContainerPort+ , v1ContainerPortHostIp = Nothing+ , v1ContainerPortHostPort = Nothing+ , v1ContainerPortName = Nothing+ , v1ContainerPortProtocol = Nothing+ }++-- ** V1ContainerResizePolicy+-- | V1ContainerResizePolicy+-- ContainerResizePolicy represents resource resize policy for the container.+data V1ContainerResizePolicy = V1ContainerResizePolicy+ { v1ContainerResizePolicyResourceName :: !(Text) -- ^ /Required/ "resourceName" - Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.+ , v1ContainerResizePolicyRestartPolicy :: !(Text) -- ^ /Required/ "restartPolicy" - Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerResizePolicy+instance A.FromJSON V1ContainerResizePolicy where+ parseJSON = A.withObject "V1ContainerResizePolicy" $ \o ->+ V1ContainerResizePolicy+ <$> (o .: "resourceName")+ <*> (o .: "restartPolicy")++-- | ToJSON V1ContainerResizePolicy+instance A.ToJSON V1ContainerResizePolicy where+ toJSON V1ContainerResizePolicy {..} =+ _omitNulls+ [ "resourceName" .= v1ContainerResizePolicyResourceName+ , "restartPolicy" .= v1ContainerResizePolicyRestartPolicy+ ]+++-- | Construct a value of type 'V1ContainerResizePolicy' (by applying it's required fields, if any)+mkV1ContainerResizePolicy+ :: Text -- ^ 'v1ContainerResizePolicyResourceName': Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.+ -> Text -- ^ 'v1ContainerResizePolicyRestartPolicy': Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.+ -> V1ContainerResizePolicy+mkV1ContainerResizePolicy v1ContainerResizePolicyResourceName v1ContainerResizePolicyRestartPolicy =+ V1ContainerResizePolicy+ { v1ContainerResizePolicyResourceName+ , v1ContainerResizePolicyRestartPolicy+ }++-- ** V1ContainerRestartRule+-- | V1ContainerRestartRule+-- ContainerRestartRule describes how a container exit is handled.+data V1ContainerRestartRule = V1ContainerRestartRule+ { v1ContainerRestartRuleAction :: !(Text) -- ^ /Required/ "action" - Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is \"Restart\" to restart the container.+ , v1ContainerRestartRuleExitCodes :: !(Maybe V1ContainerRestartRuleOnExitCodes) -- ^ "exitCodes"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerRestartRule+instance A.FromJSON V1ContainerRestartRule where+ parseJSON = A.withObject "V1ContainerRestartRule" $ \o ->+ V1ContainerRestartRule+ <$> (o .: "action")+ <*> (o .:? "exitCodes")++-- | ToJSON V1ContainerRestartRule+instance A.ToJSON V1ContainerRestartRule where+ toJSON V1ContainerRestartRule {..} =+ _omitNulls+ [ "action" .= v1ContainerRestartRuleAction+ , "exitCodes" .= v1ContainerRestartRuleExitCodes+ ]+++-- | Construct a value of type 'V1ContainerRestartRule' (by applying it's required fields, if any)+mkV1ContainerRestartRule+ :: Text -- ^ 'v1ContainerRestartRuleAction': Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is \"Restart\" to restart the container.+ -> V1ContainerRestartRule+mkV1ContainerRestartRule v1ContainerRestartRuleAction =+ V1ContainerRestartRule+ { v1ContainerRestartRuleAction+ , v1ContainerRestartRuleExitCodes = Nothing+ }++-- ** V1ContainerRestartRuleOnExitCodes+-- | V1ContainerRestartRuleOnExitCodes+-- ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes.+data V1ContainerRestartRuleOnExitCodes = V1ContainerRestartRuleOnExitCodes+ { v1ContainerRestartRuleOnExitCodesOperator :: !(Text) -- ^ /Required/ "operator" - Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the set of specified values. - NotIn: the requirement is satisfied if the container exit code is not in the set of specified values.+ , v1ContainerRestartRuleOnExitCodesValues :: !(Maybe [Int]) -- ^ "values" - Specifies the set of values to check for container exit codes. At most 255 elements are allowed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerRestartRuleOnExitCodes+instance A.FromJSON V1ContainerRestartRuleOnExitCodes where+ parseJSON = A.withObject "V1ContainerRestartRuleOnExitCodes" $ \o ->+ V1ContainerRestartRuleOnExitCodes+ <$> (o .: "operator")+ <*> (o .:? "values")++-- | ToJSON V1ContainerRestartRuleOnExitCodes+instance A.ToJSON V1ContainerRestartRuleOnExitCodes where+ toJSON V1ContainerRestartRuleOnExitCodes {..} =+ _omitNulls+ [ "operator" .= v1ContainerRestartRuleOnExitCodesOperator+ , "values" .= v1ContainerRestartRuleOnExitCodesValues+ ]+++-- | Construct a value of type 'V1ContainerRestartRuleOnExitCodes' (by applying it's required fields, if any)+mkV1ContainerRestartRuleOnExitCodes+ :: Text -- ^ 'v1ContainerRestartRuleOnExitCodesOperator': Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the set of specified values. - NotIn: the requirement is satisfied if the container exit code is not in the set of specified values.+ -> V1ContainerRestartRuleOnExitCodes+mkV1ContainerRestartRuleOnExitCodes v1ContainerRestartRuleOnExitCodesOperator =+ V1ContainerRestartRuleOnExitCodes+ { v1ContainerRestartRuleOnExitCodesOperator+ , v1ContainerRestartRuleOnExitCodesValues = Nothing+ }++-- ** V1ContainerState+-- | V1ContainerState+-- ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.+data V1ContainerState = V1ContainerState+ { v1ContainerStateRunning :: !(Maybe V1ContainerStateRunning) -- ^ "running"+ , v1ContainerStateTerminated :: !(Maybe V1ContainerStateTerminated) -- ^ "terminated"+ , v1ContainerStateWaiting :: !(Maybe V1ContainerStateWaiting) -- ^ "waiting"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerState+instance A.FromJSON V1ContainerState where+ parseJSON = A.withObject "V1ContainerState" $ \o ->+ V1ContainerState+ <$> (o .:? "running")+ <*> (o .:? "terminated")+ <*> (o .:? "waiting")++-- | ToJSON V1ContainerState+instance A.ToJSON V1ContainerState where+ toJSON V1ContainerState {..} =+ _omitNulls+ [ "running" .= v1ContainerStateRunning+ , "terminated" .= v1ContainerStateTerminated+ , "waiting" .= v1ContainerStateWaiting+ ]+++-- | Construct a value of type 'V1ContainerState' (by applying it's required fields, if any)+mkV1ContainerState+ :: V1ContainerState+mkV1ContainerState =+ V1ContainerState+ { v1ContainerStateRunning = Nothing+ , v1ContainerStateTerminated = Nothing+ , v1ContainerStateWaiting = Nothing+ }++-- ** V1ContainerStateRunning+-- | V1ContainerStateRunning+-- ContainerStateRunning is a running state of a container.+data V1ContainerStateRunning = V1ContainerStateRunning+ { v1ContainerStateRunningStartedAt :: !(Maybe DateTime) -- ^ "startedAt" - Time at which the container was last (re-)started+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerStateRunning+instance A.FromJSON V1ContainerStateRunning where+ parseJSON = A.withObject "V1ContainerStateRunning" $ \o ->+ V1ContainerStateRunning+ <$> (o .:? "startedAt")++-- | ToJSON V1ContainerStateRunning+instance A.ToJSON V1ContainerStateRunning where+ toJSON V1ContainerStateRunning {..} =+ _omitNulls+ [ "startedAt" .= v1ContainerStateRunningStartedAt+ ]+++-- | Construct a value of type 'V1ContainerStateRunning' (by applying it's required fields, if any)+mkV1ContainerStateRunning+ :: V1ContainerStateRunning+mkV1ContainerStateRunning =+ V1ContainerStateRunning+ { v1ContainerStateRunningStartedAt = Nothing+ }++-- ** V1ContainerStateTerminated+-- | V1ContainerStateTerminated+-- ContainerStateTerminated is a terminated state of a container.+data V1ContainerStateTerminated = V1ContainerStateTerminated+ { v1ContainerStateTerminatedContainerId :: !(Maybe Text) -- ^ "containerID" - Container's ID in the format '<type>://<container_id>'+ , v1ContainerStateTerminatedExitCode :: !(Int) -- ^ /Required/ "exitCode" - Exit status from the last termination of the container+ , v1ContainerStateTerminatedFinishedAt :: !(Maybe DateTime) -- ^ "finishedAt" - Time at which the container last terminated+ , v1ContainerStateTerminatedMessage :: !(Maybe Text) -- ^ "message" - Message regarding the last termination of the container+ , v1ContainerStateTerminatedReason :: !(Maybe Text) -- ^ "reason" - (brief) reason from the last termination of the container+ , v1ContainerStateTerminatedSignal :: !(Maybe Int) -- ^ "signal" - Signal from the last termination of the container+ , v1ContainerStateTerminatedStartedAt :: !(Maybe DateTime) -- ^ "startedAt" - Time at which previous execution of the container started+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerStateTerminated+instance A.FromJSON V1ContainerStateTerminated where+ parseJSON = A.withObject "V1ContainerStateTerminated" $ \o ->+ V1ContainerStateTerminated+ <$> (o .:? "containerID")+ <*> (o .: "exitCode")+ <*> (o .:? "finishedAt")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .:? "signal")+ <*> (o .:? "startedAt")++-- | ToJSON V1ContainerStateTerminated+instance A.ToJSON V1ContainerStateTerminated where+ toJSON V1ContainerStateTerminated {..} =+ _omitNulls+ [ "containerID" .= v1ContainerStateTerminatedContainerId+ , "exitCode" .= v1ContainerStateTerminatedExitCode+ , "finishedAt" .= v1ContainerStateTerminatedFinishedAt+ , "message" .= v1ContainerStateTerminatedMessage+ , "reason" .= v1ContainerStateTerminatedReason+ , "signal" .= v1ContainerStateTerminatedSignal+ , "startedAt" .= v1ContainerStateTerminatedStartedAt+ ]+++-- | Construct a value of type 'V1ContainerStateTerminated' (by applying it's required fields, if any)+mkV1ContainerStateTerminated+ :: Int -- ^ 'v1ContainerStateTerminatedExitCode': Exit status from the last termination of the container+ -> V1ContainerStateTerminated+mkV1ContainerStateTerminated v1ContainerStateTerminatedExitCode =+ V1ContainerStateTerminated+ { v1ContainerStateTerminatedContainerId = Nothing+ , v1ContainerStateTerminatedExitCode+ , v1ContainerStateTerminatedFinishedAt = Nothing+ , v1ContainerStateTerminatedMessage = Nothing+ , v1ContainerStateTerminatedReason = Nothing+ , v1ContainerStateTerminatedSignal = Nothing+ , v1ContainerStateTerminatedStartedAt = Nothing+ }++-- ** V1ContainerStateWaiting+-- | V1ContainerStateWaiting+-- ContainerStateWaiting is a waiting state of a container.+data V1ContainerStateWaiting = V1ContainerStateWaiting+ { v1ContainerStateWaitingMessage :: !(Maybe Text) -- ^ "message" - Message regarding why the container is not yet running.+ , v1ContainerStateWaitingReason :: !(Maybe Text) -- ^ "reason" - (brief) reason the container is not yet running.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerStateWaiting+instance A.FromJSON V1ContainerStateWaiting where+ parseJSON = A.withObject "V1ContainerStateWaiting" $ \o ->+ V1ContainerStateWaiting+ <$> (o .:? "message")+ <*> (o .:? "reason")++-- | ToJSON V1ContainerStateWaiting+instance A.ToJSON V1ContainerStateWaiting where+ toJSON V1ContainerStateWaiting {..} =+ _omitNulls+ [ "message" .= v1ContainerStateWaitingMessage+ , "reason" .= v1ContainerStateWaitingReason+ ]+++-- | Construct a value of type 'V1ContainerStateWaiting' (by applying it's required fields, if any)+mkV1ContainerStateWaiting+ :: V1ContainerStateWaiting+mkV1ContainerStateWaiting =+ V1ContainerStateWaiting+ { v1ContainerStateWaitingMessage = Nothing+ , v1ContainerStateWaitingReason = Nothing+ }++-- ** V1ContainerStatus+-- | V1ContainerStatus+-- ContainerStatus contains details for the current status of this container.+data V1ContainerStatus = V1ContainerStatus+ { v1ContainerStatusAllocatedResources :: !(Maybe (Map.Map String Quantity)) -- ^ "allocatedResources" - AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.+ , v1ContainerStatusAllocatedResourcesStatus :: !(Maybe [V1ResourceStatus]) -- ^ "allocatedResourcesStatus" - AllocatedResourcesStatus represents the status of various resources allocated for this Pod.+ , v1ContainerStatusContainerId :: !(Maybe Text) -- ^ "containerID" - ContainerID is the ID of the container in the format '<type>://<container_id>'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \"containerd\").+ , v1ContainerStatusImage :: !(Text) -- ^ /Required/ "image" - Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.+ , v1ContainerStatusImageId :: !(Text) -- ^ /Required/ "imageID" - ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.+ , v1ContainerStatusLastState :: !(Maybe V1ContainerState) -- ^ "lastState"+ , v1ContainerStatusName :: !(Text) -- ^ /Required/ "name" - Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.+ , v1ContainerStatusReady :: !(Bool) -- ^ /Required/ "ready" - Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field). The value is typically used to determine whether a container is ready to accept traffic.+ , v1ContainerStatusResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"+ , v1ContainerStatusRestartCount :: !(Int) -- ^ /Required/ "restartCount" - RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.+ , v1ContainerStatusStarted :: !(Maybe Bool) -- ^ "started" - Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false.+ , v1ContainerStatusState :: !(Maybe V1ContainerState) -- ^ "state"+ , v1ContainerStatusStopSignal :: !(Maybe Text) -- ^ "stopSignal" - StopSignal reports the effective stop signal for this container+ , v1ContainerStatusUser :: !(Maybe V1ContainerUser) -- ^ "user"+ , v1ContainerStatusVolumeMounts :: !(Maybe [V1VolumeMountStatus]) -- ^ "volumeMounts" - Status of volume mounts.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerStatus+instance A.FromJSON V1ContainerStatus where+ parseJSON = A.withObject "V1ContainerStatus" $ \o ->+ V1ContainerStatus+ <$> (o .:? "allocatedResources")+ <*> (o .:? "allocatedResourcesStatus")+ <*> (o .:? "containerID")+ <*> (o .: "image")+ <*> (o .: "imageID")+ <*> (o .:? "lastState")+ <*> (o .: "name")+ <*> (o .: "ready")+ <*> (o .:? "resources")+ <*> (o .: "restartCount")+ <*> (o .:? "started")+ <*> (o .:? "state")+ <*> (o .:? "stopSignal")+ <*> (o .:? "user")+ <*> (o .:? "volumeMounts")++-- | ToJSON V1ContainerStatus+instance A.ToJSON V1ContainerStatus where+ toJSON V1ContainerStatus {..} =+ _omitNulls+ [ "allocatedResources" .= v1ContainerStatusAllocatedResources+ , "allocatedResourcesStatus" .= v1ContainerStatusAllocatedResourcesStatus+ , "containerID" .= v1ContainerStatusContainerId+ , "image" .= v1ContainerStatusImage+ , "imageID" .= v1ContainerStatusImageId+ , "lastState" .= v1ContainerStatusLastState+ , "name" .= v1ContainerStatusName+ , "ready" .= v1ContainerStatusReady+ , "resources" .= v1ContainerStatusResources+ , "restartCount" .= v1ContainerStatusRestartCount+ , "started" .= v1ContainerStatusStarted+ , "state" .= v1ContainerStatusState+ , "stopSignal" .= v1ContainerStatusStopSignal+ , "user" .= v1ContainerStatusUser+ , "volumeMounts" .= v1ContainerStatusVolumeMounts+ ]+++-- | Construct a value of type 'V1ContainerStatus' (by applying it's required fields, if any)+mkV1ContainerStatus+ :: Text -- ^ 'v1ContainerStatusImage': Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.+ -> Text -- ^ 'v1ContainerStatusImageId': ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.+ -> Text -- ^ 'v1ContainerStatusName': Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.+ -> Bool -- ^ 'v1ContainerStatusReady': Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field). The value is typically used to determine whether a container is ready to accept traffic.+ -> Int -- ^ 'v1ContainerStatusRestartCount': RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.+ -> V1ContainerStatus+mkV1ContainerStatus v1ContainerStatusImage v1ContainerStatusImageId v1ContainerStatusName v1ContainerStatusReady v1ContainerStatusRestartCount =+ V1ContainerStatus+ { v1ContainerStatusAllocatedResources = Nothing+ , v1ContainerStatusAllocatedResourcesStatus = Nothing+ , v1ContainerStatusContainerId = Nothing+ , v1ContainerStatusImage+ , v1ContainerStatusImageId+ , v1ContainerStatusLastState = Nothing+ , v1ContainerStatusName+ , v1ContainerStatusReady+ , v1ContainerStatusResources = Nothing+ , v1ContainerStatusRestartCount+ , v1ContainerStatusStarted = Nothing+ , v1ContainerStatusState = Nothing+ , v1ContainerStatusStopSignal = Nothing+ , v1ContainerStatusUser = Nothing+ , v1ContainerStatusVolumeMounts = Nothing+ }++-- ** V1ContainerUser+-- | V1ContainerUser+-- ContainerUser represents user identity information+data V1ContainerUser = V1ContainerUser+ { v1ContainerUserLinux :: !(Maybe V1LinuxContainerUser) -- ^ "linux"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ContainerUser+instance A.FromJSON V1ContainerUser where+ parseJSON = A.withObject "V1ContainerUser" $ \o ->+ V1ContainerUser+ <$> (o .:? "linux")++-- | ToJSON V1ContainerUser+instance A.ToJSON V1ContainerUser where+ toJSON V1ContainerUser {..} =+ _omitNulls+ [ "linux" .= v1ContainerUserLinux+ ]+++-- | Construct a value of type 'V1ContainerUser' (by applying it's required fields, if any)+mkV1ContainerUser+ :: V1ContainerUser+mkV1ContainerUser =+ V1ContainerUser+ { v1ContainerUserLinux = Nothing+ }++-- ** V1ControllerRevision+-- | V1ControllerRevision+-- ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.+data V1ControllerRevision = V1ControllerRevision+ { v1ControllerRevisionApiVersion :: !(Maybe Text) -- ^ "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+ , v1ControllerRevisionData :: !(Maybe A.Value) -- ^ "data" - Data is the serialized representation of the state.+ , v1ControllerRevisionKind :: !(Maybe Text) -- ^ "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+ , v1ControllerRevisionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ControllerRevisionRevision :: !(Integer) -- ^ /Required/ "revision" - Revision indicates the revision of the state represented by Data.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ControllerRevision+instance A.FromJSON V1ControllerRevision where+ parseJSON = A.withObject "V1ControllerRevision" $ \o ->+ V1ControllerRevision+ <$> (o .:? "apiVersion")+ <*> (o .:? "data")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "revision")++-- | ToJSON V1ControllerRevision+instance A.ToJSON V1ControllerRevision where+ toJSON V1ControllerRevision {..} =+ _omitNulls+ [ "apiVersion" .= v1ControllerRevisionApiVersion+ , "data" .= v1ControllerRevisionData+ , "kind" .= v1ControllerRevisionKind+ , "metadata" .= v1ControllerRevisionMetadata+ , "revision" .= v1ControllerRevisionRevision+ ]+++-- | Construct a value of type 'V1ControllerRevision' (by applying it's required fields, if any)+mkV1ControllerRevision+ :: Integer -- ^ 'v1ControllerRevisionRevision': Revision indicates the revision of the state represented by Data.+ -> V1ControllerRevision+mkV1ControllerRevision v1ControllerRevisionRevision =+ V1ControllerRevision+ { v1ControllerRevisionApiVersion = Nothing+ , v1ControllerRevisionData = Nothing+ , v1ControllerRevisionKind = Nothing+ , v1ControllerRevisionMetadata = Nothing+ , v1ControllerRevisionRevision+ }++-- ** V1ControllerRevisionList+-- | V1ControllerRevisionList+-- ControllerRevisionList is a resource containing a list of ControllerRevision objects.+data V1ControllerRevisionList = V1ControllerRevisionList+ { v1ControllerRevisionListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ControllerRevisionListItems :: !([V1ControllerRevision]) -- ^ /Required/ "items" - Items is the list of ControllerRevisions+ , v1ControllerRevisionListKind :: !(Maybe Text) -- ^ "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+ , v1ControllerRevisionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ControllerRevisionList+instance A.FromJSON V1ControllerRevisionList where+ parseJSON = A.withObject "V1ControllerRevisionList" $ \o ->+ V1ControllerRevisionList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ControllerRevisionList+instance A.ToJSON V1ControllerRevisionList where+ toJSON V1ControllerRevisionList {..} =+ _omitNulls+ [ "apiVersion" .= v1ControllerRevisionListApiVersion+ , "items" .= v1ControllerRevisionListItems+ , "kind" .= v1ControllerRevisionListKind+ , "metadata" .= v1ControllerRevisionListMetadata+ ]+++-- | Construct a value of type 'V1ControllerRevisionList' (by applying it's required fields, if any)+mkV1ControllerRevisionList+ :: [V1ControllerRevision] -- ^ 'v1ControllerRevisionListItems': Items is the list of ControllerRevisions+ -> V1ControllerRevisionList+mkV1ControllerRevisionList v1ControllerRevisionListItems =+ V1ControllerRevisionList+ { v1ControllerRevisionListApiVersion = Nothing+ , v1ControllerRevisionListItems+ , v1ControllerRevisionListKind = Nothing+ , v1ControllerRevisionListMetadata = Nothing+ }++-- ** V1Counter+-- | V1Counter+-- Counter describes a quantity associated with a device.+data V1Counter = V1Counter+ { v1CounterValue :: !(Quantity) -- ^ /Required/ "value"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Counter+instance A.FromJSON V1Counter where+ parseJSON = A.withObject "V1Counter" $ \o ->+ V1Counter+ <$> (o .: "value")++-- | ToJSON V1Counter+instance A.ToJSON V1Counter where+ toJSON V1Counter {..} =+ _omitNulls+ [ "value" .= v1CounterValue+ ]+++-- | Construct a value of type 'V1Counter' (by applying it's required fields, if any)+mkV1Counter+ :: Quantity -- ^ 'v1CounterValue' + -> V1Counter+mkV1Counter v1CounterValue =+ V1Counter+ { v1CounterValue+ }++-- ** V1CounterSet+-- | V1CounterSet+-- CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.+data V1CounterSet = V1CounterSet+ { v1CounterSetCounters :: !((Map.Map String V1Counter)) -- ^ /Required/ "counters" - Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters is 32.+ , v1CounterSetName :: !(Text) -- ^ /Required/ "name" - Name defines the name of the counter set. It must be a DNS label.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CounterSet+instance A.FromJSON V1CounterSet where+ parseJSON = A.withObject "V1CounterSet" $ \o ->+ V1CounterSet+ <$> (o .: "counters")+ <*> (o .: "name")++-- | ToJSON V1CounterSet+instance A.ToJSON V1CounterSet where+ toJSON V1CounterSet {..} =+ _omitNulls+ [ "counters" .= v1CounterSetCounters+ , "name" .= v1CounterSetName+ ]+++-- | Construct a value of type 'V1CounterSet' (by applying it's required fields, if any)+mkV1CounterSet+ :: (Map.Map String V1Counter) -- ^ 'v1CounterSetCounters': Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters is 32.+ -> Text -- ^ 'v1CounterSetName': Name defines the name of the counter set. It must be a DNS label.+ -> V1CounterSet+mkV1CounterSet v1CounterSetCounters v1CounterSetName =+ V1CounterSet+ { v1CounterSetCounters+ , v1CounterSetName+ }++-- ** V1CronJob+-- | V1CronJob+-- CronJob represents the configuration of a single cron job.+data V1CronJob = V1CronJob+ { v1CronJobApiVersion :: !(Maybe Text) -- ^ "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+ , v1CronJobKind :: !(Maybe Text) -- ^ "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+ , v1CronJobMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1CronJobSpec :: !(Maybe V1CronJobSpec) -- ^ "spec"+ , v1CronJobStatus :: !(Maybe V1CronJobStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CronJob+instance A.FromJSON V1CronJob where+ parseJSON = A.withObject "V1CronJob" $ \o ->+ V1CronJob+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1CronJob+instance A.ToJSON V1CronJob where+ toJSON V1CronJob {..} =+ _omitNulls+ [ "apiVersion" .= v1CronJobApiVersion+ , "kind" .= v1CronJobKind+ , "metadata" .= v1CronJobMetadata+ , "spec" .= v1CronJobSpec+ , "status" .= v1CronJobStatus+ ]+++-- | Construct a value of type 'V1CronJob' (by applying it's required fields, if any)+mkV1CronJob+ :: V1CronJob+mkV1CronJob =+ V1CronJob+ { v1CronJobApiVersion = Nothing+ , v1CronJobKind = Nothing+ , v1CronJobMetadata = Nothing+ , v1CronJobSpec = Nothing+ , v1CronJobStatus = Nothing+ }++-- ** V1CronJobList+-- | V1CronJobList+-- CronJobList is a collection of cron jobs.+data V1CronJobList = V1CronJobList+ { v1CronJobListApiVersion :: !(Maybe Text) -- ^ "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+ , v1CronJobListItems :: !([V1CronJob]) -- ^ /Required/ "items" - items is the list of CronJobs.+ , v1CronJobListKind :: !(Maybe Text) -- ^ "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+ , v1CronJobListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CronJobList+instance A.FromJSON V1CronJobList where+ parseJSON = A.withObject "V1CronJobList" $ \o ->+ V1CronJobList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1CronJobList+instance A.ToJSON V1CronJobList where+ toJSON V1CronJobList {..} =+ _omitNulls+ [ "apiVersion" .= v1CronJobListApiVersion+ , "items" .= v1CronJobListItems+ , "kind" .= v1CronJobListKind+ , "metadata" .= v1CronJobListMetadata+ ]+++-- | Construct a value of type 'V1CronJobList' (by applying it's required fields, if any)+mkV1CronJobList+ :: [V1CronJob] -- ^ 'v1CronJobListItems': items is the list of CronJobs.+ -> V1CronJobList+mkV1CronJobList v1CronJobListItems =+ V1CronJobList+ { v1CronJobListApiVersion = Nothing+ , v1CronJobListItems+ , v1CronJobListKind = Nothing+ , v1CronJobListMetadata = Nothing+ }++-- ** V1CronJobSpec+-- | V1CronJobSpec+-- CronJobSpec describes how the job execution will look like and when it will actually run.+data V1CronJobSpec = V1CronJobSpec+ { v1CronJobSpecConcurrencyPolicy :: !(Maybe Text) -- ^ "concurrencyPolicy" - Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one+ , v1CronJobSpecFailedJobsHistoryLimit :: !(Maybe Int) -- ^ "failedJobsHistoryLimit" - The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.+ , v1CronJobSpecJobTemplate :: !(V1JobTemplateSpec) -- ^ /Required/ "jobTemplate"+ , v1CronJobSpecSchedule :: !(Text) -- ^ /Required/ "schedule" - The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.+ , v1CronJobSpecStartingDeadlineSeconds :: !(Maybe Integer) -- ^ "startingDeadlineSeconds" - Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.+ , v1CronJobSpecSuccessfulJobsHistoryLimit :: !(Maybe Int) -- ^ "successfulJobsHistoryLimit" - The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.+ , v1CronJobSpecSuspend :: !(Maybe Bool) -- ^ "suspend" - This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.+ , v1CronJobSpecTimeZone :: !(Maybe Text) -- ^ "timeZone" - The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CronJobSpec+instance A.FromJSON V1CronJobSpec where+ parseJSON = A.withObject "V1CronJobSpec" $ \o ->+ V1CronJobSpec+ <$> (o .:? "concurrencyPolicy")+ <*> (o .:? "failedJobsHistoryLimit")+ <*> (o .: "jobTemplate")+ <*> (o .: "schedule")+ <*> (o .:? "startingDeadlineSeconds")+ <*> (o .:? "successfulJobsHistoryLimit")+ <*> (o .:? "suspend")+ <*> (o .:? "timeZone")++-- | ToJSON V1CronJobSpec+instance A.ToJSON V1CronJobSpec where+ toJSON V1CronJobSpec {..} =+ _omitNulls+ [ "concurrencyPolicy" .= v1CronJobSpecConcurrencyPolicy+ , "failedJobsHistoryLimit" .= v1CronJobSpecFailedJobsHistoryLimit+ , "jobTemplate" .= v1CronJobSpecJobTemplate+ , "schedule" .= v1CronJobSpecSchedule+ , "startingDeadlineSeconds" .= v1CronJobSpecStartingDeadlineSeconds+ , "successfulJobsHistoryLimit" .= v1CronJobSpecSuccessfulJobsHistoryLimit+ , "suspend" .= v1CronJobSpecSuspend+ , "timeZone" .= v1CronJobSpecTimeZone+ ]+++-- | Construct a value of type 'V1CronJobSpec' (by applying it's required fields, if any)+mkV1CronJobSpec+ :: V1JobTemplateSpec -- ^ 'v1CronJobSpecJobTemplate' + -> Text -- ^ 'v1CronJobSpecSchedule': The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.+ -> V1CronJobSpec+mkV1CronJobSpec v1CronJobSpecJobTemplate v1CronJobSpecSchedule =+ V1CronJobSpec+ { v1CronJobSpecConcurrencyPolicy = Nothing+ , v1CronJobSpecFailedJobsHistoryLimit = Nothing+ , v1CronJobSpecJobTemplate+ , v1CronJobSpecSchedule+ , v1CronJobSpecStartingDeadlineSeconds = Nothing+ , v1CronJobSpecSuccessfulJobsHistoryLimit = Nothing+ , v1CronJobSpecSuspend = Nothing+ , v1CronJobSpecTimeZone = Nothing+ }++-- ** V1CronJobStatus+-- | V1CronJobStatus+-- CronJobStatus represents the current state of a cron job.+data V1CronJobStatus = V1CronJobStatus+ { v1CronJobStatusActive :: !(Maybe [V1ObjectReference]) -- ^ "active" - A list of pointers to currently running jobs.+ , v1CronJobStatusLastScheduleTime :: !(Maybe DateTime) -- ^ "lastScheduleTime" - Information when was the last time the job was successfully scheduled.+ , v1CronJobStatusLastSuccessfulTime :: !(Maybe DateTime) -- ^ "lastSuccessfulTime" - Information when was the last time the job successfully completed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CronJobStatus+instance A.FromJSON V1CronJobStatus where+ parseJSON = A.withObject "V1CronJobStatus" $ \o ->+ V1CronJobStatus+ <$> (o .:? "active")+ <*> (o .:? "lastScheduleTime")+ <*> (o .:? "lastSuccessfulTime")++-- | ToJSON V1CronJobStatus+instance A.ToJSON V1CronJobStatus where+ toJSON V1CronJobStatus {..} =+ _omitNulls+ [ "active" .= v1CronJobStatusActive+ , "lastScheduleTime" .= v1CronJobStatusLastScheduleTime+ , "lastSuccessfulTime" .= v1CronJobStatusLastSuccessfulTime+ ]+++-- | Construct a value of type 'V1CronJobStatus' (by applying it's required fields, if any)+mkV1CronJobStatus+ :: V1CronJobStatus+mkV1CronJobStatus =+ V1CronJobStatus+ { v1CronJobStatusActive = Nothing+ , v1CronJobStatusLastScheduleTime = Nothing+ , v1CronJobStatusLastSuccessfulTime = Nothing+ }++-- ** V1CrossVersionObjectReference+-- | V1CrossVersionObjectReference+-- CrossVersionObjectReference contains enough information to let you identify the referred resource.+data V1CrossVersionObjectReference = V1CrossVersionObjectReference+ { v1CrossVersionObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - apiVersion is the API version of the referent+ , v1CrossVersionObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds+ , v1CrossVersionObjectReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CrossVersionObjectReference+instance A.FromJSON V1CrossVersionObjectReference where+ parseJSON = A.withObject "V1CrossVersionObjectReference" $ \o ->+ V1CrossVersionObjectReference+ <$> (o .:? "apiVersion")+ <*> (o .: "kind")+ <*> (o .: "name")++-- | ToJSON V1CrossVersionObjectReference+instance A.ToJSON V1CrossVersionObjectReference where+ toJSON V1CrossVersionObjectReference {..} =+ _omitNulls+ [ "apiVersion" .= v1CrossVersionObjectReferenceApiVersion+ , "kind" .= v1CrossVersionObjectReferenceKind+ , "name" .= v1CrossVersionObjectReferenceName+ ]+++-- | Construct a value of type 'V1CrossVersionObjectReference' (by applying it's required fields, if any)+mkV1CrossVersionObjectReference+ :: Text -- ^ 'v1CrossVersionObjectReferenceKind': kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds+ -> Text -- ^ 'v1CrossVersionObjectReferenceName': name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ -> V1CrossVersionObjectReference+mkV1CrossVersionObjectReference v1CrossVersionObjectReferenceKind v1CrossVersionObjectReferenceName =+ V1CrossVersionObjectReference+ { v1CrossVersionObjectReferenceApiVersion = Nothing+ , v1CrossVersionObjectReferenceKind+ , v1CrossVersionObjectReferenceName+ }++-- ** V1CustomResourceColumnDefinition+-- | V1CustomResourceColumnDefinition+-- CustomResourceColumnDefinition specifies a column for server side printing.+data V1CustomResourceColumnDefinition = V1CustomResourceColumnDefinition+ { v1CustomResourceColumnDefinitionDescription :: !(Maybe Text) -- ^ "description" - description is a human readable description of this column.+ , v1CustomResourceColumnDefinitionFormat :: !(Maybe Text) -- ^ "format" - format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.+ , v1CustomResourceColumnDefinitionJsonPath :: !(Text) -- ^ /Required/ "jsonPath" - jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.+ , v1CustomResourceColumnDefinitionName :: !(Text) -- ^ /Required/ "name" - name is a human readable name for the column.+ , v1CustomResourceColumnDefinitionPriority :: !(Maybe Int) -- ^ "priority" - priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.+ , v1CustomResourceColumnDefinitionType :: !(Text) -- ^ /Required/ "type" - type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceColumnDefinition+instance A.FromJSON V1CustomResourceColumnDefinition where+ parseJSON = A.withObject "V1CustomResourceColumnDefinition" $ \o ->+ V1CustomResourceColumnDefinition+ <$> (o .:? "description")+ <*> (o .:? "format")+ <*> (o .: "jsonPath")+ <*> (o .: "name")+ <*> (o .:? "priority")+ <*> (o .: "type")++-- | ToJSON V1CustomResourceColumnDefinition+instance A.ToJSON V1CustomResourceColumnDefinition where+ toJSON V1CustomResourceColumnDefinition {..} =+ _omitNulls+ [ "description" .= v1CustomResourceColumnDefinitionDescription+ , "format" .= v1CustomResourceColumnDefinitionFormat+ , "jsonPath" .= v1CustomResourceColumnDefinitionJsonPath+ , "name" .= v1CustomResourceColumnDefinitionName+ , "priority" .= v1CustomResourceColumnDefinitionPriority+ , "type" .= v1CustomResourceColumnDefinitionType+ ]+++-- | Construct a value of type 'V1CustomResourceColumnDefinition' (by applying it's required fields, if any)+mkV1CustomResourceColumnDefinition+ :: Text -- ^ 'v1CustomResourceColumnDefinitionJsonPath': jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.+ -> Text -- ^ 'v1CustomResourceColumnDefinitionName': name is a human readable name for the column.+ -> Text -- ^ 'v1CustomResourceColumnDefinitionType': type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.+ -> V1CustomResourceColumnDefinition+mkV1CustomResourceColumnDefinition v1CustomResourceColumnDefinitionJsonPath v1CustomResourceColumnDefinitionName v1CustomResourceColumnDefinitionType =+ V1CustomResourceColumnDefinition+ { v1CustomResourceColumnDefinitionDescription = Nothing+ , v1CustomResourceColumnDefinitionFormat = Nothing+ , v1CustomResourceColumnDefinitionJsonPath+ , v1CustomResourceColumnDefinitionName+ , v1CustomResourceColumnDefinitionPriority = Nothing+ , v1CustomResourceColumnDefinitionType+ }++-- ** V1CustomResourceConversion+-- | V1CustomResourceConversion+-- CustomResourceConversion describes how to convert different versions of a CR.+data V1CustomResourceConversion = V1CustomResourceConversion+ { v1CustomResourceConversionStrategy :: !(Text) -- ^ /Required/ "strategy" - strategy specifies how custom resources are converted between versions. Allowed values are: - `\"None\"`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `\"Webhook\"`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.+ , v1CustomResourceConversionWebhook :: !(Maybe V1WebhookConversion) -- ^ "webhook"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceConversion+instance A.FromJSON V1CustomResourceConversion where+ parseJSON = A.withObject "V1CustomResourceConversion" $ \o ->+ V1CustomResourceConversion+ <$> (o .: "strategy")+ <*> (o .:? "webhook")++-- | ToJSON V1CustomResourceConversion+instance A.ToJSON V1CustomResourceConversion where+ toJSON V1CustomResourceConversion {..} =+ _omitNulls+ [ "strategy" .= v1CustomResourceConversionStrategy+ , "webhook" .= v1CustomResourceConversionWebhook+ ]+++-- | Construct a value of type 'V1CustomResourceConversion' (by applying it's required fields, if any)+mkV1CustomResourceConversion+ :: Text -- ^ 'v1CustomResourceConversionStrategy': strategy specifies how custom resources are converted between versions. Allowed values are: - `\"None\"`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `\"Webhook\"`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.+ -> V1CustomResourceConversion+mkV1CustomResourceConversion v1CustomResourceConversionStrategy =+ V1CustomResourceConversion+ { v1CustomResourceConversionStrategy+ , v1CustomResourceConversionWebhook = Nothing+ }++-- ** V1CustomResourceDefinition+-- | V1CustomResourceDefinition+-- CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>.+data V1CustomResourceDefinition = V1CustomResourceDefinition+ { v1CustomResourceDefinitionApiVersion :: !(Maybe Text) -- ^ "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+ , v1CustomResourceDefinitionKind :: !(Maybe Text) -- ^ "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+ , v1CustomResourceDefinitionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1CustomResourceDefinitionSpec :: !(V1CustomResourceDefinitionSpec) -- ^ /Required/ "spec"+ , v1CustomResourceDefinitionStatus :: !(Maybe V1CustomResourceDefinitionStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceDefinition+instance A.FromJSON V1CustomResourceDefinition where+ parseJSON = A.withObject "V1CustomResourceDefinition" $ \o ->+ V1CustomResourceDefinition+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1CustomResourceDefinition+instance A.ToJSON V1CustomResourceDefinition where+ toJSON V1CustomResourceDefinition {..} =+ _omitNulls+ [ "apiVersion" .= v1CustomResourceDefinitionApiVersion+ , "kind" .= v1CustomResourceDefinitionKind+ , "metadata" .= v1CustomResourceDefinitionMetadata+ , "spec" .= v1CustomResourceDefinitionSpec+ , "status" .= v1CustomResourceDefinitionStatus+ ]+++-- | Construct a value of type 'V1CustomResourceDefinition' (by applying it's required fields, if any)+mkV1CustomResourceDefinition+ :: V1CustomResourceDefinitionSpec -- ^ 'v1CustomResourceDefinitionSpec' + -> V1CustomResourceDefinition+mkV1CustomResourceDefinition v1CustomResourceDefinitionSpec =+ V1CustomResourceDefinition+ { v1CustomResourceDefinitionApiVersion = Nothing+ , v1CustomResourceDefinitionKind = Nothing+ , v1CustomResourceDefinitionMetadata = Nothing+ , v1CustomResourceDefinitionSpec+ , v1CustomResourceDefinitionStatus = Nothing+ }++-- ** V1CustomResourceDefinitionCondition+-- | V1CustomResourceDefinitionCondition+-- CustomResourceDefinitionCondition contains details for the current condition of this pod.+data V1CustomResourceDefinitionCondition = V1CustomResourceDefinitionCondition+ { v1CustomResourceDefinitionConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime last time the condition transitioned from one status to another.+ , v1CustomResourceDefinitionConditionMessage :: !(Maybe Text) -- ^ "message" - message is a human-readable message indicating details about last transition.+ , v1CustomResourceDefinitionConditionObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.+ , v1CustomResourceDefinitionConditionReason :: !(Maybe Text) -- ^ "reason" - reason is a unique, one-word, CamelCase reason for the condition's last transition.+ , v1CustomResourceDefinitionConditionStatus :: !(Text) -- ^ /Required/ "status" - status is the status of the condition. Can be True, False, Unknown.+ , v1CustomResourceDefinitionConditionType :: !(Text) -- ^ /Required/ "type" - type is the type of the condition. Types include Established, NamesAccepted and Terminating.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceDefinitionCondition+instance A.FromJSON V1CustomResourceDefinitionCondition where+ parseJSON = A.withObject "V1CustomResourceDefinitionCondition" $ \o ->+ V1CustomResourceDefinitionCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1CustomResourceDefinitionCondition+instance A.ToJSON V1CustomResourceDefinitionCondition where+ toJSON V1CustomResourceDefinitionCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1CustomResourceDefinitionConditionLastTransitionTime+ , "message" .= v1CustomResourceDefinitionConditionMessage+ , "observedGeneration" .= v1CustomResourceDefinitionConditionObservedGeneration+ , "reason" .= v1CustomResourceDefinitionConditionReason+ , "status" .= v1CustomResourceDefinitionConditionStatus+ , "type" .= v1CustomResourceDefinitionConditionType+ ]+++-- | Construct a value of type 'V1CustomResourceDefinitionCondition' (by applying it's required fields, if any)+mkV1CustomResourceDefinitionCondition+ :: Text -- ^ 'v1CustomResourceDefinitionConditionStatus': status is the status of the condition. Can be True, False, Unknown.+ -> Text -- ^ 'v1CustomResourceDefinitionConditionType': type is the type of the condition. Types include Established, NamesAccepted and Terminating.+ -> V1CustomResourceDefinitionCondition+mkV1CustomResourceDefinitionCondition v1CustomResourceDefinitionConditionStatus v1CustomResourceDefinitionConditionType =+ V1CustomResourceDefinitionCondition+ { v1CustomResourceDefinitionConditionLastTransitionTime = Nothing+ , v1CustomResourceDefinitionConditionMessage = Nothing+ , v1CustomResourceDefinitionConditionObservedGeneration = Nothing+ , v1CustomResourceDefinitionConditionReason = Nothing+ , v1CustomResourceDefinitionConditionStatus+ , v1CustomResourceDefinitionConditionType+ }++-- ** V1CustomResourceDefinitionList+-- | V1CustomResourceDefinitionList+-- CustomResourceDefinitionList is a list of CustomResourceDefinition objects.+data V1CustomResourceDefinitionList = V1CustomResourceDefinitionList+ { v1CustomResourceDefinitionListApiVersion :: !(Maybe Text) -- ^ "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+ , v1CustomResourceDefinitionListItems :: !([V1CustomResourceDefinition]) -- ^ /Required/ "items" - items list individual CustomResourceDefinition objects+ , v1CustomResourceDefinitionListKind :: !(Maybe Text) -- ^ "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+ , v1CustomResourceDefinitionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceDefinitionList+instance A.FromJSON V1CustomResourceDefinitionList where+ parseJSON = A.withObject "V1CustomResourceDefinitionList" $ \o ->+ V1CustomResourceDefinitionList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1CustomResourceDefinitionList+instance A.ToJSON V1CustomResourceDefinitionList where+ toJSON V1CustomResourceDefinitionList {..} =+ _omitNulls+ [ "apiVersion" .= v1CustomResourceDefinitionListApiVersion+ , "items" .= v1CustomResourceDefinitionListItems+ , "kind" .= v1CustomResourceDefinitionListKind+ , "metadata" .= v1CustomResourceDefinitionListMetadata+ ]+++-- | Construct a value of type 'V1CustomResourceDefinitionList' (by applying it's required fields, if any)+mkV1CustomResourceDefinitionList+ :: [V1CustomResourceDefinition] -- ^ 'v1CustomResourceDefinitionListItems': items list individual CustomResourceDefinition objects+ -> V1CustomResourceDefinitionList+mkV1CustomResourceDefinitionList v1CustomResourceDefinitionListItems =+ V1CustomResourceDefinitionList+ { v1CustomResourceDefinitionListApiVersion = Nothing+ , v1CustomResourceDefinitionListItems+ , v1CustomResourceDefinitionListKind = Nothing+ , v1CustomResourceDefinitionListMetadata = Nothing+ }++-- ** V1CustomResourceDefinitionNames+-- | V1CustomResourceDefinitionNames+-- CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition+data V1CustomResourceDefinitionNames = V1CustomResourceDefinitionNames+ { v1CustomResourceDefinitionNamesCategories :: !(Maybe [Text]) -- ^ "categories" - categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.+ , v1CustomResourceDefinitionNamesKind :: !(Text) -- ^ /Required/ "kind" - kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.+ , v1CustomResourceDefinitionNamesListKind :: !(Maybe Text) -- ^ "listKind" - listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".+ , v1CustomResourceDefinitionNamesPlural :: !(Text) -- ^ /Required/ "plural" - plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.+ , v1CustomResourceDefinitionNamesShortNames :: !(Maybe [Text]) -- ^ "shortNames" - shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get <shortname>`. It must be all lowercase.+ , v1CustomResourceDefinitionNamesSingular :: !(Maybe Text) -- ^ "singular" - singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceDefinitionNames+instance A.FromJSON V1CustomResourceDefinitionNames where+ parseJSON = A.withObject "V1CustomResourceDefinitionNames" $ \o ->+ V1CustomResourceDefinitionNames+ <$> (o .:? "categories")+ <*> (o .: "kind")+ <*> (o .:? "listKind")+ <*> (o .: "plural")+ <*> (o .:? "shortNames")+ <*> (o .:? "singular")++-- | ToJSON V1CustomResourceDefinitionNames+instance A.ToJSON V1CustomResourceDefinitionNames where+ toJSON V1CustomResourceDefinitionNames {..} =+ _omitNulls+ [ "categories" .= v1CustomResourceDefinitionNamesCategories+ , "kind" .= v1CustomResourceDefinitionNamesKind+ , "listKind" .= v1CustomResourceDefinitionNamesListKind+ , "plural" .= v1CustomResourceDefinitionNamesPlural+ , "shortNames" .= v1CustomResourceDefinitionNamesShortNames+ , "singular" .= v1CustomResourceDefinitionNamesSingular+ ]+++-- | Construct a value of type 'V1CustomResourceDefinitionNames' (by applying it's required fields, if any)+mkV1CustomResourceDefinitionNames+ :: Text -- ^ 'v1CustomResourceDefinitionNamesKind': kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.+ -> Text -- ^ 'v1CustomResourceDefinitionNamesPlural': plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.+ -> V1CustomResourceDefinitionNames+mkV1CustomResourceDefinitionNames v1CustomResourceDefinitionNamesKind v1CustomResourceDefinitionNamesPlural =+ V1CustomResourceDefinitionNames+ { v1CustomResourceDefinitionNamesCategories = Nothing+ , v1CustomResourceDefinitionNamesKind+ , v1CustomResourceDefinitionNamesListKind = Nothing+ , v1CustomResourceDefinitionNamesPlural+ , v1CustomResourceDefinitionNamesShortNames = Nothing+ , v1CustomResourceDefinitionNamesSingular = Nothing+ }++-- ** V1CustomResourceDefinitionSpec+-- | V1CustomResourceDefinitionSpec+-- CustomResourceDefinitionSpec describes how a user wants their resource to appear+data V1CustomResourceDefinitionSpec = V1CustomResourceDefinitionSpec+ { v1CustomResourceDefinitionSpecConversion :: !(Maybe V1CustomResourceConversion) -- ^ "conversion"+ , v1CustomResourceDefinitionSpecGroup :: !(Text) -- ^ /Required/ "group" - group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).+ , v1CustomResourceDefinitionSpecNames :: !(V1CustomResourceDefinitionNames) -- ^ /Required/ "names"+ , v1CustomResourceDefinitionSpecPreserveUnknownFields :: !(Maybe Bool) -- ^ "preserveUnknownFields" - preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning for details.+ , v1CustomResourceDefinitionSpecScope :: !(Text) -- ^ /Required/ "scope" - scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.+ , v1CustomResourceDefinitionSpecVersions :: !([V1CustomResourceDefinitionVersion]) -- ^ /Required/ "versions" - versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceDefinitionSpec+instance A.FromJSON V1CustomResourceDefinitionSpec where+ parseJSON = A.withObject "V1CustomResourceDefinitionSpec" $ \o ->+ V1CustomResourceDefinitionSpec+ <$> (o .:? "conversion")+ <*> (o .: "group")+ <*> (o .: "names")+ <*> (o .:? "preserveUnknownFields")+ <*> (o .: "scope")+ <*> (o .: "versions")++-- | ToJSON V1CustomResourceDefinitionSpec+instance A.ToJSON V1CustomResourceDefinitionSpec where+ toJSON V1CustomResourceDefinitionSpec {..} =+ _omitNulls+ [ "conversion" .= v1CustomResourceDefinitionSpecConversion+ , "group" .= v1CustomResourceDefinitionSpecGroup+ , "names" .= v1CustomResourceDefinitionSpecNames+ , "preserveUnknownFields" .= v1CustomResourceDefinitionSpecPreserveUnknownFields+ , "scope" .= v1CustomResourceDefinitionSpecScope+ , "versions" .= v1CustomResourceDefinitionSpecVersions+ ]+++-- | Construct a value of type 'V1CustomResourceDefinitionSpec' (by applying it's required fields, if any)+mkV1CustomResourceDefinitionSpec+ :: Text -- ^ 'v1CustomResourceDefinitionSpecGroup': group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).+ -> V1CustomResourceDefinitionNames -- ^ 'v1CustomResourceDefinitionSpecNames' + -> Text -- ^ 'v1CustomResourceDefinitionSpecScope': scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.+ -> [V1CustomResourceDefinitionVersion] -- ^ 'v1CustomResourceDefinitionSpecVersions': versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.+ -> V1CustomResourceDefinitionSpec+mkV1CustomResourceDefinitionSpec v1CustomResourceDefinitionSpecGroup v1CustomResourceDefinitionSpecNames v1CustomResourceDefinitionSpecScope v1CustomResourceDefinitionSpecVersions =+ V1CustomResourceDefinitionSpec+ { v1CustomResourceDefinitionSpecConversion = Nothing+ , v1CustomResourceDefinitionSpecGroup+ , v1CustomResourceDefinitionSpecNames+ , v1CustomResourceDefinitionSpecPreserveUnknownFields = Nothing+ , v1CustomResourceDefinitionSpecScope+ , v1CustomResourceDefinitionSpecVersions+ }++-- ** V1CustomResourceDefinitionStatus+-- | V1CustomResourceDefinitionStatus+-- CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition+data V1CustomResourceDefinitionStatus = V1CustomResourceDefinitionStatus+ { v1CustomResourceDefinitionStatusAcceptedNames :: !(Maybe V1CustomResourceDefinitionNames) -- ^ "acceptedNames"+ , v1CustomResourceDefinitionStatusConditions :: !(Maybe [V1CustomResourceDefinitionCondition]) -- ^ "conditions" - conditions indicate state for particular aspects of a CustomResourceDefinition+ , v1CustomResourceDefinitionStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the CRD controller.+ , v1CustomResourceDefinitionStatusStoredVersions :: !(Maybe [Text]) -- ^ "storedVersions" - storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceDefinitionStatus+instance A.FromJSON V1CustomResourceDefinitionStatus where+ parseJSON = A.withObject "V1CustomResourceDefinitionStatus" $ \o ->+ V1CustomResourceDefinitionStatus+ <$> (o .:? "acceptedNames")+ <*> (o .:? "conditions")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "storedVersions")++-- | ToJSON V1CustomResourceDefinitionStatus+instance A.ToJSON V1CustomResourceDefinitionStatus where+ toJSON V1CustomResourceDefinitionStatus {..} =+ _omitNulls+ [ "acceptedNames" .= v1CustomResourceDefinitionStatusAcceptedNames+ , "conditions" .= v1CustomResourceDefinitionStatusConditions+ , "observedGeneration" .= v1CustomResourceDefinitionStatusObservedGeneration+ , "storedVersions" .= v1CustomResourceDefinitionStatusStoredVersions+ ]+++-- | Construct a value of type 'V1CustomResourceDefinitionStatus' (by applying it's required fields, if any)+mkV1CustomResourceDefinitionStatus+ :: V1CustomResourceDefinitionStatus+mkV1CustomResourceDefinitionStatus =+ V1CustomResourceDefinitionStatus+ { v1CustomResourceDefinitionStatusAcceptedNames = Nothing+ , v1CustomResourceDefinitionStatusConditions = Nothing+ , v1CustomResourceDefinitionStatusObservedGeneration = Nothing+ , v1CustomResourceDefinitionStatusStoredVersions = Nothing+ }++-- ** V1CustomResourceDefinitionVersion+-- | V1CustomResourceDefinitionVersion+-- CustomResourceDefinitionVersion describes a version for CRD.+data V1CustomResourceDefinitionVersion = V1CustomResourceDefinitionVersion+ { v1CustomResourceDefinitionVersionAdditionalPrinterColumns :: !(Maybe [V1CustomResourceColumnDefinition]) -- ^ "additionalPrinterColumns" - additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.+ , v1CustomResourceDefinitionVersionDeprecated :: !(Maybe Bool) -- ^ "deprecated" - deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.+ , v1CustomResourceDefinitionVersionDeprecationWarning :: !(Maybe Text) -- ^ "deprecationWarning" - deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.+ , v1CustomResourceDefinitionVersionName :: !(Text) -- ^ /Required/ "name" - name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true.+ , v1CustomResourceDefinitionVersionSchema :: !(Maybe V1CustomResourceValidation) -- ^ "schema"+ , v1CustomResourceDefinitionVersionSelectableFields :: !(Maybe [V1SelectableField]) -- ^ "selectableFields" - selectableFields specifies paths to fields that may be used as field selectors. A maximum of 8 selectable fields are allowed. See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors+ , v1CustomResourceDefinitionVersionServed :: !(Bool) -- ^ /Required/ "served" - served is a flag enabling/disabling this version from being served via REST APIs+ , v1CustomResourceDefinitionVersionStorage :: !(Bool) -- ^ /Required/ "storage" - storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.+ , v1CustomResourceDefinitionVersionSubresources :: !(Maybe V1CustomResourceSubresources) -- ^ "subresources"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceDefinitionVersion+instance A.FromJSON V1CustomResourceDefinitionVersion where+ parseJSON = A.withObject "V1CustomResourceDefinitionVersion" $ \o ->+ V1CustomResourceDefinitionVersion+ <$> (o .:? "additionalPrinterColumns")+ <*> (o .:? "deprecated")+ <*> (o .:? "deprecationWarning")+ <*> (o .: "name")+ <*> (o .:? "schema")+ <*> (o .:? "selectableFields")+ <*> (o .: "served")+ <*> (o .: "storage")+ <*> (o .:? "subresources")++-- | ToJSON V1CustomResourceDefinitionVersion+instance A.ToJSON V1CustomResourceDefinitionVersion where+ toJSON V1CustomResourceDefinitionVersion {..} =+ _omitNulls+ [ "additionalPrinterColumns" .= v1CustomResourceDefinitionVersionAdditionalPrinterColumns+ , "deprecated" .= v1CustomResourceDefinitionVersionDeprecated+ , "deprecationWarning" .= v1CustomResourceDefinitionVersionDeprecationWarning+ , "name" .= v1CustomResourceDefinitionVersionName+ , "schema" .= v1CustomResourceDefinitionVersionSchema+ , "selectableFields" .= v1CustomResourceDefinitionVersionSelectableFields+ , "served" .= v1CustomResourceDefinitionVersionServed+ , "storage" .= v1CustomResourceDefinitionVersionStorage+ , "subresources" .= v1CustomResourceDefinitionVersionSubresources+ ]+++-- | Construct a value of type 'V1CustomResourceDefinitionVersion' (by applying it's required fields, if any)+mkV1CustomResourceDefinitionVersion+ :: Text -- ^ 'v1CustomResourceDefinitionVersionName': name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true.+ -> Bool -- ^ 'v1CustomResourceDefinitionVersionServed': served is a flag enabling/disabling this version from being served via REST APIs+ -> Bool -- ^ 'v1CustomResourceDefinitionVersionStorage': storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.+ -> V1CustomResourceDefinitionVersion+mkV1CustomResourceDefinitionVersion v1CustomResourceDefinitionVersionName v1CustomResourceDefinitionVersionServed v1CustomResourceDefinitionVersionStorage =+ V1CustomResourceDefinitionVersion+ { v1CustomResourceDefinitionVersionAdditionalPrinterColumns = Nothing+ , v1CustomResourceDefinitionVersionDeprecated = Nothing+ , v1CustomResourceDefinitionVersionDeprecationWarning = Nothing+ , v1CustomResourceDefinitionVersionName+ , v1CustomResourceDefinitionVersionSchema = Nothing+ , v1CustomResourceDefinitionVersionSelectableFields = Nothing+ , v1CustomResourceDefinitionVersionServed+ , v1CustomResourceDefinitionVersionStorage+ , v1CustomResourceDefinitionVersionSubresources = Nothing+ }++-- ** V1CustomResourceSubresourceScale+-- | V1CustomResourceSubresourceScale+-- CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.+data V1CustomResourceSubresourceScale = V1CustomResourceSubresourceScale+ { v1CustomResourceSubresourceScaleLabelSelectorPath :: !(Maybe Text) -- ^ "labelSelectorPath" - labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.+ , v1CustomResourceSubresourceScaleSpecReplicasPath :: !(Text) -- ^ /Required/ "specReplicasPath" - specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.+ , v1CustomResourceSubresourceScaleStatusReplicasPath :: !(Text) -- ^ /Required/ "statusReplicasPath" - statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceSubresourceScale+instance A.FromJSON V1CustomResourceSubresourceScale where+ parseJSON = A.withObject "V1CustomResourceSubresourceScale" $ \o ->+ V1CustomResourceSubresourceScale+ <$> (o .:? "labelSelectorPath")+ <*> (o .: "specReplicasPath")+ <*> (o .: "statusReplicasPath")++-- | ToJSON V1CustomResourceSubresourceScale+instance A.ToJSON V1CustomResourceSubresourceScale where+ toJSON V1CustomResourceSubresourceScale {..} =+ _omitNulls+ [ "labelSelectorPath" .= v1CustomResourceSubresourceScaleLabelSelectorPath+ , "specReplicasPath" .= v1CustomResourceSubresourceScaleSpecReplicasPath+ , "statusReplicasPath" .= v1CustomResourceSubresourceScaleStatusReplicasPath+ ]+++-- | Construct a value of type 'V1CustomResourceSubresourceScale' (by applying it's required fields, if any)+mkV1CustomResourceSubresourceScale+ :: Text -- ^ 'v1CustomResourceSubresourceScaleSpecReplicasPath': specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.+ -> Text -- ^ 'v1CustomResourceSubresourceScaleStatusReplicasPath': statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.+ -> V1CustomResourceSubresourceScale+mkV1CustomResourceSubresourceScale v1CustomResourceSubresourceScaleSpecReplicasPath v1CustomResourceSubresourceScaleStatusReplicasPath =+ V1CustomResourceSubresourceScale+ { v1CustomResourceSubresourceScaleLabelSelectorPath = Nothing+ , v1CustomResourceSubresourceScaleSpecReplicasPath+ , v1CustomResourceSubresourceScaleStatusReplicasPath+ }++-- ** V1CustomResourceSubresources+-- | V1CustomResourceSubresources+-- CustomResourceSubresources defines the status and scale subresources for CustomResources.+data V1CustomResourceSubresources = V1CustomResourceSubresources+ { v1CustomResourceSubresourcesScale :: !(Maybe V1CustomResourceSubresourceScale) -- ^ "scale"+ , v1CustomResourceSubresourcesStatus :: !(Maybe A.Value) -- ^ "status" - status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceSubresources+instance A.FromJSON V1CustomResourceSubresources where+ parseJSON = A.withObject "V1CustomResourceSubresources" $ \o ->+ V1CustomResourceSubresources+ <$> (o .:? "scale")+ <*> (o .:? "status")++-- | ToJSON V1CustomResourceSubresources+instance A.ToJSON V1CustomResourceSubresources where+ toJSON V1CustomResourceSubresources {..} =+ _omitNulls+ [ "scale" .= v1CustomResourceSubresourcesScale+ , "status" .= v1CustomResourceSubresourcesStatus+ ]+++-- | Construct a value of type 'V1CustomResourceSubresources' (by applying it's required fields, if any)+mkV1CustomResourceSubresources+ :: V1CustomResourceSubresources+mkV1CustomResourceSubresources =+ V1CustomResourceSubresources+ { v1CustomResourceSubresourcesScale = Nothing+ , v1CustomResourceSubresourcesStatus = Nothing+ }++-- ** V1CustomResourceValidation+-- | V1CustomResourceValidation+-- CustomResourceValidation is a list of validation methods for CustomResources.+data V1CustomResourceValidation = V1CustomResourceValidation+ { v1CustomResourceValidationOpenApiv3Schema :: !(Maybe V1JSONSchemaProps) -- ^ "openAPIV3Schema"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1CustomResourceValidation+instance A.FromJSON V1CustomResourceValidation where+ parseJSON = A.withObject "V1CustomResourceValidation" $ \o ->+ V1CustomResourceValidation+ <$> (o .:? "openAPIV3Schema")++-- | ToJSON V1CustomResourceValidation+instance A.ToJSON V1CustomResourceValidation where+ toJSON V1CustomResourceValidation {..} =+ _omitNulls+ [ "openAPIV3Schema" .= v1CustomResourceValidationOpenApiv3Schema+ ]+++-- | Construct a value of type 'V1CustomResourceValidation' (by applying it's required fields, if any)+mkV1CustomResourceValidation+ :: V1CustomResourceValidation+mkV1CustomResourceValidation =+ V1CustomResourceValidation+ { v1CustomResourceValidationOpenApiv3Schema = Nothing+ }++-- ** V1DaemonEndpoint+-- | V1DaemonEndpoint+-- DaemonEndpoint contains information about a single Daemon endpoint.+data V1DaemonEndpoint = V1DaemonEndpoint+ { v1DaemonEndpointPort :: !(Int) -- ^ /Required/ "Port" - Port number of the given endpoint.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DaemonEndpoint+instance A.FromJSON V1DaemonEndpoint where+ parseJSON = A.withObject "V1DaemonEndpoint" $ \o ->+ V1DaemonEndpoint+ <$> (o .: "Port")++-- | ToJSON V1DaemonEndpoint+instance A.ToJSON V1DaemonEndpoint where+ toJSON V1DaemonEndpoint {..} =+ _omitNulls+ [ "Port" .= v1DaemonEndpointPort+ ]+++-- | Construct a value of type 'V1DaemonEndpoint' (by applying it's required fields, if any)+mkV1DaemonEndpoint+ :: Int -- ^ 'v1DaemonEndpointPort': Port number of the given endpoint.+ -> V1DaemonEndpoint+mkV1DaemonEndpoint v1DaemonEndpointPort =+ V1DaemonEndpoint+ { v1DaemonEndpointPort+ }++-- ** V1DaemonSet+-- | V1DaemonSet+-- DaemonSet represents the configuration of a daemon set.+data V1DaemonSet = V1DaemonSet+ { v1DaemonSetApiVersion :: !(Maybe Text) -- ^ "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+ , v1DaemonSetKind :: !(Maybe Text) -- ^ "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+ , v1DaemonSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1DaemonSetSpec :: !(Maybe V1DaemonSetSpec) -- ^ "spec"+ , v1DaemonSetStatus :: !(Maybe V1DaemonSetStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DaemonSet+instance A.FromJSON V1DaemonSet where+ parseJSON = A.withObject "V1DaemonSet" $ \o ->+ V1DaemonSet+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1DaemonSet+instance A.ToJSON V1DaemonSet where+ toJSON V1DaemonSet {..} =+ _omitNulls+ [ "apiVersion" .= v1DaemonSetApiVersion+ , "kind" .= v1DaemonSetKind+ , "metadata" .= v1DaemonSetMetadata+ , "spec" .= v1DaemonSetSpec+ , "status" .= v1DaemonSetStatus+ ]+++-- | Construct a value of type 'V1DaemonSet' (by applying it's required fields, if any)+mkV1DaemonSet+ :: V1DaemonSet+mkV1DaemonSet =+ V1DaemonSet+ { v1DaemonSetApiVersion = Nothing+ , v1DaemonSetKind = Nothing+ , v1DaemonSetMetadata = Nothing+ , v1DaemonSetSpec = Nothing+ , v1DaemonSetStatus = Nothing+ }++-- ** V1DaemonSetCondition+-- | V1DaemonSetCondition+-- DaemonSetCondition describes the state of a DaemonSet at a certain point.+data V1DaemonSetCondition = V1DaemonSetCondition+ { v1DaemonSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.+ , v1DaemonSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.+ , v1DaemonSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.+ , v1DaemonSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1DaemonSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of DaemonSet condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DaemonSetCondition+instance A.FromJSON V1DaemonSetCondition where+ parseJSON = A.withObject "V1DaemonSetCondition" $ \o ->+ V1DaemonSetCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1DaemonSetCondition+instance A.ToJSON V1DaemonSetCondition where+ toJSON V1DaemonSetCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1DaemonSetConditionLastTransitionTime+ , "message" .= v1DaemonSetConditionMessage+ , "reason" .= v1DaemonSetConditionReason+ , "status" .= v1DaemonSetConditionStatus+ , "type" .= v1DaemonSetConditionType+ ]+++-- | Construct a value of type 'V1DaemonSetCondition' (by applying it's required fields, if any)+mkV1DaemonSetCondition+ :: Text -- ^ 'v1DaemonSetConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1DaemonSetConditionType': Type of DaemonSet condition.+ -> V1DaemonSetCondition+mkV1DaemonSetCondition v1DaemonSetConditionStatus v1DaemonSetConditionType =+ V1DaemonSetCondition+ { v1DaemonSetConditionLastTransitionTime = Nothing+ , v1DaemonSetConditionMessage = Nothing+ , v1DaemonSetConditionReason = Nothing+ , v1DaemonSetConditionStatus+ , v1DaemonSetConditionType+ }++-- ** V1DaemonSetList+-- | V1DaemonSetList+-- DaemonSetList is a collection of daemon sets.+data V1DaemonSetList = V1DaemonSetList+ { v1DaemonSetListApiVersion :: !(Maybe Text) -- ^ "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+ , v1DaemonSetListItems :: !([V1DaemonSet]) -- ^ /Required/ "items" - A list of daemon sets.+ , v1DaemonSetListKind :: !(Maybe Text) -- ^ "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+ , v1DaemonSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DaemonSetList+instance A.FromJSON V1DaemonSetList where+ parseJSON = A.withObject "V1DaemonSetList" $ \o ->+ V1DaemonSetList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1DaemonSetList+instance A.ToJSON V1DaemonSetList where+ toJSON V1DaemonSetList {..} =+ _omitNulls+ [ "apiVersion" .= v1DaemonSetListApiVersion+ , "items" .= v1DaemonSetListItems+ , "kind" .= v1DaemonSetListKind+ , "metadata" .= v1DaemonSetListMetadata+ ]+++-- | Construct a value of type 'V1DaemonSetList' (by applying it's required fields, if any)+mkV1DaemonSetList+ :: [V1DaemonSet] -- ^ 'v1DaemonSetListItems': A list of daemon sets.+ -> V1DaemonSetList+mkV1DaemonSetList v1DaemonSetListItems =+ V1DaemonSetList+ { v1DaemonSetListApiVersion = Nothing+ , v1DaemonSetListItems+ , v1DaemonSetListKind = Nothing+ , v1DaemonSetListMetadata = Nothing+ }++-- ** V1DaemonSetSpec+-- | V1DaemonSetSpec+-- DaemonSetSpec is the specification of a daemon set.+data V1DaemonSetSpec = V1DaemonSetSpec+ { v1DaemonSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - The minimum number of seconds for which a newly created DaemonSet 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).+ , v1DaemonSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.+ , v1DaemonSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"+ , v1DaemonSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"+ , v1DaemonSetSpecUpdateStrategy :: !(Maybe V1DaemonSetUpdateStrategy) -- ^ "updateStrategy"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DaemonSetSpec+instance A.FromJSON V1DaemonSetSpec where+ parseJSON = A.withObject "V1DaemonSetSpec" $ \o ->+ V1DaemonSetSpec+ <$> (o .:? "minReadySeconds")+ <*> (o .:? "revisionHistoryLimit")+ <*> (o .: "selector")+ <*> (o .: "template")+ <*> (o .:? "updateStrategy")++-- | ToJSON V1DaemonSetSpec+instance A.ToJSON V1DaemonSetSpec where+ toJSON V1DaemonSetSpec {..} =+ _omitNulls+ [ "minReadySeconds" .= v1DaemonSetSpecMinReadySeconds+ , "revisionHistoryLimit" .= v1DaemonSetSpecRevisionHistoryLimit+ , "selector" .= v1DaemonSetSpecSelector+ , "template" .= v1DaemonSetSpecTemplate+ , "updateStrategy" .= v1DaemonSetSpecUpdateStrategy+ ]+++-- | Construct a value of type 'V1DaemonSetSpec' (by applying it's required fields, if any)+mkV1DaemonSetSpec+ :: V1LabelSelector -- ^ 'v1DaemonSetSpecSelector' + -> V1PodTemplateSpec -- ^ 'v1DaemonSetSpecTemplate' + -> V1DaemonSetSpec+mkV1DaemonSetSpec v1DaemonSetSpecSelector v1DaemonSetSpecTemplate =+ V1DaemonSetSpec+ { v1DaemonSetSpecMinReadySeconds = Nothing+ , v1DaemonSetSpecRevisionHistoryLimit = Nothing+ , v1DaemonSetSpecSelector+ , v1DaemonSetSpecTemplate+ , v1DaemonSetSpecUpdateStrategy = Nothing+ }++-- ** V1DaemonSetStatus+-- | V1DaemonSetStatus+-- DaemonSetStatus represents the current status of a daemon set.+data V1DaemonSetStatus = V1DaemonSetStatus+ { v1DaemonSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.+ , v1DaemonSetStatusConditions :: !(Maybe [V1DaemonSetCondition]) -- ^ "conditions" - Represents the latest available observations of a DaemonSet's current state.+ , v1DaemonSetStatusCurrentNumberScheduled :: !(Int) -- ^ /Required/ "currentNumberScheduled" - The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/+ , v1DaemonSetStatusDesiredNumberScheduled :: !(Int) -- ^ /Required/ "desiredNumberScheduled" - The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/+ , v1DaemonSetStatusNumberAvailable :: !(Maybe Int) -- ^ "numberAvailable" - The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)+ , v1DaemonSetStatusNumberMisscheduled :: !(Int) -- ^ /Required/ "numberMisscheduled" - The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/+ , v1DaemonSetStatusNumberReady :: !(Int) -- ^ /Required/ "numberReady" - numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.+ , v1DaemonSetStatusNumberUnavailable :: !(Maybe Int) -- ^ "numberUnavailable" - The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)+ , v1DaemonSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The most recent generation observed by the daemon set controller.+ , v1DaemonSetStatusUpdatedNumberScheduled :: !(Maybe Int) -- ^ "updatedNumberScheduled" - The total number of nodes that are running updated daemon pod+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DaemonSetStatus+instance A.FromJSON V1DaemonSetStatus where+ parseJSON = A.withObject "V1DaemonSetStatus" $ \o ->+ V1DaemonSetStatus+ <$> (o .:? "collisionCount")+ <*> (o .:? "conditions")+ <*> (o .: "currentNumberScheduled")+ <*> (o .: "desiredNumberScheduled")+ <*> (o .:? "numberAvailable")+ <*> (o .: "numberMisscheduled")+ <*> (o .: "numberReady")+ <*> (o .:? "numberUnavailable")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "updatedNumberScheduled")++-- | ToJSON V1DaemonSetStatus+instance A.ToJSON V1DaemonSetStatus where+ toJSON V1DaemonSetStatus {..} =+ _omitNulls+ [ "collisionCount" .= v1DaemonSetStatusCollisionCount+ , "conditions" .= v1DaemonSetStatusConditions+ , "currentNumberScheduled" .= v1DaemonSetStatusCurrentNumberScheduled+ , "desiredNumberScheduled" .= v1DaemonSetStatusDesiredNumberScheduled+ , "numberAvailable" .= v1DaemonSetStatusNumberAvailable+ , "numberMisscheduled" .= v1DaemonSetStatusNumberMisscheduled+ , "numberReady" .= v1DaemonSetStatusNumberReady+ , "numberUnavailable" .= v1DaemonSetStatusNumberUnavailable+ , "observedGeneration" .= v1DaemonSetStatusObservedGeneration+ , "updatedNumberScheduled" .= v1DaemonSetStatusUpdatedNumberScheduled+ ]+++-- | Construct a value of type 'V1DaemonSetStatus' (by applying it's required fields, if any)+mkV1DaemonSetStatus+ :: Int -- ^ 'v1DaemonSetStatusCurrentNumberScheduled': The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/+ -> Int -- ^ 'v1DaemonSetStatusDesiredNumberScheduled': The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/+ -> Int -- ^ 'v1DaemonSetStatusNumberMisscheduled': The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/+ -> Int -- ^ 'v1DaemonSetStatusNumberReady': numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.+ -> V1DaemonSetStatus+mkV1DaemonSetStatus v1DaemonSetStatusCurrentNumberScheduled v1DaemonSetStatusDesiredNumberScheduled v1DaemonSetStatusNumberMisscheduled v1DaemonSetStatusNumberReady =+ V1DaemonSetStatus+ { v1DaemonSetStatusCollisionCount = Nothing+ , v1DaemonSetStatusConditions = Nothing+ , v1DaemonSetStatusCurrentNumberScheduled+ , v1DaemonSetStatusDesiredNumberScheduled+ , v1DaemonSetStatusNumberAvailable = Nothing+ , v1DaemonSetStatusNumberMisscheduled+ , v1DaemonSetStatusNumberReady+ , v1DaemonSetStatusNumberUnavailable = Nothing+ , v1DaemonSetStatusObservedGeneration = Nothing+ , v1DaemonSetStatusUpdatedNumberScheduled = Nothing+ }++-- ** V1DaemonSetUpdateStrategy+-- | V1DaemonSetUpdateStrategy+-- DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.+data V1DaemonSetUpdateStrategy = V1DaemonSetUpdateStrategy+ { v1DaemonSetUpdateStrategyRollingUpdate :: !(Maybe V1RollingUpdateDaemonSet) -- ^ "rollingUpdate"+ , v1DaemonSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DaemonSetUpdateStrategy+instance A.FromJSON V1DaemonSetUpdateStrategy where+ parseJSON = A.withObject "V1DaemonSetUpdateStrategy" $ \o ->+ V1DaemonSetUpdateStrategy+ <$> (o .:? "rollingUpdate")+ <*> (o .:? "type")++-- | ToJSON V1DaemonSetUpdateStrategy+instance A.ToJSON V1DaemonSetUpdateStrategy where+ toJSON V1DaemonSetUpdateStrategy {..} =+ _omitNulls+ [ "rollingUpdate" .= v1DaemonSetUpdateStrategyRollingUpdate+ , "type" .= v1DaemonSetUpdateStrategyType+ ]+++-- | Construct a value of type 'V1DaemonSetUpdateStrategy' (by applying it's required fields, if any)+mkV1DaemonSetUpdateStrategy+ :: V1DaemonSetUpdateStrategy+mkV1DaemonSetUpdateStrategy =+ V1DaemonSetUpdateStrategy+ { v1DaemonSetUpdateStrategyRollingUpdate = Nothing+ , v1DaemonSetUpdateStrategyType = Nothing+ }++-- ** V1DeleteOptions+-- | V1DeleteOptions+-- DeleteOptions may be provided when deleting an API object.+data V1DeleteOptions = V1DeleteOptions+ { v1DeleteOptionsApiVersion :: !(Maybe Text) -- ^ "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+ , v1DeleteOptionsDryRun :: !(Maybe [Text]) -- ^ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed+ , v1DeleteOptionsGracePeriodSeconds :: !(Maybe Integer) -- ^ "gracePeriodSeconds" - 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.+ , v1DeleteOptionsIgnoreStoreReadErrorWithClusterBreakingPotential :: !(Maybe Bool) -- ^ "ignoreStoreReadErrorWithClusterBreakingPotential" - 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+ , v1DeleteOptionsKind :: !(Maybe Text) -- ^ "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+ , v1DeleteOptionsOrphanDependents :: !(Maybe Bool) -- ^ "orphanDependents" - 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.+ , v1DeleteOptionsPreconditions :: !(Maybe V1Preconditions) -- ^ "preconditions"+ , v1DeleteOptionsPropagationPolicy :: !(Maybe Text) -- ^ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeleteOptions+instance A.FromJSON V1DeleteOptions where+ parseJSON = A.withObject "V1DeleteOptions" $ \o ->+ V1DeleteOptions+ <$> (o .:? "apiVersion")+ <*> (o .:? "dryRun")+ <*> (o .:? "gracePeriodSeconds")+ <*> (o .:? "ignoreStoreReadErrorWithClusterBreakingPotential")+ <*> (o .:? "kind")+ <*> (o .:? "orphanDependents")+ <*> (o .:? "preconditions")+ <*> (o .:? "propagationPolicy")++-- | ToJSON V1DeleteOptions+instance A.ToJSON V1DeleteOptions where+ toJSON V1DeleteOptions {..} =+ _omitNulls+ [ "apiVersion" .= v1DeleteOptionsApiVersion+ , "dryRun" .= v1DeleteOptionsDryRun+ , "gracePeriodSeconds" .= v1DeleteOptionsGracePeriodSeconds+ , "ignoreStoreReadErrorWithClusterBreakingPotential" .= v1DeleteOptionsIgnoreStoreReadErrorWithClusterBreakingPotential+ , "kind" .= v1DeleteOptionsKind+ , "orphanDependents" .= v1DeleteOptionsOrphanDependents+ , "preconditions" .= v1DeleteOptionsPreconditions+ , "propagationPolicy" .= v1DeleteOptionsPropagationPolicy+ ]+++-- | Construct a value of type 'V1DeleteOptions' (by applying it's required fields, if any)+mkV1DeleteOptions+ :: V1DeleteOptions+mkV1DeleteOptions =+ V1DeleteOptions+ { v1DeleteOptionsApiVersion = Nothing+ , v1DeleteOptionsDryRun = Nothing+ , v1DeleteOptionsGracePeriodSeconds = Nothing+ , v1DeleteOptionsIgnoreStoreReadErrorWithClusterBreakingPotential = Nothing+ , v1DeleteOptionsKind = Nothing+ , v1DeleteOptionsOrphanDependents = Nothing+ , v1DeleteOptionsPreconditions = Nothing+ , v1DeleteOptionsPropagationPolicy = Nothing+ }++-- ** V1Deployment+-- | V1Deployment+-- Deployment enables declarative updates for Pods and ReplicaSets.+data V1Deployment = V1Deployment+ { v1DeploymentApiVersion :: !(Maybe Text) -- ^ "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+ , v1DeploymentKind :: !(Maybe Text) -- ^ "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+ , v1DeploymentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1DeploymentSpec :: !(Maybe V1DeploymentSpec) -- ^ "spec"+ , v1DeploymentStatus :: !(Maybe V1DeploymentStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Deployment+instance A.FromJSON V1Deployment where+ parseJSON = A.withObject "V1Deployment" $ \o ->+ V1Deployment+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1Deployment+instance A.ToJSON V1Deployment where+ toJSON V1Deployment {..} =+ _omitNulls+ [ "apiVersion" .= v1DeploymentApiVersion+ , "kind" .= v1DeploymentKind+ , "metadata" .= v1DeploymentMetadata+ , "spec" .= v1DeploymentSpec+ , "status" .= v1DeploymentStatus+ ]+++-- | Construct a value of type 'V1Deployment' (by applying it's required fields, if any)+mkV1Deployment+ :: V1Deployment+mkV1Deployment =+ V1Deployment+ { v1DeploymentApiVersion = Nothing+ , v1DeploymentKind = Nothing+ , v1DeploymentMetadata = Nothing+ , v1DeploymentSpec = Nothing+ , v1DeploymentStatus = Nothing+ }++-- ** V1DeploymentCondition+-- | V1DeploymentCondition+-- DeploymentCondition describes the state of a deployment at a certain point.+data V1DeploymentCondition = V1DeploymentCondition+ { v1DeploymentConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.+ , v1DeploymentConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - The last time this condition was updated.+ , v1DeploymentConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.+ , v1DeploymentConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.+ , v1DeploymentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1DeploymentConditionType :: !(Text) -- ^ /Required/ "type" - Type of deployment condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeploymentCondition+instance A.FromJSON V1DeploymentCondition where+ parseJSON = A.withObject "V1DeploymentCondition" $ \o ->+ V1DeploymentCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "lastUpdateTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1DeploymentCondition+instance A.ToJSON V1DeploymentCondition where+ toJSON V1DeploymentCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1DeploymentConditionLastTransitionTime+ , "lastUpdateTime" .= v1DeploymentConditionLastUpdateTime+ , "message" .= v1DeploymentConditionMessage+ , "reason" .= v1DeploymentConditionReason+ , "status" .= v1DeploymentConditionStatus+ , "type" .= v1DeploymentConditionType+ ]+++-- | Construct a value of type 'V1DeploymentCondition' (by applying it's required fields, if any)+mkV1DeploymentCondition+ :: Text -- ^ 'v1DeploymentConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1DeploymentConditionType': Type of deployment condition.+ -> V1DeploymentCondition+mkV1DeploymentCondition v1DeploymentConditionStatus v1DeploymentConditionType =+ V1DeploymentCondition+ { v1DeploymentConditionLastTransitionTime = Nothing+ , v1DeploymentConditionLastUpdateTime = Nothing+ , v1DeploymentConditionMessage = Nothing+ , v1DeploymentConditionReason = Nothing+ , v1DeploymentConditionStatus+ , v1DeploymentConditionType+ }++-- ** V1DeploymentList+-- | V1DeploymentList+-- DeploymentList is a list of Deployments.+data V1DeploymentList = V1DeploymentList+ { v1DeploymentListApiVersion :: !(Maybe Text) -- ^ "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+ , v1DeploymentListItems :: !([V1Deployment]) -- ^ /Required/ "items" - Items is the list of Deployments.+ , v1DeploymentListKind :: !(Maybe Text) -- ^ "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+ , v1DeploymentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeploymentList+instance A.FromJSON V1DeploymentList where+ parseJSON = A.withObject "V1DeploymentList" $ \o ->+ V1DeploymentList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1DeploymentList+instance A.ToJSON V1DeploymentList where+ toJSON V1DeploymentList {..} =+ _omitNulls+ [ "apiVersion" .= v1DeploymentListApiVersion+ , "items" .= v1DeploymentListItems+ , "kind" .= v1DeploymentListKind+ , "metadata" .= v1DeploymentListMetadata+ ]+++-- | Construct a value of type 'V1DeploymentList' (by applying it's required fields, if any)+mkV1DeploymentList+ :: [V1Deployment] -- ^ 'v1DeploymentListItems': Items is the list of Deployments.+ -> V1DeploymentList+mkV1DeploymentList v1DeploymentListItems =+ V1DeploymentList+ { v1DeploymentListApiVersion = Nothing+ , v1DeploymentListItems+ , v1DeploymentListKind = Nothing+ , v1DeploymentListMetadata = Nothing+ }++-- ** V1DeploymentSpec+-- | V1DeploymentSpec+-- DeploymentSpec is the specification of the desired behavior of the Deployment.+data V1DeploymentSpec = V1DeploymentSpec+ { v1DeploymentSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - 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)+ , v1DeploymentSpecPaused :: !(Maybe Bool) -- ^ "paused" - Indicates that the deployment is paused.+ , v1DeploymentSpecProgressDeadlineSeconds :: !(Maybe Int) -- ^ "progressDeadlineSeconds" - The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.+ , v1DeploymentSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.+ , v1DeploymentSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.+ , v1DeploymentSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"+ , v1DeploymentSpecStrategy :: !(Maybe V1DeploymentStrategy) -- ^ "strategy"+ , v1DeploymentSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeploymentSpec+instance A.FromJSON V1DeploymentSpec where+ parseJSON = A.withObject "V1DeploymentSpec" $ \o ->+ V1DeploymentSpec+ <$> (o .:? "minReadySeconds")+ <*> (o .:? "paused")+ <*> (o .:? "progressDeadlineSeconds")+ <*> (o .:? "replicas")+ <*> (o .:? "revisionHistoryLimit")+ <*> (o .: "selector")+ <*> (o .:? "strategy")+ <*> (o .: "template")++-- | ToJSON V1DeploymentSpec+instance A.ToJSON V1DeploymentSpec where+ toJSON V1DeploymentSpec {..} =+ _omitNulls+ [ "minReadySeconds" .= v1DeploymentSpecMinReadySeconds+ , "paused" .= v1DeploymentSpecPaused+ , "progressDeadlineSeconds" .= v1DeploymentSpecProgressDeadlineSeconds+ , "replicas" .= v1DeploymentSpecReplicas+ , "revisionHistoryLimit" .= v1DeploymentSpecRevisionHistoryLimit+ , "selector" .= v1DeploymentSpecSelector+ , "strategy" .= v1DeploymentSpecStrategy+ , "template" .= v1DeploymentSpecTemplate+ ]+++-- | Construct a value of type 'V1DeploymentSpec' (by applying it's required fields, if any)+mkV1DeploymentSpec+ :: V1LabelSelector -- ^ 'v1DeploymentSpecSelector' + -> V1PodTemplateSpec -- ^ 'v1DeploymentSpecTemplate' + -> V1DeploymentSpec+mkV1DeploymentSpec v1DeploymentSpecSelector v1DeploymentSpecTemplate =+ V1DeploymentSpec+ { v1DeploymentSpecMinReadySeconds = Nothing+ , v1DeploymentSpecPaused = Nothing+ , v1DeploymentSpecProgressDeadlineSeconds = Nothing+ , v1DeploymentSpecReplicas = Nothing+ , v1DeploymentSpecRevisionHistoryLimit = Nothing+ , v1DeploymentSpecSelector+ , v1DeploymentSpecStrategy = Nothing+ , v1DeploymentSpecTemplate+ }++-- ** V1DeploymentStatus+-- | V1DeploymentStatus+-- DeploymentStatus is the most recently observed status of the Deployment.+data V1DeploymentStatus = V1DeploymentStatus+ { v1DeploymentStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - Total number of available non-terminating pods (ready for at least minReadySeconds) targeted by this deployment.+ , v1DeploymentStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.+ , v1DeploymentStatusConditions :: !(Maybe [V1DeploymentCondition]) -- ^ "conditions" - Represents the latest available observations of a deployment's current state.+ , v1DeploymentStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the deployment controller.+ , v1DeploymentStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - Total number of non-terminating pods targeted by this Deployment with a Ready Condition.+ , v1DeploymentStatusReplicas :: !(Maybe Int) -- ^ "replicas" - Total number of non-terminating pods targeted by this deployment (their labels match the selector).+ , v1DeploymentStatusTerminatingReplicas :: !(Maybe Int) -- ^ "terminatingReplicas" - Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).+ , v1DeploymentStatusUnavailableReplicas :: !(Maybe Int) -- ^ "unavailableReplicas" - Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.+ , v1DeploymentStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - Total number of non-terminating pods targeted by this deployment that have the desired template spec.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeploymentStatus+instance A.FromJSON V1DeploymentStatus where+ parseJSON = A.withObject "V1DeploymentStatus" $ \o ->+ V1DeploymentStatus+ <$> (o .:? "availableReplicas")+ <*> (o .:? "collisionCount")+ <*> (o .:? "conditions")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "readyReplicas")+ <*> (o .:? "replicas")+ <*> (o .:? "terminatingReplicas")+ <*> (o .:? "unavailableReplicas")+ <*> (o .:? "updatedReplicas")++-- | ToJSON V1DeploymentStatus+instance A.ToJSON V1DeploymentStatus where+ toJSON V1DeploymentStatus {..} =+ _omitNulls+ [ "availableReplicas" .= v1DeploymentStatusAvailableReplicas+ , "collisionCount" .= v1DeploymentStatusCollisionCount+ , "conditions" .= v1DeploymentStatusConditions+ , "observedGeneration" .= v1DeploymentStatusObservedGeneration+ , "readyReplicas" .= v1DeploymentStatusReadyReplicas+ , "replicas" .= v1DeploymentStatusReplicas+ , "terminatingReplicas" .= v1DeploymentStatusTerminatingReplicas+ , "unavailableReplicas" .= v1DeploymentStatusUnavailableReplicas+ , "updatedReplicas" .= v1DeploymentStatusUpdatedReplicas+ ]+++-- | Construct a value of type 'V1DeploymentStatus' (by applying it's required fields, if any)+mkV1DeploymentStatus+ :: V1DeploymentStatus+mkV1DeploymentStatus =+ V1DeploymentStatus+ { v1DeploymentStatusAvailableReplicas = Nothing+ , v1DeploymentStatusCollisionCount = Nothing+ , v1DeploymentStatusConditions = Nothing+ , v1DeploymentStatusObservedGeneration = Nothing+ , v1DeploymentStatusReadyReplicas = Nothing+ , v1DeploymentStatusReplicas = Nothing+ , v1DeploymentStatusTerminatingReplicas = Nothing+ , v1DeploymentStatusUnavailableReplicas = Nothing+ , v1DeploymentStatusUpdatedReplicas = Nothing+ }++-- ** V1DeploymentStrategy+-- | V1DeploymentStrategy+-- DeploymentStrategy describes how to replace existing pods with new ones.+data V1DeploymentStrategy = V1DeploymentStrategy+ { v1DeploymentStrategyRollingUpdate :: !(Maybe V1RollingUpdateDeployment) -- ^ "rollingUpdate"+ , v1DeploymentStrategyType :: !(Maybe Text) -- ^ "type" - Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeploymentStrategy+instance A.FromJSON V1DeploymentStrategy where+ parseJSON = A.withObject "V1DeploymentStrategy" $ \o ->+ V1DeploymentStrategy+ <$> (o .:? "rollingUpdate")+ <*> (o .:? "type")++-- | ToJSON V1DeploymentStrategy+instance A.ToJSON V1DeploymentStrategy where+ toJSON V1DeploymentStrategy {..} =+ _omitNulls+ [ "rollingUpdate" .= v1DeploymentStrategyRollingUpdate+ , "type" .= v1DeploymentStrategyType+ ]+++-- | Construct a value of type 'V1DeploymentStrategy' (by applying it's required fields, if any)+mkV1DeploymentStrategy+ :: V1DeploymentStrategy+mkV1DeploymentStrategy =+ V1DeploymentStrategy+ { v1DeploymentStrategyRollingUpdate = Nothing+ , v1DeploymentStrategyType = Nothing+ }++-- ** V1Device+-- | V1Device+-- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.+data V1Device = V1Device+ { v1DeviceAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the device. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.+ , v1DeviceAllowMultipleAllocations :: !(Maybe Bool) -- ^ "allowMultipleAllocations" - AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.+ , v1DeviceAttributes :: !(Maybe (Map.Map String V1DeviceAttribute)) -- ^ "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.+ , v1DeviceBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. The maximum number of binding conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1DeviceBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to \"True\", a binding failure occurred. The maximum number of binding failure conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1DeviceBindsToNode :: !(Maybe Bool) -- ^ "bindsToNode" - BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1DeviceCapacity :: !(Maybe (Map.Map String V1DeviceCapacity)) -- ^ "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.+ , v1DeviceConsumesCounters :: !(Maybe [V1DeviceCounterConsumption]) -- ^ "consumesCounters" - ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. There can only be a single entry per counterSet. The maximum number of device counter consumptions per device is 2.+ , v1DeviceName :: !(Text) -- ^ /Required/ "name" - Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.+ , v1DeviceNodeName :: !(Maybe Text) -- ^ "nodeName" - NodeName identifies the node where the device is available. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.+ , v1DeviceNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ , v1DeviceTaints :: !(Maybe [V1DeviceTaint]) -- ^ "taints" - If specified, these are the driver-defined taints. The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Device+instance A.FromJSON V1Device where+ parseJSON = A.withObject "V1Device" $ \o ->+ V1Device+ <$> (o .:? "allNodes")+ <*> (o .:? "allowMultipleAllocations")+ <*> (o .:? "attributes")+ <*> (o .:? "bindingConditions")+ <*> (o .:? "bindingFailureConditions")+ <*> (o .:? "bindsToNode")+ <*> (o .:? "capacity")+ <*> (o .:? "consumesCounters")+ <*> (o .: "name")+ <*> (o .:? "nodeName")+ <*> (o .:? "nodeSelector")+ <*> (o .:? "taints")++-- | ToJSON V1Device+instance A.ToJSON V1Device where+ toJSON V1Device {..} =+ _omitNulls+ [ "allNodes" .= v1DeviceAllNodes+ , "allowMultipleAllocations" .= v1DeviceAllowMultipleAllocations+ , "attributes" .= v1DeviceAttributes+ , "bindingConditions" .= v1DeviceBindingConditions+ , "bindingFailureConditions" .= v1DeviceBindingFailureConditions+ , "bindsToNode" .= v1DeviceBindsToNode+ , "capacity" .= v1DeviceCapacity+ , "consumesCounters" .= v1DeviceConsumesCounters+ , "name" .= v1DeviceName+ , "nodeName" .= v1DeviceNodeName+ , "nodeSelector" .= v1DeviceNodeSelector+ , "taints" .= v1DeviceTaints+ ]+++-- | Construct a value of type 'V1Device' (by applying it's required fields, if any)+mkV1Device+ :: Text -- ^ 'v1DeviceName': Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.+ -> V1Device+mkV1Device v1DeviceName =+ V1Device+ { v1DeviceAllNodes = Nothing+ , v1DeviceAllowMultipleAllocations = Nothing+ , v1DeviceAttributes = Nothing+ , v1DeviceBindingConditions = Nothing+ , v1DeviceBindingFailureConditions = Nothing+ , v1DeviceBindsToNode = Nothing+ , v1DeviceCapacity = Nothing+ , v1DeviceConsumesCounters = Nothing+ , v1DeviceName+ , v1DeviceNodeName = Nothing+ , v1DeviceNodeSelector = Nothing+ , v1DeviceTaints = Nothing+ }++-- ** V1DeviceAllocationConfiguration+-- | V1DeviceAllocationConfiguration+-- DeviceAllocationConfiguration gets embedded in an AllocationResult.+data V1DeviceAllocationConfiguration = V1DeviceAllocationConfiguration+ { v1DeviceAllocationConfigurationOpaque :: !(Maybe V1OpaqueDeviceConfiguration) -- ^ "opaque"+ , v1DeviceAllocationConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.+ , v1DeviceAllocationConfigurationSource :: !(Text) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceAllocationConfiguration+instance A.FromJSON V1DeviceAllocationConfiguration where+ parseJSON = A.withObject "V1DeviceAllocationConfiguration" $ \o ->+ V1DeviceAllocationConfiguration+ <$> (o .:? "opaque")+ <*> (o .:? "requests")+ <*> (o .: "source")++-- | ToJSON V1DeviceAllocationConfiguration+instance A.ToJSON V1DeviceAllocationConfiguration where+ toJSON V1DeviceAllocationConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1DeviceAllocationConfigurationOpaque+ , "requests" .= v1DeviceAllocationConfigurationRequests+ , "source" .= v1DeviceAllocationConfigurationSource+ ]+++-- | Construct a value of type 'V1DeviceAllocationConfiguration' (by applying it's required fields, if any)+mkV1DeviceAllocationConfiguration+ :: Text -- ^ 'v1DeviceAllocationConfigurationSource': 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.+ -> V1DeviceAllocationConfiguration+mkV1DeviceAllocationConfiguration v1DeviceAllocationConfigurationSource =+ V1DeviceAllocationConfiguration+ { v1DeviceAllocationConfigurationOpaque = Nothing+ , v1DeviceAllocationConfigurationRequests = Nothing+ , v1DeviceAllocationConfigurationSource+ }++-- ** V1DeviceAllocationResult+-- | V1DeviceAllocationResult+-- DeviceAllocationResult is the result of allocating devices.+data V1DeviceAllocationResult = V1DeviceAllocationResult+ { v1DeviceAllocationResultConfig :: !(Maybe [V1DeviceAllocationConfiguration]) -- ^ "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.+ , v1DeviceAllocationResultResults :: !(Maybe [V1DeviceRequestAllocationResult]) -- ^ "results" - Results lists all allocated devices.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceAllocationResult+instance A.FromJSON V1DeviceAllocationResult where+ parseJSON = A.withObject "V1DeviceAllocationResult" $ \o ->+ V1DeviceAllocationResult+ <$> (o .:? "config")+ <*> (o .:? "results")++-- | ToJSON V1DeviceAllocationResult+instance A.ToJSON V1DeviceAllocationResult where+ toJSON V1DeviceAllocationResult {..} =+ _omitNulls+ [ "config" .= v1DeviceAllocationResultConfig+ , "results" .= v1DeviceAllocationResultResults+ ]+++-- | Construct a value of type 'V1DeviceAllocationResult' (by applying it's required fields, if any)+mkV1DeviceAllocationResult+ :: V1DeviceAllocationResult+mkV1DeviceAllocationResult =+ V1DeviceAllocationResult+ { v1DeviceAllocationResultConfig = Nothing+ , v1DeviceAllocationResultResults = Nothing+ }++-- ** V1DeviceAttribute+-- | V1DeviceAttribute+-- DeviceAttribute must have exactly one field set.+data V1DeviceAttribute = V1DeviceAttribute+ { v1DeviceAttributeBool :: !(Maybe Bool) -- ^ "bool" - BoolValue is a true/false value.+ , v1DeviceAttributeInt :: !(Maybe Integer) -- ^ "int" - IntValue is a number.+ , v1DeviceAttributeString :: !(Maybe Text) -- ^ "string" - StringValue is a string. Must not be longer than 64 characters.+ , v1DeviceAttributeVersion :: !(Maybe Text) -- ^ "version" - VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceAttribute+instance A.FromJSON V1DeviceAttribute where+ parseJSON = A.withObject "V1DeviceAttribute" $ \o ->+ V1DeviceAttribute+ <$> (o .:? "bool")+ <*> (o .:? "int")+ <*> (o .:? "string")+ <*> (o .:? "version")++-- | ToJSON V1DeviceAttribute+instance A.ToJSON V1DeviceAttribute where+ toJSON V1DeviceAttribute {..} =+ _omitNulls+ [ "bool" .= v1DeviceAttributeBool+ , "int" .= v1DeviceAttributeInt+ , "string" .= v1DeviceAttributeString+ , "version" .= v1DeviceAttributeVersion+ ]+++-- | Construct a value of type 'V1DeviceAttribute' (by applying it's required fields, if any)+mkV1DeviceAttribute+ :: V1DeviceAttribute+mkV1DeviceAttribute =+ V1DeviceAttribute+ { v1DeviceAttributeBool = Nothing+ , v1DeviceAttributeInt = Nothing+ , v1DeviceAttributeString = Nothing+ , v1DeviceAttributeVersion = Nothing+ }++-- ** V1DeviceCapacity+-- | V1DeviceCapacity+-- DeviceCapacity describes a quantity associated with a device.+data V1DeviceCapacity = V1DeviceCapacity+ { v1DeviceCapacityRequestPolicy :: !(Maybe V1CapacityRequestPolicy) -- ^ "requestPolicy"+ , v1DeviceCapacityValue :: !(Quantity) -- ^ /Required/ "value"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceCapacity+instance A.FromJSON V1DeviceCapacity where+ parseJSON = A.withObject "V1DeviceCapacity" $ \o ->+ V1DeviceCapacity+ <$> (o .:? "requestPolicy")+ <*> (o .: "value")++-- | ToJSON V1DeviceCapacity+instance A.ToJSON V1DeviceCapacity where+ toJSON V1DeviceCapacity {..} =+ _omitNulls+ [ "requestPolicy" .= v1DeviceCapacityRequestPolicy+ , "value" .= v1DeviceCapacityValue+ ]+++-- | Construct a value of type 'V1DeviceCapacity' (by applying it's required fields, if any)+mkV1DeviceCapacity+ :: Quantity -- ^ 'v1DeviceCapacityValue' + -> V1DeviceCapacity+mkV1DeviceCapacity v1DeviceCapacityValue =+ V1DeviceCapacity+ { v1DeviceCapacityRequestPolicy = Nothing+ , v1DeviceCapacityValue+ }++-- ** V1DeviceClaim+-- | V1DeviceClaim+-- DeviceClaim defines how to request devices with a ResourceClaim.+data V1DeviceClaim = V1DeviceClaim+ { v1DeviceClaimConfig :: !(Maybe [V1DeviceClaimConfiguration]) -- ^ "config" - This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.+ , v1DeviceClaimConstraints :: !(Maybe [V1DeviceConstraint]) -- ^ "constraints" - These constraints must be satisfied by the set of devices that get allocated for the claim.+ , v1DeviceClaimRequests :: !(Maybe [V1DeviceRequest]) -- ^ "requests" - Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceClaim+instance A.FromJSON V1DeviceClaim where+ parseJSON = A.withObject "V1DeviceClaim" $ \o ->+ V1DeviceClaim+ <$> (o .:? "config")+ <*> (o .:? "constraints")+ <*> (o .:? "requests")++-- | ToJSON V1DeviceClaim+instance A.ToJSON V1DeviceClaim where+ toJSON V1DeviceClaim {..} =+ _omitNulls+ [ "config" .= v1DeviceClaimConfig+ , "constraints" .= v1DeviceClaimConstraints+ , "requests" .= v1DeviceClaimRequests+ ]+++-- | Construct a value of type 'V1DeviceClaim' (by applying it's required fields, if any)+mkV1DeviceClaim+ :: V1DeviceClaim+mkV1DeviceClaim =+ V1DeviceClaim+ { v1DeviceClaimConfig = Nothing+ , v1DeviceClaimConstraints = Nothing+ , v1DeviceClaimRequests = Nothing+ }++-- ** V1DeviceClaimConfiguration+-- | V1DeviceClaimConfiguration+-- DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.+data V1DeviceClaimConfiguration = V1DeviceClaimConfiguration+ { v1DeviceClaimConfigurationOpaque :: !(Maybe V1OpaqueDeviceConfiguration) -- ^ "opaque"+ , v1DeviceClaimConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceClaimConfiguration+instance A.FromJSON V1DeviceClaimConfiguration where+ parseJSON = A.withObject "V1DeviceClaimConfiguration" $ \o ->+ V1DeviceClaimConfiguration+ <$> (o .:? "opaque")+ <*> (o .:? "requests")++-- | ToJSON V1DeviceClaimConfiguration+instance A.ToJSON V1DeviceClaimConfiguration where+ toJSON V1DeviceClaimConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1DeviceClaimConfigurationOpaque+ , "requests" .= v1DeviceClaimConfigurationRequests+ ]+++-- | Construct a value of type 'V1DeviceClaimConfiguration' (by applying it's required fields, if any)+mkV1DeviceClaimConfiguration+ :: V1DeviceClaimConfiguration+mkV1DeviceClaimConfiguration =+ V1DeviceClaimConfiguration+ { v1DeviceClaimConfigurationOpaque = Nothing+ , v1DeviceClaimConfigurationRequests = Nothing+ }++-- ** V1DeviceClass+-- | V1DeviceClass+-- 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.+data V1DeviceClass = V1DeviceClass+ { v1DeviceClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1DeviceClassKind :: !(Maybe Text) -- ^ "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+ , v1DeviceClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1DeviceClassSpec :: !(V1DeviceClassSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceClass+instance A.FromJSON V1DeviceClass where+ parseJSON = A.withObject "V1DeviceClass" $ \o ->+ V1DeviceClass+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1DeviceClass+instance A.ToJSON V1DeviceClass where+ toJSON V1DeviceClass {..} =+ _omitNulls+ [ "apiVersion" .= v1DeviceClassApiVersion+ , "kind" .= v1DeviceClassKind+ , "metadata" .= v1DeviceClassMetadata+ , "spec" .= v1DeviceClassSpec+ ]+++-- | Construct a value of type 'V1DeviceClass' (by applying it's required fields, if any)+mkV1DeviceClass+ :: V1DeviceClassSpec -- ^ 'v1DeviceClassSpec' + -> V1DeviceClass+mkV1DeviceClass v1DeviceClassSpec =+ V1DeviceClass+ { v1DeviceClassApiVersion = Nothing+ , v1DeviceClassKind = Nothing+ , v1DeviceClassMetadata = Nothing+ , v1DeviceClassSpec+ }++-- ** V1DeviceClassConfiguration+-- | V1DeviceClassConfiguration+-- DeviceClassConfiguration is used in DeviceClass.+data V1DeviceClassConfiguration = V1DeviceClassConfiguration+ { v1DeviceClassConfigurationOpaque :: !(Maybe V1OpaqueDeviceConfiguration) -- ^ "opaque"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceClassConfiguration+instance A.FromJSON V1DeviceClassConfiguration where+ parseJSON = A.withObject "V1DeviceClassConfiguration" $ \o ->+ V1DeviceClassConfiguration+ <$> (o .:? "opaque")++-- | ToJSON V1DeviceClassConfiguration+instance A.ToJSON V1DeviceClassConfiguration where+ toJSON V1DeviceClassConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1DeviceClassConfigurationOpaque+ ]+++-- | Construct a value of type 'V1DeviceClassConfiguration' (by applying it's required fields, if any)+mkV1DeviceClassConfiguration+ :: V1DeviceClassConfiguration+mkV1DeviceClassConfiguration =+ V1DeviceClassConfiguration+ { v1DeviceClassConfigurationOpaque = Nothing+ }++-- ** V1DeviceClassList+-- | V1DeviceClassList+-- DeviceClassList is a collection of classes.+data V1DeviceClassList = V1DeviceClassList+ { v1DeviceClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1DeviceClassListItems :: !([V1DeviceClass]) -- ^ /Required/ "items" - Items is the list of resource classes.+ , v1DeviceClassListKind :: !(Maybe Text) -- ^ "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+ , v1DeviceClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceClassList+instance A.FromJSON V1DeviceClassList where+ parseJSON = A.withObject "V1DeviceClassList" $ \o ->+ V1DeviceClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1DeviceClassList+instance A.ToJSON V1DeviceClassList where+ toJSON V1DeviceClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1DeviceClassListApiVersion+ , "items" .= v1DeviceClassListItems+ , "kind" .= v1DeviceClassListKind+ , "metadata" .= v1DeviceClassListMetadata+ ]+++-- | Construct a value of type 'V1DeviceClassList' (by applying it's required fields, if any)+mkV1DeviceClassList+ :: [V1DeviceClass] -- ^ 'v1DeviceClassListItems': Items is the list of resource classes.+ -> V1DeviceClassList+mkV1DeviceClassList v1DeviceClassListItems =+ V1DeviceClassList+ { v1DeviceClassListApiVersion = Nothing+ , v1DeviceClassListItems+ , v1DeviceClassListKind = Nothing+ , v1DeviceClassListMetadata = Nothing+ }++-- ** V1DeviceClassSpec+-- | V1DeviceClassSpec+-- DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.+data V1DeviceClassSpec = V1DeviceClassSpec+ { v1DeviceClassSpecConfig :: !(Maybe [V1DeviceClassConfiguration]) -- ^ "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.+ , v1DeviceClassSpecExtendedResourceName :: !(Maybe Text) -- ^ "extendedResourceName" - ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. This is an alpha field.+ , v1DeviceClassSpecSelectors :: !(Maybe [V1DeviceSelector]) -- ^ "selectors" - Each selector must be satisfied by a device which is claimed via this class.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceClassSpec+instance A.FromJSON V1DeviceClassSpec where+ parseJSON = A.withObject "V1DeviceClassSpec" $ \o ->+ V1DeviceClassSpec+ <$> (o .:? "config")+ <*> (o .:? "extendedResourceName")+ <*> (o .:? "selectors")++-- | ToJSON V1DeviceClassSpec+instance A.ToJSON V1DeviceClassSpec where+ toJSON V1DeviceClassSpec {..} =+ _omitNulls+ [ "config" .= v1DeviceClassSpecConfig+ , "extendedResourceName" .= v1DeviceClassSpecExtendedResourceName+ , "selectors" .= v1DeviceClassSpecSelectors+ ]+++-- | Construct a value of type 'V1DeviceClassSpec' (by applying it's required fields, if any)+mkV1DeviceClassSpec+ :: V1DeviceClassSpec+mkV1DeviceClassSpec =+ V1DeviceClassSpec+ { v1DeviceClassSpecConfig = Nothing+ , v1DeviceClassSpecExtendedResourceName = Nothing+ , v1DeviceClassSpecSelectors = Nothing+ }++-- ** V1DeviceConstraint+-- | V1DeviceConstraint+-- DeviceConstraint must have exactly one field set besides Requests.+data V1DeviceConstraint = V1DeviceConstraint+ { v1DeviceConstraintDistinctAttribute :: !(Maybe Text) -- ^ "distinctAttribute" - DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. This acts as the inverse of MatchAttribute. This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs.+ , v1DeviceConstraintMatchAttribute :: !(Maybe Text) -- ^ "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.+ , v1DeviceConstraintRequests :: !(Maybe [Text]) -- ^ "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. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceConstraint+instance A.FromJSON V1DeviceConstraint where+ parseJSON = A.withObject "V1DeviceConstraint" $ \o ->+ V1DeviceConstraint+ <$> (o .:? "distinctAttribute")+ <*> (o .:? "matchAttribute")+ <*> (o .:? "requests")++-- | ToJSON V1DeviceConstraint+instance A.ToJSON V1DeviceConstraint where+ toJSON V1DeviceConstraint {..} =+ _omitNulls+ [ "distinctAttribute" .= v1DeviceConstraintDistinctAttribute+ , "matchAttribute" .= v1DeviceConstraintMatchAttribute+ , "requests" .= v1DeviceConstraintRequests+ ]+++-- | Construct a value of type 'V1DeviceConstraint' (by applying it's required fields, if any)+mkV1DeviceConstraint+ :: V1DeviceConstraint+mkV1DeviceConstraint =+ V1DeviceConstraint+ { v1DeviceConstraintDistinctAttribute = Nothing+ , v1DeviceConstraintMatchAttribute = Nothing+ , v1DeviceConstraintRequests = Nothing+ }++-- ** V1DeviceCounterConsumption+-- | V1DeviceCounterConsumption+-- DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.+data V1DeviceCounterConsumption = V1DeviceCounterConsumption+ { v1DeviceCounterConsumptionCounterSet :: !(Text) -- ^ /Required/ "counterSet" - CounterSet is the name of the set from which the counters defined will be consumed.+ , v1DeviceCounterConsumptionCounters :: !((Map.Map String V1Counter)) -- ^ /Required/ "counters" - Counters defines the counters that will be consumed by the device. The maximum number of counters is 32.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceCounterConsumption+instance A.FromJSON V1DeviceCounterConsumption where+ parseJSON = A.withObject "V1DeviceCounterConsumption" $ \o ->+ V1DeviceCounterConsumption+ <$> (o .: "counterSet")+ <*> (o .: "counters")++-- | ToJSON V1DeviceCounterConsumption+instance A.ToJSON V1DeviceCounterConsumption where+ toJSON V1DeviceCounterConsumption {..} =+ _omitNulls+ [ "counterSet" .= v1DeviceCounterConsumptionCounterSet+ , "counters" .= v1DeviceCounterConsumptionCounters+ ]+++-- | Construct a value of type 'V1DeviceCounterConsumption' (by applying it's required fields, if any)+mkV1DeviceCounterConsumption+ :: Text -- ^ 'v1DeviceCounterConsumptionCounterSet': CounterSet is the name of the set from which the counters defined will be consumed.+ -> (Map.Map String V1Counter) -- ^ 'v1DeviceCounterConsumptionCounters': Counters defines the counters that will be consumed by the device. The maximum number of counters is 32.+ -> V1DeviceCounterConsumption+mkV1DeviceCounterConsumption v1DeviceCounterConsumptionCounterSet v1DeviceCounterConsumptionCounters =+ V1DeviceCounterConsumption+ { v1DeviceCounterConsumptionCounterSet+ , v1DeviceCounterConsumptionCounters+ }++-- ** V1DeviceRequest+-- | V1DeviceRequest+-- 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. With FirstAvailable it is also possible to provide a prioritized list of requests.+data V1DeviceRequest = V1DeviceRequest+ { v1DeviceRequestExactly :: !(Maybe V1ExactDeviceRequest) -- ^ "exactly"+ , v1DeviceRequestFirstAvailable :: !(Maybe [V1DeviceSubRequest]) -- ^ "firstAvailable" - FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.+ , v1DeviceRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. Must be a DNS label.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceRequest+instance A.FromJSON V1DeviceRequest where+ parseJSON = A.withObject "V1DeviceRequest" $ \o ->+ V1DeviceRequest+ <$> (o .:? "exactly")+ <*> (o .:? "firstAvailable")+ <*> (o .: "name")++-- | ToJSON V1DeviceRequest+instance A.ToJSON V1DeviceRequest where+ toJSON V1DeviceRequest {..} =+ _omitNulls+ [ "exactly" .= v1DeviceRequestExactly+ , "firstAvailable" .= v1DeviceRequestFirstAvailable+ , "name" .= v1DeviceRequestName+ ]+++-- | Construct a value of type 'V1DeviceRequest' (by applying it's required fields, if any)+mkV1DeviceRequest+ :: Text -- ^ 'v1DeviceRequestName': Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. Must be a DNS label.+ -> V1DeviceRequest+mkV1DeviceRequest v1DeviceRequestName =+ V1DeviceRequest+ { v1DeviceRequestExactly = Nothing+ , v1DeviceRequestFirstAvailable = Nothing+ , v1DeviceRequestName+ }++-- ** V1DeviceRequestAllocationResult+-- | V1DeviceRequestAllocationResult+-- DeviceRequestAllocationResult contains the allocation result for one request.+data V1DeviceRequestAllocationResult = V1DeviceRequestAllocationResult+ { v1DeviceRequestAllocationResultAdminAccess :: !(Maybe Bool) -- ^ "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.+ , v1DeviceRequestAllocationResultBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1DeviceRequestAllocationResultBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1DeviceRequestAllocationResultConsumedCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "consumedCapacity" - ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). The total consumed capacity for each device must not exceed the DeviceCapacity's Value. This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero.+ , v1DeviceRequestAllocationResultDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ , v1DeviceRequestAllocationResultDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1DeviceRequestAllocationResultPool :: !(Text) -- ^ /Required/ "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.+ , v1DeviceRequestAllocationResultRequest :: !(Text) -- ^ /Required/ "request" - Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.+ , v1DeviceRequestAllocationResultShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device.+ , v1DeviceRequestAllocationResultTolerations :: !(Maybe [V1DeviceToleration]) -- ^ "tolerations" - A copy of all tolerations specified in the request at the time when the device got allocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceRequestAllocationResult+instance A.FromJSON V1DeviceRequestAllocationResult where+ parseJSON = A.withObject "V1DeviceRequestAllocationResult" $ \o ->+ V1DeviceRequestAllocationResult+ <$> (o .:? "adminAccess")+ <*> (o .:? "bindingConditions")+ <*> (o .:? "bindingFailureConditions")+ <*> (o .:? "consumedCapacity")+ <*> (o .: "device")+ <*> (o .: "driver")+ <*> (o .: "pool")+ <*> (o .: "request")+ <*> (o .:? "shareID")+ <*> (o .:? "tolerations")++-- | ToJSON V1DeviceRequestAllocationResult+instance A.ToJSON V1DeviceRequestAllocationResult where+ toJSON V1DeviceRequestAllocationResult {..} =+ _omitNulls+ [ "adminAccess" .= v1DeviceRequestAllocationResultAdminAccess+ , "bindingConditions" .= v1DeviceRequestAllocationResultBindingConditions+ , "bindingFailureConditions" .= v1DeviceRequestAllocationResultBindingFailureConditions+ , "consumedCapacity" .= v1DeviceRequestAllocationResultConsumedCapacity+ , "device" .= v1DeviceRequestAllocationResultDevice+ , "driver" .= v1DeviceRequestAllocationResultDriver+ , "pool" .= v1DeviceRequestAllocationResultPool+ , "request" .= v1DeviceRequestAllocationResultRequest+ , "shareID" .= v1DeviceRequestAllocationResultShareId+ , "tolerations" .= v1DeviceRequestAllocationResultTolerations+ ]+++-- | Construct a value of type 'V1DeviceRequestAllocationResult' (by applying it's required fields, if any)+mkV1DeviceRequestAllocationResult+ :: Text -- ^ 'v1DeviceRequestAllocationResultDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ -> Text -- ^ 'v1DeviceRequestAllocationResultDriver': 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. It should use only lower case characters.+ -> Text -- ^ 'v1DeviceRequestAllocationResultPool': 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.+ -> Text -- ^ 'v1DeviceRequestAllocationResultRequest': Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.+ -> V1DeviceRequestAllocationResult+mkV1DeviceRequestAllocationResult v1DeviceRequestAllocationResultDevice v1DeviceRequestAllocationResultDriver v1DeviceRequestAllocationResultPool v1DeviceRequestAllocationResultRequest =+ V1DeviceRequestAllocationResult+ { v1DeviceRequestAllocationResultAdminAccess = Nothing+ , v1DeviceRequestAllocationResultBindingConditions = Nothing+ , v1DeviceRequestAllocationResultBindingFailureConditions = Nothing+ , v1DeviceRequestAllocationResultConsumedCapacity = Nothing+ , v1DeviceRequestAllocationResultDevice+ , v1DeviceRequestAllocationResultDriver+ , v1DeviceRequestAllocationResultPool+ , v1DeviceRequestAllocationResultRequest+ , v1DeviceRequestAllocationResultShareId = Nothing+ , v1DeviceRequestAllocationResultTolerations = Nothing+ }++-- ** V1DeviceSelector+-- | V1DeviceSelector+-- DeviceSelector must have exactly one field set.+data V1DeviceSelector = V1DeviceSelector+ { v1DeviceSelectorCel :: !(Maybe V1CELDeviceSelector) -- ^ "cel"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceSelector+instance A.FromJSON V1DeviceSelector where+ parseJSON = A.withObject "V1DeviceSelector" $ \o ->+ V1DeviceSelector+ <$> (o .:? "cel")++-- | ToJSON V1DeviceSelector+instance A.ToJSON V1DeviceSelector where+ toJSON V1DeviceSelector {..} =+ _omitNulls+ [ "cel" .= v1DeviceSelectorCel+ ]+++-- | Construct a value of type 'V1DeviceSelector' (by applying it's required fields, if any)+mkV1DeviceSelector+ :: V1DeviceSelector+mkV1DeviceSelector =+ V1DeviceSelector+ { v1DeviceSelectorCel = Nothing+ }++-- ** V1DeviceSubRequest+-- | V1DeviceSubRequest+-- DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device.+data V1DeviceSubRequest = V1DeviceSubRequest+ { v1DeviceSubRequestAllocationMode :: !(Maybe Text) -- ^ "allocationMode" - AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. 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 subrequest is for all of the matching devices in a pool. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.+ , v1DeviceSubRequestCapacity :: !(Maybe V1CapacityRequirements) -- ^ "capacity"+ , v1DeviceSubRequestCount :: !(Maybe Integer) -- ^ "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.+ , v1DeviceSubRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.+ , v1DeviceSubRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.+ , v1DeviceSubRequestSelectors :: !(Maybe [V1DeviceSelector]) -- ^ "selectors" - Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.+ , v1DeviceSubRequestTolerations :: !(Maybe [V1DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceSubRequest+instance A.FromJSON V1DeviceSubRequest where+ parseJSON = A.withObject "V1DeviceSubRequest" $ \o ->+ V1DeviceSubRequest+ <$> (o .:? "allocationMode")+ <*> (o .:? "capacity")+ <*> (o .:? "count")+ <*> (o .: "deviceClassName")+ <*> (o .: "name")+ <*> (o .:? "selectors")+ <*> (o .:? "tolerations")++-- | ToJSON V1DeviceSubRequest+instance A.ToJSON V1DeviceSubRequest where+ toJSON V1DeviceSubRequest {..} =+ _omitNulls+ [ "allocationMode" .= v1DeviceSubRequestAllocationMode+ , "capacity" .= v1DeviceSubRequestCapacity+ , "count" .= v1DeviceSubRequestCount+ , "deviceClassName" .= v1DeviceSubRequestDeviceClassName+ , "name" .= v1DeviceSubRequestName+ , "selectors" .= v1DeviceSubRequestSelectors+ , "tolerations" .= v1DeviceSubRequestTolerations+ ]+++-- | Construct a value of type 'V1DeviceSubRequest' (by applying it's required fields, if any)+mkV1DeviceSubRequest+ :: Text -- ^ 'v1DeviceSubRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.+ -> Text -- ^ 'v1DeviceSubRequestName': Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.+ -> V1DeviceSubRequest+mkV1DeviceSubRequest v1DeviceSubRequestDeviceClassName v1DeviceSubRequestName =+ V1DeviceSubRequest+ { v1DeviceSubRequestAllocationMode = Nothing+ , v1DeviceSubRequestCapacity = Nothing+ , v1DeviceSubRequestCount = Nothing+ , v1DeviceSubRequestDeviceClassName+ , v1DeviceSubRequestName+ , v1DeviceSubRequestSelectors = Nothing+ , v1DeviceSubRequestTolerations = Nothing+ }++-- ** V1DeviceTaint+-- | V1DeviceTaint+-- The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.+data V1DeviceTaint = V1DeviceTaint+ { v1DeviceTaintEffect :: !(Text) -- ^ /Required/ "effect" - The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.+ , v1DeviceTaintKey :: !(Text) -- ^ /Required/ "key" - The taint key to be applied to a device. Must be a label name.+ , v1DeviceTaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.+ , v1DeviceTaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key. Must be a label value.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceTaint+instance A.FromJSON V1DeviceTaint where+ parseJSON = A.withObject "V1DeviceTaint" $ \o ->+ V1DeviceTaint+ <$> (o .: "effect")+ <*> (o .: "key")+ <*> (o .:? "timeAdded")+ <*> (o .:? "value")++-- | ToJSON V1DeviceTaint+instance A.ToJSON V1DeviceTaint where+ toJSON V1DeviceTaint {..} =+ _omitNulls+ [ "effect" .= v1DeviceTaintEffect+ , "key" .= v1DeviceTaintKey+ , "timeAdded" .= v1DeviceTaintTimeAdded+ , "value" .= v1DeviceTaintValue+ ]+++-- | Construct a value of type 'V1DeviceTaint' (by applying it's required fields, if any)+mkV1DeviceTaint+ :: Text -- ^ 'v1DeviceTaintEffect': The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.+ -> Text -- ^ 'v1DeviceTaintKey': The taint key to be applied to a device. Must be a label name.+ -> V1DeviceTaint+mkV1DeviceTaint v1DeviceTaintEffect v1DeviceTaintKey =+ V1DeviceTaint+ { v1DeviceTaintEffect+ , v1DeviceTaintKey+ , v1DeviceTaintTimeAdded = Nothing+ , v1DeviceTaintValue = Nothing+ }++-- ** V1DeviceToleration+-- | V1DeviceToleration+-- The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.+data V1DeviceToleration = V1DeviceToleration+ { v1DeviceTolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.+ , v1DeviceTolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.+ , v1DeviceTolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.+ , v1DeviceTolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.+ , v1DeviceTolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DeviceToleration+instance A.FromJSON V1DeviceToleration where+ parseJSON = A.withObject "V1DeviceToleration" $ \o ->+ V1DeviceToleration+ <$> (o .:? "effect")+ <*> (o .:? "key")+ <*> (o .:? "operator")+ <*> (o .:? "tolerationSeconds")+ <*> (o .:? "value")++-- | ToJSON V1DeviceToleration+instance A.ToJSON V1DeviceToleration where+ toJSON V1DeviceToleration {..} =+ _omitNulls+ [ "effect" .= v1DeviceTolerationEffect+ , "key" .= v1DeviceTolerationKey+ , "operator" .= v1DeviceTolerationOperator+ , "tolerationSeconds" .= v1DeviceTolerationTolerationSeconds+ , "value" .= v1DeviceTolerationValue+ ]+++-- | Construct a value of type 'V1DeviceToleration' (by applying it's required fields, if any)+mkV1DeviceToleration+ :: V1DeviceToleration+mkV1DeviceToleration =+ V1DeviceToleration+ { v1DeviceTolerationEffect = Nothing+ , v1DeviceTolerationKey = Nothing+ , v1DeviceTolerationOperator = Nothing+ , v1DeviceTolerationTolerationSeconds = Nothing+ , v1DeviceTolerationValue = Nothing+ }++-- ** V1DownwardAPIProjection+-- | V1DownwardAPIProjection+-- Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.+data V1DownwardAPIProjection = V1DownwardAPIProjection+ { v1DownwardAPIProjectionItems :: !(Maybe [V1DownwardAPIVolumeFile]) -- ^ "items" - Items is a list of DownwardAPIVolume file+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DownwardAPIProjection+instance A.FromJSON V1DownwardAPIProjection where+ parseJSON = A.withObject "V1DownwardAPIProjection" $ \o ->+ V1DownwardAPIProjection+ <$> (o .:? "items")++-- | ToJSON V1DownwardAPIProjection+instance A.ToJSON V1DownwardAPIProjection where+ toJSON V1DownwardAPIProjection {..} =+ _omitNulls+ [ "items" .= v1DownwardAPIProjectionItems+ ]+++-- | Construct a value of type 'V1DownwardAPIProjection' (by applying it's required fields, if any)+mkV1DownwardAPIProjection+ :: V1DownwardAPIProjection+mkV1DownwardAPIProjection =+ V1DownwardAPIProjection+ { v1DownwardAPIProjectionItems = Nothing+ }++-- ** V1DownwardAPIVolumeFile+-- | V1DownwardAPIVolumeFile+-- DownwardAPIVolumeFile represents information to create the file containing the pod field+data V1DownwardAPIVolumeFile = V1DownwardAPIVolumeFile+ { v1DownwardAPIVolumeFileFieldRef :: !(Maybe V1ObjectFieldSelector) -- ^ "fieldRef"+ , v1DownwardAPIVolumeFileMode :: !(Maybe Int) -- ^ "mode" - Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.+ , v1DownwardAPIVolumeFilePath :: !(Text) -- ^ /Required/ "path" - Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'+ , v1DownwardAPIVolumeFileResourceFieldRef :: !(Maybe V1ResourceFieldSelector) -- ^ "resourceFieldRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DownwardAPIVolumeFile+instance A.FromJSON V1DownwardAPIVolumeFile where+ parseJSON = A.withObject "V1DownwardAPIVolumeFile" $ \o ->+ V1DownwardAPIVolumeFile+ <$> (o .:? "fieldRef")+ <*> (o .:? "mode")+ <*> (o .: "path")+ <*> (o .:? "resourceFieldRef")++-- | ToJSON V1DownwardAPIVolumeFile+instance A.ToJSON V1DownwardAPIVolumeFile where+ toJSON V1DownwardAPIVolumeFile {..} =+ _omitNulls+ [ "fieldRef" .= v1DownwardAPIVolumeFileFieldRef+ , "mode" .= v1DownwardAPIVolumeFileMode+ , "path" .= v1DownwardAPIVolumeFilePath+ , "resourceFieldRef" .= v1DownwardAPIVolumeFileResourceFieldRef+ ]+++-- | Construct a value of type 'V1DownwardAPIVolumeFile' (by applying it's required fields, if any)+mkV1DownwardAPIVolumeFile+ :: Text -- ^ 'v1DownwardAPIVolumeFilePath': Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'+ -> V1DownwardAPIVolumeFile+mkV1DownwardAPIVolumeFile v1DownwardAPIVolumeFilePath =+ V1DownwardAPIVolumeFile+ { v1DownwardAPIVolumeFileFieldRef = Nothing+ , v1DownwardAPIVolumeFileMode = Nothing+ , v1DownwardAPIVolumeFilePath+ , v1DownwardAPIVolumeFileResourceFieldRef = Nothing+ }++-- ** V1DownwardAPIVolumeSource+-- | V1DownwardAPIVolumeSource+-- DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.+data V1DownwardAPIVolumeSource = V1DownwardAPIVolumeSource+ { v1DownwardAPIVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.+ , v1DownwardAPIVolumeSourceItems :: !(Maybe [V1DownwardAPIVolumeFile]) -- ^ "items" - Items is a list of downward API volume file+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1DownwardAPIVolumeSource+instance A.FromJSON V1DownwardAPIVolumeSource where+ parseJSON = A.withObject "V1DownwardAPIVolumeSource" $ \o ->+ V1DownwardAPIVolumeSource+ <$> (o .:? "defaultMode")+ <*> (o .:? "items")++-- | ToJSON V1DownwardAPIVolumeSource+instance A.ToJSON V1DownwardAPIVolumeSource where+ toJSON V1DownwardAPIVolumeSource {..} =+ _omitNulls+ [ "defaultMode" .= v1DownwardAPIVolumeSourceDefaultMode+ , "items" .= v1DownwardAPIVolumeSourceItems+ ]+++-- | Construct a value of type 'V1DownwardAPIVolumeSource' (by applying it's required fields, if any)+mkV1DownwardAPIVolumeSource+ :: V1DownwardAPIVolumeSource+mkV1DownwardAPIVolumeSource =+ V1DownwardAPIVolumeSource+ { v1DownwardAPIVolumeSourceDefaultMode = Nothing+ , v1DownwardAPIVolumeSourceItems = Nothing+ }++-- ** V1EmptyDirVolumeSource+-- | V1EmptyDirVolumeSource+-- Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.+data V1EmptyDirVolumeSource = V1EmptyDirVolumeSource+ { v1EmptyDirVolumeSourceMedium :: !(Maybe Text) -- ^ "medium" - medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir+ , v1EmptyDirVolumeSourceSizeLimit :: !(Maybe Quantity) -- ^ "sizeLimit"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EmptyDirVolumeSource+instance A.FromJSON V1EmptyDirVolumeSource where+ parseJSON = A.withObject "V1EmptyDirVolumeSource" $ \o ->+ V1EmptyDirVolumeSource+ <$> (o .:? "medium")+ <*> (o .:? "sizeLimit")++-- | ToJSON V1EmptyDirVolumeSource+instance A.ToJSON V1EmptyDirVolumeSource where+ toJSON V1EmptyDirVolumeSource {..} =+ _omitNulls+ [ "medium" .= v1EmptyDirVolumeSourceMedium+ , "sizeLimit" .= v1EmptyDirVolumeSourceSizeLimit+ ]+++-- | Construct a value of type 'V1EmptyDirVolumeSource' (by applying it's required fields, if any)+mkV1EmptyDirVolumeSource+ :: V1EmptyDirVolumeSource+mkV1EmptyDirVolumeSource =+ V1EmptyDirVolumeSource+ { v1EmptyDirVolumeSourceMedium = Nothing+ , v1EmptyDirVolumeSourceSizeLimit = Nothing+ }++-- ** V1Endpoint+-- | V1Endpoint+-- Endpoint represents a single logical \"backend\" implementing a service.+data V1Endpoint = V1Endpoint+ { v1EndpointAddresses :: !([Text]) -- ^ /Required/ "addresses" - addresses of this endpoint. For EndpointSlices of addressType \"IPv4\" or \"IPv6\", the values are IP addresses in canonical form. The syntax and semantics of other addressType values are not defined. This must contain at least one address but no more than 100. EndpointSlices generated by the EndpointSlice controller will always have exactly 1 address. No semantics are defined for additional addresses beyond the first, and kube-proxy does not look at them.+ , v1EndpointConditions :: !(Maybe V1EndpointConditions) -- ^ "conditions"+ , v1EndpointDeprecatedTopology :: !(Maybe (Map.Map String Text)) -- ^ "deprecatedTopology" - deprecatedTopology contains topology information part of the v1beta1 API. This field is deprecated, and will be removed when the v1beta1 API is removed (no sooner than kubernetes v1.24). While this field can hold values, it is not writable through the v1 API, and any attempts to write to it will be silently ignored. Topology information can be found in the zone and nodeName fields instead.+ , v1EndpointHints :: !(Maybe V1EndpointHints) -- ^ "hints"+ , v1EndpointHostname :: !(Maybe Text) -- ^ "hostname" - hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.+ , v1EndpointNodeName :: !(Maybe Text) -- ^ "nodeName" - nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.+ , v1EndpointTargetRef :: !(Maybe V1ObjectReference) -- ^ "targetRef"+ , v1EndpointZone :: !(Maybe Text) -- ^ "zone" - zone is the name of the Zone this endpoint exists in.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Endpoint+instance A.FromJSON V1Endpoint where+ parseJSON = A.withObject "V1Endpoint" $ \o ->+ V1Endpoint+ <$> (o .: "addresses")+ <*> (o .:? "conditions")+ <*> (o .:? "deprecatedTopology")+ <*> (o .:? "hints")+ <*> (o .:? "hostname")+ <*> (o .:? "nodeName")+ <*> (o .:? "targetRef")+ <*> (o .:? "zone")++-- | ToJSON V1Endpoint+instance A.ToJSON V1Endpoint where+ toJSON V1Endpoint {..} =+ _omitNulls+ [ "addresses" .= v1EndpointAddresses+ , "conditions" .= v1EndpointConditions+ , "deprecatedTopology" .= v1EndpointDeprecatedTopology+ , "hints" .= v1EndpointHints+ , "hostname" .= v1EndpointHostname+ , "nodeName" .= v1EndpointNodeName+ , "targetRef" .= v1EndpointTargetRef+ , "zone" .= v1EndpointZone+ ]+++-- | Construct a value of type 'V1Endpoint' (by applying it's required fields, if any)+mkV1Endpoint+ :: [Text] -- ^ 'v1EndpointAddresses': addresses of this endpoint. For EndpointSlices of addressType \"IPv4\" or \"IPv6\", the values are IP addresses in canonical form. The syntax and semantics of other addressType values are not defined. This must contain at least one address but no more than 100. EndpointSlices generated by the EndpointSlice controller will always have exactly 1 address. No semantics are defined for additional addresses beyond the first, and kube-proxy does not look at them.+ -> V1Endpoint+mkV1Endpoint v1EndpointAddresses =+ V1Endpoint+ { v1EndpointAddresses+ , v1EndpointConditions = Nothing+ , v1EndpointDeprecatedTopology = Nothing+ , v1EndpointHints = Nothing+ , v1EndpointHostname = Nothing+ , v1EndpointNodeName = Nothing+ , v1EndpointTargetRef = Nothing+ , v1EndpointZone = Nothing+ }++-- ** V1EndpointAddress+-- | V1EndpointAddress+-- EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.+data V1EndpointAddress = V1EndpointAddress+ { v1EndpointAddressHostname :: !(Maybe Text) -- ^ "hostname" - The Hostname of this endpoint+ , v1EndpointAddressIp :: !(Text) -- ^ /Required/ "ip" - The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).+ , v1EndpointAddressNodeName :: !(Maybe Text) -- ^ "nodeName" - Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.+ , v1EndpointAddressTargetRef :: !(Maybe V1ObjectReference) -- ^ "targetRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EndpointAddress+instance A.FromJSON V1EndpointAddress where+ parseJSON = A.withObject "V1EndpointAddress" $ \o ->+ V1EndpointAddress+ <$> (o .:? "hostname")+ <*> (o .: "ip")+ <*> (o .:? "nodeName")+ <*> (o .:? "targetRef")++-- | ToJSON V1EndpointAddress+instance A.ToJSON V1EndpointAddress where+ toJSON V1EndpointAddress {..} =+ _omitNulls+ [ "hostname" .= v1EndpointAddressHostname+ , "ip" .= v1EndpointAddressIp+ , "nodeName" .= v1EndpointAddressNodeName+ , "targetRef" .= v1EndpointAddressTargetRef+ ]+++-- | Construct a value of type 'V1EndpointAddress' (by applying it's required fields, if any)+mkV1EndpointAddress+ :: Text -- ^ 'v1EndpointAddressIp': The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).+ -> V1EndpointAddress+mkV1EndpointAddress v1EndpointAddressIp =+ V1EndpointAddress+ { v1EndpointAddressHostname = Nothing+ , v1EndpointAddressIp+ , v1EndpointAddressNodeName = Nothing+ , v1EndpointAddressTargetRef = Nothing+ }++-- ** V1EndpointConditions+-- | V1EndpointConditions+-- EndpointConditions represents the current condition of an endpoint.+data V1EndpointConditions = V1EndpointConditions+ { v1EndpointConditionsReady :: !(Maybe Bool) -- ^ "ready" - ready indicates that this endpoint is ready to receive traffic, according to whatever system is managing the endpoint. A nil value should be interpreted as \"true\". In general, an endpoint should be marked ready if it is serving and not terminating, though this can be overridden in some cases, such as when the associated Service has set the publishNotReadyAddresses flag.+ , v1EndpointConditionsServing :: !(Maybe Bool) -- ^ "serving" - serving indicates that this endpoint is able to receive traffic, according to whatever system is managing the endpoint. For endpoints backed by pods, the EndpointSlice controller will mark the endpoint as serving if the pod's Ready condition is True. A nil value should be interpreted as \"true\".+ , v1EndpointConditionsTerminating :: !(Maybe Bool) -- ^ "terminating" - terminating indicates that this endpoint is terminating. A nil value should be interpreted as \"false\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EndpointConditions+instance A.FromJSON V1EndpointConditions where+ parseJSON = A.withObject "V1EndpointConditions" $ \o ->+ V1EndpointConditions+ <$> (o .:? "ready")+ <*> (o .:? "serving")+ <*> (o .:? "terminating")++-- | ToJSON V1EndpointConditions+instance A.ToJSON V1EndpointConditions where+ toJSON V1EndpointConditions {..} =+ _omitNulls+ [ "ready" .= v1EndpointConditionsReady+ , "serving" .= v1EndpointConditionsServing+ , "terminating" .= v1EndpointConditionsTerminating+ ]+++-- | Construct a value of type 'V1EndpointConditions' (by applying it's required fields, if any)+mkV1EndpointConditions+ :: V1EndpointConditions+mkV1EndpointConditions =+ V1EndpointConditions+ { v1EndpointConditionsReady = Nothing+ , v1EndpointConditionsServing = Nothing+ , v1EndpointConditionsTerminating = Nothing+ }++-- ** V1EndpointHints+-- | V1EndpointHints+-- EndpointHints provides hints describing how an endpoint should be consumed.+data V1EndpointHints = V1EndpointHints+ { v1EndpointHintsForNodes :: !(Maybe [V1ForNode]) -- ^ "forNodes" - forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries.+ , v1EndpointHintsForZones :: !(Maybe [V1ForZone]) -- ^ "forZones" - forZones indicates the zone(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EndpointHints+instance A.FromJSON V1EndpointHints where+ parseJSON = A.withObject "V1EndpointHints" $ \o ->+ V1EndpointHints+ <$> (o .:? "forNodes")+ <*> (o .:? "forZones")++-- | ToJSON V1EndpointHints+instance A.ToJSON V1EndpointHints where+ toJSON V1EndpointHints {..} =+ _omitNulls+ [ "forNodes" .= v1EndpointHintsForNodes+ , "forZones" .= v1EndpointHintsForZones+ ]+++-- | Construct a value of type 'V1EndpointHints' (by applying it's required fields, if any)+mkV1EndpointHints+ :: V1EndpointHints+mkV1EndpointHints =+ V1EndpointHints+ { v1EndpointHintsForNodes = Nothing+ , v1EndpointHintsForZones = Nothing+ }++-- ** V1EndpointSlice+-- | V1EndpointSlice+-- EndpointSlice represents a set of service endpoints. Most EndpointSlices are created by the EndpointSlice controller to represent the Pods selected by Service objects. For a given service there may be multiple EndpointSlice objects which must be joined to produce the full set of endpoints; you can find all of the slices for a given service by listing EndpointSlices in the service's namespace whose `kubernetes.io/service-name` label contains the service's name.+data V1EndpointSlice = V1EndpointSlice+ { v1EndpointSliceAddressType :: !(Text) -- ^ /Required/ "addressType" - addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. (Deprecated) The EndpointSlice controller only generates, and kube-proxy only processes, slices of addressType \"IPv4\" and \"IPv6\". No semantics are defined for the \"FQDN\" type.+ , v1EndpointSliceApiVersion :: !(Maybe Text) -- ^ "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+ , v1EndpointSliceEndpoints :: !([V1Endpoint]) -- ^ /Required/ "endpoints" - endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.+ , v1EndpointSliceKind :: !(Maybe Text) -- ^ "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+ , v1EndpointSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1EndpointSlicePorts :: !(Maybe [DiscoveryV1EndpointPort]) -- ^ "ports" - ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. Each slice may include a maximum of 100 ports. Services always have at least 1 port, so EndpointSlices generated by the EndpointSlice controller will likewise always have at least 1 port. EndpointSlices used for other purposes may have an empty ports list.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EndpointSlice+instance A.FromJSON V1EndpointSlice where+ parseJSON = A.withObject "V1EndpointSlice" $ \o ->+ V1EndpointSlice+ <$> (o .: "addressType")+ <*> (o .:? "apiVersion")+ <*> (o .: "endpoints")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "ports")++-- | ToJSON V1EndpointSlice+instance A.ToJSON V1EndpointSlice where+ toJSON V1EndpointSlice {..} =+ _omitNulls+ [ "addressType" .= v1EndpointSliceAddressType+ , "apiVersion" .= v1EndpointSliceApiVersion+ , "endpoints" .= v1EndpointSliceEndpoints+ , "kind" .= v1EndpointSliceKind+ , "metadata" .= v1EndpointSliceMetadata+ , "ports" .= v1EndpointSlicePorts+ ]+++-- | Construct a value of type 'V1EndpointSlice' (by applying it's required fields, if any)+mkV1EndpointSlice+ :: Text -- ^ 'v1EndpointSliceAddressType': addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. (Deprecated) The EndpointSlice controller only generates, and kube-proxy only processes, slices of addressType \"IPv4\" and \"IPv6\". No semantics are defined for the \"FQDN\" type.+ -> [V1Endpoint] -- ^ 'v1EndpointSliceEndpoints': endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.+ -> V1EndpointSlice+mkV1EndpointSlice v1EndpointSliceAddressType v1EndpointSliceEndpoints =+ V1EndpointSlice+ { v1EndpointSliceAddressType+ , v1EndpointSliceApiVersion = Nothing+ , v1EndpointSliceEndpoints+ , v1EndpointSliceKind = Nothing+ , v1EndpointSliceMetadata = Nothing+ , v1EndpointSlicePorts = Nothing+ }++-- ** V1EndpointSliceList+-- | V1EndpointSliceList+-- EndpointSliceList represents a list of endpoint slices+data V1EndpointSliceList = V1EndpointSliceList+ { v1EndpointSliceListApiVersion :: !(Maybe Text) -- ^ "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+ , v1EndpointSliceListItems :: !([V1EndpointSlice]) -- ^ /Required/ "items" - items is the list of endpoint slices+ , v1EndpointSliceListKind :: !(Maybe Text) -- ^ "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+ , v1EndpointSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EndpointSliceList+instance A.FromJSON V1EndpointSliceList where+ parseJSON = A.withObject "V1EndpointSliceList" $ \o ->+ V1EndpointSliceList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1EndpointSliceList+instance A.ToJSON V1EndpointSliceList where+ toJSON V1EndpointSliceList {..} =+ _omitNulls+ [ "apiVersion" .= v1EndpointSliceListApiVersion+ , "items" .= v1EndpointSliceListItems+ , "kind" .= v1EndpointSliceListKind+ , "metadata" .= v1EndpointSliceListMetadata+ ]+++-- | Construct a value of type 'V1EndpointSliceList' (by applying it's required fields, if any)+mkV1EndpointSliceList+ :: [V1EndpointSlice] -- ^ 'v1EndpointSliceListItems': items is the list of endpoint slices+ -> V1EndpointSliceList+mkV1EndpointSliceList v1EndpointSliceListItems =+ V1EndpointSliceList+ { v1EndpointSliceListApiVersion = Nothing+ , v1EndpointSliceListItems+ , v1EndpointSliceListKind = Nothing+ , v1EndpointSliceListMetadata = Nothing+ }++-- ** V1EndpointSubset+-- | V1EndpointSubset+-- EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given: { Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}], Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}] } The resulting set of endpoints can be viewed as: a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ] Deprecated: This API is deprecated in v1.33+.+data V1EndpointSubset = V1EndpointSubset+ { v1EndpointSubsetAddresses :: !(Maybe [V1EndpointAddress]) -- ^ "addresses" - IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.+ , v1EndpointSubsetNotReadyAddresses :: !(Maybe [V1EndpointAddress]) -- ^ "notReadyAddresses" - IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.+ , v1EndpointSubsetPorts :: !(Maybe [CoreV1EndpointPort]) -- ^ "ports" - Port numbers available on the related IP addresses.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EndpointSubset+instance A.FromJSON V1EndpointSubset where+ parseJSON = A.withObject "V1EndpointSubset" $ \o ->+ V1EndpointSubset+ <$> (o .:? "addresses")+ <*> (o .:? "notReadyAddresses")+ <*> (o .:? "ports")++-- | ToJSON V1EndpointSubset+instance A.ToJSON V1EndpointSubset where+ toJSON V1EndpointSubset {..} =+ _omitNulls+ [ "addresses" .= v1EndpointSubsetAddresses+ , "notReadyAddresses" .= v1EndpointSubsetNotReadyAddresses+ , "ports" .= v1EndpointSubsetPorts+ ]+++-- | Construct a value of type 'V1EndpointSubset' (by applying it's required fields, if any)+mkV1EndpointSubset+ :: V1EndpointSubset+mkV1EndpointSubset =+ V1EndpointSubset+ { v1EndpointSubsetAddresses = Nothing+ , v1EndpointSubsetNotReadyAddresses = Nothing+ , v1EndpointSubsetPorts = Nothing+ }++-- ** V1Endpoints+-- | V1Endpoints+-- Endpoints is a collection of endpoints that implement the actual service. Example: Name: \"mysvc\", Subsets: [ { Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}], Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}] }, { Addresses: [{\"ip\": \"10.10.3.3\"}], Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}] }, ] Endpoints is a legacy API and does not contain information about all Service features. Use discoveryv1.EndpointSlice for complete information about Service endpoints. Deprecated: This API is deprecated in v1.33+. Use discoveryv1.EndpointSlice.+data V1Endpoints = V1Endpoints+ { v1EndpointsApiVersion :: !(Maybe Text) -- ^ "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+ , v1EndpointsKind :: !(Maybe Text) -- ^ "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+ , v1EndpointsMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1EndpointsSubsets :: !(Maybe [V1EndpointSubset]) -- ^ "subsets" - The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Endpoints+instance A.FromJSON V1Endpoints where+ parseJSON = A.withObject "V1Endpoints" $ \o ->+ V1Endpoints+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "subsets")++-- | ToJSON V1Endpoints+instance A.ToJSON V1Endpoints where+ toJSON V1Endpoints {..} =+ _omitNulls+ [ "apiVersion" .= v1EndpointsApiVersion+ , "kind" .= v1EndpointsKind+ , "metadata" .= v1EndpointsMetadata+ , "subsets" .= v1EndpointsSubsets+ ]+++-- | Construct a value of type 'V1Endpoints' (by applying it's required fields, if any)+mkV1Endpoints+ :: V1Endpoints+mkV1Endpoints =+ V1Endpoints+ { v1EndpointsApiVersion = Nothing+ , v1EndpointsKind = Nothing+ , v1EndpointsMetadata = Nothing+ , v1EndpointsSubsets = Nothing+ }++-- ** V1EndpointsList+-- | V1EndpointsList+-- EndpointsList is a list of endpoints. Deprecated: This API is deprecated in v1.33+.+data V1EndpointsList = V1EndpointsList+ { v1EndpointsListApiVersion :: !(Maybe Text) -- ^ "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+ , v1EndpointsListItems :: !([V1Endpoints]) -- ^ /Required/ "items" - List of endpoints.+ , v1EndpointsListKind :: !(Maybe Text) -- ^ "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+ , v1EndpointsListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EndpointsList+instance A.FromJSON V1EndpointsList where+ parseJSON = A.withObject "V1EndpointsList" $ \o ->+ V1EndpointsList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1EndpointsList+instance A.ToJSON V1EndpointsList where+ toJSON V1EndpointsList {..} =+ _omitNulls+ [ "apiVersion" .= v1EndpointsListApiVersion+ , "items" .= v1EndpointsListItems+ , "kind" .= v1EndpointsListKind+ , "metadata" .= v1EndpointsListMetadata+ ]+++-- | Construct a value of type 'V1EndpointsList' (by applying it's required fields, if any)+mkV1EndpointsList+ :: [V1Endpoints] -- ^ 'v1EndpointsListItems': List of endpoints.+ -> V1EndpointsList+mkV1EndpointsList v1EndpointsListItems =+ V1EndpointsList+ { v1EndpointsListApiVersion = Nothing+ , v1EndpointsListItems+ , v1EndpointsListKind = Nothing+ , v1EndpointsListMetadata = Nothing+ }++-- ** V1EnvFromSource+-- | V1EnvFromSource+-- EnvFromSource represents the source of a set of ConfigMaps or Secrets+data V1EnvFromSource = V1EnvFromSource+ { v1EnvFromSourceConfigMapRef :: !(Maybe V1ConfigMapEnvSource) -- ^ "configMapRef"+ , v1EnvFromSourcePrefix :: !(Maybe Text) -- ^ "prefix" - Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='.+ , v1EnvFromSourceSecretRef :: !(Maybe V1SecretEnvSource) -- ^ "secretRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EnvFromSource+instance A.FromJSON V1EnvFromSource where+ parseJSON = A.withObject "V1EnvFromSource" $ \o ->+ V1EnvFromSource+ <$> (o .:? "configMapRef")+ <*> (o .:? "prefix")+ <*> (o .:? "secretRef")++-- | ToJSON V1EnvFromSource+instance A.ToJSON V1EnvFromSource where+ toJSON V1EnvFromSource {..} =+ _omitNulls+ [ "configMapRef" .= v1EnvFromSourceConfigMapRef+ , "prefix" .= v1EnvFromSourcePrefix+ , "secretRef" .= v1EnvFromSourceSecretRef+ ]+++-- | Construct a value of type 'V1EnvFromSource' (by applying it's required fields, if any)+mkV1EnvFromSource+ :: V1EnvFromSource+mkV1EnvFromSource =+ V1EnvFromSource+ { v1EnvFromSourceConfigMapRef = Nothing+ , v1EnvFromSourcePrefix = Nothing+ , v1EnvFromSourceSecretRef = Nothing+ }++-- ** V1EnvVar+-- | V1EnvVar+-- EnvVar represents an environment variable present in a Container.+data V1EnvVar = V1EnvVar+ { v1EnvVarName :: !(Text) -- ^ /Required/ "name" - Name of the environment variable. May consist of any printable ASCII characters except '='.+ , v1EnvVarValue :: !(Maybe Text) -- ^ "value" - Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".+ , v1EnvVarValueFrom :: !(Maybe V1EnvVarSource) -- ^ "valueFrom"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EnvVar+instance A.FromJSON V1EnvVar where+ parseJSON = A.withObject "V1EnvVar" $ \o ->+ V1EnvVar+ <$> (o .: "name")+ <*> (o .:? "value")+ <*> (o .:? "valueFrom")++-- | ToJSON V1EnvVar+instance A.ToJSON V1EnvVar where+ toJSON V1EnvVar {..} =+ _omitNulls+ [ "name" .= v1EnvVarName+ , "value" .= v1EnvVarValue+ , "valueFrom" .= v1EnvVarValueFrom+ ]+++-- | Construct a value of type 'V1EnvVar' (by applying it's required fields, if any)+mkV1EnvVar+ :: Text -- ^ 'v1EnvVarName': Name of the environment variable. May consist of any printable ASCII characters except '='.+ -> V1EnvVar+mkV1EnvVar v1EnvVarName =+ V1EnvVar+ { v1EnvVarName+ , v1EnvVarValue = Nothing+ , v1EnvVarValueFrom = Nothing+ }++-- ** V1EnvVarSource+-- | V1EnvVarSource+-- EnvVarSource represents a source for the value of an EnvVar.+data V1EnvVarSource = V1EnvVarSource+ { v1EnvVarSourceConfigMapKeyRef :: !(Maybe V1ConfigMapKeySelector) -- ^ "configMapKeyRef"+ , v1EnvVarSourceFieldRef :: !(Maybe V1ObjectFieldSelector) -- ^ "fieldRef"+ , v1EnvVarSourceFileKeyRef :: !(Maybe V1FileKeySelector) -- ^ "fileKeyRef"+ , v1EnvVarSourceResourceFieldRef :: !(Maybe V1ResourceFieldSelector) -- ^ "resourceFieldRef"+ , v1EnvVarSourceSecretKeyRef :: !(Maybe V1SecretKeySelector) -- ^ "secretKeyRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EnvVarSource+instance A.FromJSON V1EnvVarSource where+ parseJSON = A.withObject "V1EnvVarSource" $ \o ->+ V1EnvVarSource+ <$> (o .:? "configMapKeyRef")+ <*> (o .:? "fieldRef")+ <*> (o .:? "fileKeyRef")+ <*> (o .:? "resourceFieldRef")+ <*> (o .:? "secretKeyRef")++-- | ToJSON V1EnvVarSource+instance A.ToJSON V1EnvVarSource where+ toJSON V1EnvVarSource {..} =+ _omitNulls+ [ "configMapKeyRef" .= v1EnvVarSourceConfigMapKeyRef+ , "fieldRef" .= v1EnvVarSourceFieldRef+ , "fileKeyRef" .= v1EnvVarSourceFileKeyRef+ , "resourceFieldRef" .= v1EnvVarSourceResourceFieldRef+ , "secretKeyRef" .= v1EnvVarSourceSecretKeyRef+ ]+++-- | Construct a value of type 'V1EnvVarSource' (by applying it's required fields, if any)+mkV1EnvVarSource+ :: V1EnvVarSource+mkV1EnvVarSource =+ V1EnvVarSource+ { v1EnvVarSourceConfigMapKeyRef = Nothing+ , v1EnvVarSourceFieldRef = Nothing+ , v1EnvVarSourceFileKeyRef = Nothing+ , v1EnvVarSourceResourceFieldRef = Nothing+ , v1EnvVarSourceSecretKeyRef = Nothing+ }++-- ** V1EphemeralContainer+-- | V1EphemeralContainer+-- An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.+data V1EphemeralContainer = V1EphemeralContainer+ { v1EphemeralContainerArgs :: !(Maybe [Text]) -- ^ "args" - Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell+ , v1EphemeralContainerCommand :: !(Maybe [Text]) -- ^ "command" - Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell+ , v1EphemeralContainerEnv :: !(Maybe [V1EnvVar]) -- ^ "env" - List of environment variables to set in the container. Cannot be updated.+ , v1EphemeralContainerEnvFrom :: !(Maybe [V1EnvFromSource]) -- ^ "envFrom" - List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.+ , v1EphemeralContainerImage :: !(Maybe Text) -- ^ "image" - Container image name. More info: https://kubernetes.io/docs/concepts/containers/images+ , v1EphemeralContainerImagePullPolicy :: !(Maybe Text) -- ^ "imagePullPolicy" - Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images+ , v1EphemeralContainerLifecycle :: !(Maybe V1Lifecycle) -- ^ "lifecycle"+ , v1EphemeralContainerLivenessProbe :: !(Maybe V1Probe) -- ^ "livenessProbe"+ , v1EphemeralContainerName :: !(Text) -- ^ /Required/ "name" - Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.+ , v1EphemeralContainerPorts :: !(Maybe [V1ContainerPort]) -- ^ "ports" - Ports are not allowed for ephemeral containers.+ , v1EphemeralContainerReadinessProbe :: !(Maybe V1Probe) -- ^ "readinessProbe"+ , v1EphemeralContainerResizePolicy :: !(Maybe [V1ContainerResizePolicy]) -- ^ "resizePolicy" - Resources resize policy for the container.+ , v1EphemeralContainerResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"+ , v1EphemeralContainerRestartPolicy :: !(Maybe Text) -- ^ "restartPolicy" - Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.+ , v1EphemeralContainerRestartPolicyRules :: !(Maybe [V1ContainerRestartRule]) -- ^ "restartPolicyRules" - Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.+ , v1EphemeralContainerSecurityContext :: !(Maybe V1SecurityContext) -- ^ "securityContext"+ , v1EphemeralContainerStartupProbe :: !(Maybe V1Probe) -- ^ "startupProbe"+ , v1EphemeralContainerStdin :: !(Maybe Bool) -- ^ "stdin" - Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.+ , v1EphemeralContainerStdinOnce :: !(Maybe Bool) -- ^ "stdinOnce" - Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false+ , v1EphemeralContainerTargetContainerName :: !(Maybe Text) -- ^ "targetContainerName" - If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.+ , v1EphemeralContainerTerminationMessagePath :: !(Maybe Text) -- ^ "terminationMessagePath" - Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.+ , v1EphemeralContainerTerminationMessagePolicy :: !(Maybe Text) -- ^ "terminationMessagePolicy" - Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.+ , v1EphemeralContainerTty :: !(Maybe Bool) -- ^ "tty" - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.+ , v1EphemeralContainerVolumeDevices :: !(Maybe [V1VolumeDevice]) -- ^ "volumeDevices" - volumeDevices is the list of block devices to be used by the container.+ , v1EphemeralContainerVolumeMounts :: !(Maybe [V1VolumeMount]) -- ^ "volumeMounts" - Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.+ , v1EphemeralContainerWorkingDir :: !(Maybe Text) -- ^ "workingDir" - Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EphemeralContainer+instance A.FromJSON V1EphemeralContainer where+ parseJSON = A.withObject "V1EphemeralContainer" $ \o ->+ V1EphemeralContainer+ <$> (o .:? "args")+ <*> (o .:? "command")+ <*> (o .:? "env")+ <*> (o .:? "envFrom")+ <*> (o .:? "image")+ <*> (o .:? "imagePullPolicy")+ <*> (o .:? "lifecycle")+ <*> (o .:? "livenessProbe")+ <*> (o .: "name")+ <*> (o .:? "ports")+ <*> (o .:? "readinessProbe")+ <*> (o .:? "resizePolicy")+ <*> (o .:? "resources")+ <*> (o .:? "restartPolicy")+ <*> (o .:? "restartPolicyRules")+ <*> (o .:? "securityContext")+ <*> (o .:? "startupProbe")+ <*> (o .:? "stdin")+ <*> (o .:? "stdinOnce")+ <*> (o .:? "targetContainerName")+ <*> (o .:? "terminationMessagePath")+ <*> (o .:? "terminationMessagePolicy")+ <*> (o .:? "tty")+ <*> (o .:? "volumeDevices")+ <*> (o .:? "volumeMounts")+ <*> (o .:? "workingDir")++-- | ToJSON V1EphemeralContainer+instance A.ToJSON V1EphemeralContainer where+ toJSON V1EphemeralContainer {..} =+ _omitNulls+ [ "args" .= v1EphemeralContainerArgs+ , "command" .= v1EphemeralContainerCommand+ , "env" .= v1EphemeralContainerEnv+ , "envFrom" .= v1EphemeralContainerEnvFrom+ , "image" .= v1EphemeralContainerImage+ , "imagePullPolicy" .= v1EphemeralContainerImagePullPolicy+ , "lifecycle" .= v1EphemeralContainerLifecycle+ , "livenessProbe" .= v1EphemeralContainerLivenessProbe+ , "name" .= v1EphemeralContainerName+ , "ports" .= v1EphemeralContainerPorts+ , "readinessProbe" .= v1EphemeralContainerReadinessProbe+ , "resizePolicy" .= v1EphemeralContainerResizePolicy+ , "resources" .= v1EphemeralContainerResources+ , "restartPolicy" .= v1EphemeralContainerRestartPolicy+ , "restartPolicyRules" .= v1EphemeralContainerRestartPolicyRules+ , "securityContext" .= v1EphemeralContainerSecurityContext+ , "startupProbe" .= v1EphemeralContainerStartupProbe+ , "stdin" .= v1EphemeralContainerStdin+ , "stdinOnce" .= v1EphemeralContainerStdinOnce+ , "targetContainerName" .= v1EphemeralContainerTargetContainerName+ , "terminationMessagePath" .= v1EphemeralContainerTerminationMessagePath+ , "terminationMessagePolicy" .= v1EphemeralContainerTerminationMessagePolicy+ , "tty" .= v1EphemeralContainerTty+ , "volumeDevices" .= v1EphemeralContainerVolumeDevices+ , "volumeMounts" .= v1EphemeralContainerVolumeMounts+ , "workingDir" .= v1EphemeralContainerWorkingDir+ ]+++-- | Construct a value of type 'V1EphemeralContainer' (by applying it's required fields, if any)+mkV1EphemeralContainer+ :: Text -- ^ 'v1EphemeralContainerName': Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.+ -> V1EphemeralContainer+mkV1EphemeralContainer v1EphemeralContainerName =+ V1EphemeralContainer+ { v1EphemeralContainerArgs = Nothing+ , v1EphemeralContainerCommand = Nothing+ , v1EphemeralContainerEnv = Nothing+ , v1EphemeralContainerEnvFrom = Nothing+ , v1EphemeralContainerImage = Nothing+ , v1EphemeralContainerImagePullPolicy = Nothing+ , v1EphemeralContainerLifecycle = Nothing+ , v1EphemeralContainerLivenessProbe = Nothing+ , v1EphemeralContainerName+ , v1EphemeralContainerPorts = Nothing+ , v1EphemeralContainerReadinessProbe = Nothing+ , v1EphemeralContainerResizePolicy = Nothing+ , v1EphemeralContainerResources = Nothing+ , v1EphemeralContainerRestartPolicy = Nothing+ , v1EphemeralContainerRestartPolicyRules = Nothing+ , v1EphemeralContainerSecurityContext = Nothing+ , v1EphemeralContainerStartupProbe = Nothing+ , v1EphemeralContainerStdin = Nothing+ , v1EphemeralContainerStdinOnce = Nothing+ , v1EphemeralContainerTargetContainerName = Nothing+ , v1EphemeralContainerTerminationMessagePath = Nothing+ , v1EphemeralContainerTerminationMessagePolicy = Nothing+ , v1EphemeralContainerTty = Nothing+ , v1EphemeralContainerVolumeDevices = Nothing+ , v1EphemeralContainerVolumeMounts = Nothing+ , v1EphemeralContainerWorkingDir = Nothing+ }++-- ** V1EphemeralVolumeSource+-- | V1EphemeralVolumeSource+-- Represents an ephemeral volume that is handled by a normal storage driver.+data V1EphemeralVolumeSource = V1EphemeralVolumeSource+ { v1EphemeralVolumeSourceVolumeClaimTemplate :: !(Maybe V1PersistentVolumeClaimTemplate) -- ^ "volumeClaimTemplate"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EphemeralVolumeSource+instance A.FromJSON V1EphemeralVolumeSource where+ parseJSON = A.withObject "V1EphemeralVolumeSource" $ \o ->+ V1EphemeralVolumeSource+ <$> (o .:? "volumeClaimTemplate")++-- | ToJSON V1EphemeralVolumeSource+instance A.ToJSON V1EphemeralVolumeSource where+ toJSON V1EphemeralVolumeSource {..} =+ _omitNulls+ [ "volumeClaimTemplate" .= v1EphemeralVolumeSourceVolumeClaimTemplate+ ]+++-- | Construct a value of type 'V1EphemeralVolumeSource' (by applying it's required fields, if any)+mkV1EphemeralVolumeSource+ :: V1EphemeralVolumeSource+mkV1EphemeralVolumeSource =+ V1EphemeralVolumeSource+ { v1EphemeralVolumeSourceVolumeClaimTemplate = Nothing+ }++-- ** V1EventSource+-- | V1EventSource+-- EventSource contains information for an event.+data V1EventSource = V1EventSource+ { v1EventSourceComponent :: !(Maybe Text) -- ^ "component" - Component from which the event is generated.+ , v1EventSourceHost :: !(Maybe Text) -- ^ "host" - Node name on which the event is generated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1EventSource+instance A.FromJSON V1EventSource where+ parseJSON = A.withObject "V1EventSource" $ \o ->+ V1EventSource+ <$> (o .:? "component")+ <*> (o .:? "host")++-- | ToJSON V1EventSource+instance A.ToJSON V1EventSource where+ toJSON V1EventSource {..} =+ _omitNulls+ [ "component" .= v1EventSourceComponent+ , "host" .= v1EventSourceHost+ ]+++-- | Construct a value of type 'V1EventSource' (by applying it's required fields, if any)+mkV1EventSource+ :: V1EventSource+mkV1EventSource =+ V1EventSource+ { v1EventSourceComponent = Nothing+ , v1EventSourceHost = Nothing+ }++-- ** V1Eviction+-- | V1Eviction+-- Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.+data V1Eviction = V1Eviction+ { v1EvictionApiVersion :: !(Maybe Text) -- ^ "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+ , v1EvictionDeleteOptions :: !(Maybe V1DeleteOptions) -- ^ "deleteOptions"+ , v1EvictionKind :: !(Maybe Text) -- ^ "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+ , v1EvictionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Eviction+instance A.FromJSON V1Eviction where+ parseJSON = A.withObject "V1Eviction" $ \o ->+ V1Eviction+ <$> (o .:? "apiVersion")+ <*> (o .:? "deleteOptions")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1Eviction+instance A.ToJSON V1Eviction where+ toJSON V1Eviction {..} =+ _omitNulls+ [ "apiVersion" .= v1EvictionApiVersion+ , "deleteOptions" .= v1EvictionDeleteOptions+ , "kind" .= v1EvictionKind+ , "metadata" .= v1EvictionMetadata+ ]+++-- | Construct a value of type 'V1Eviction' (by applying it's required fields, if any)+mkV1Eviction+ :: V1Eviction+mkV1Eviction =+ V1Eviction+ { v1EvictionApiVersion = Nothing+ , v1EvictionDeleteOptions = Nothing+ , v1EvictionKind = Nothing+ , v1EvictionMetadata = Nothing+ }++-- ** V1ExactDeviceRequest+-- | V1ExactDeviceRequest+-- ExactDeviceRequest is a request for one or more identical devices.+data V1ExactDeviceRequest = V1ExactDeviceRequest+ { v1ExactDeviceRequestAdminAccess :: !(Maybe Bool) -- ^ "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.+ , v1ExactDeviceRequestAllocationMode :: !(Maybe Text) -- ^ "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. At least one device must exist on the node for the allocation to succeed. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.+ , v1ExactDeviceRequestCapacity :: !(Maybe V1CapacityRequirements) -- ^ "capacity"+ , v1ExactDeviceRequestCount :: !(Maybe Integer) -- ^ "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.+ , v1ExactDeviceRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A DeviceClassName is required. 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.+ , v1ExactDeviceRequestSelectors :: !(Maybe [V1DeviceSelector]) -- ^ "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.+ , v1ExactDeviceRequestTolerations :: !(Maybe [V1DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ExactDeviceRequest+instance A.FromJSON V1ExactDeviceRequest where+ parseJSON = A.withObject "V1ExactDeviceRequest" $ \o ->+ V1ExactDeviceRequest+ <$> (o .:? "adminAccess")+ <*> (o .:? "allocationMode")+ <*> (o .:? "capacity")+ <*> (o .:? "count")+ <*> (o .: "deviceClassName")+ <*> (o .:? "selectors")+ <*> (o .:? "tolerations")++-- | ToJSON V1ExactDeviceRequest+instance A.ToJSON V1ExactDeviceRequest where+ toJSON V1ExactDeviceRequest {..} =+ _omitNulls+ [ "adminAccess" .= v1ExactDeviceRequestAdminAccess+ , "allocationMode" .= v1ExactDeviceRequestAllocationMode+ , "capacity" .= v1ExactDeviceRequestCapacity+ , "count" .= v1ExactDeviceRequestCount+ , "deviceClassName" .= v1ExactDeviceRequestDeviceClassName+ , "selectors" .= v1ExactDeviceRequestSelectors+ , "tolerations" .= v1ExactDeviceRequestTolerations+ ]+++-- | Construct a value of type 'V1ExactDeviceRequest' (by applying it's required fields, if any)+mkV1ExactDeviceRequest+ :: Text -- ^ 'v1ExactDeviceRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A DeviceClassName is required. 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.+ -> V1ExactDeviceRequest+mkV1ExactDeviceRequest v1ExactDeviceRequestDeviceClassName =+ V1ExactDeviceRequest+ { v1ExactDeviceRequestAdminAccess = Nothing+ , v1ExactDeviceRequestAllocationMode = Nothing+ , v1ExactDeviceRequestCapacity = Nothing+ , v1ExactDeviceRequestCount = Nothing+ , v1ExactDeviceRequestDeviceClassName+ , v1ExactDeviceRequestSelectors = Nothing+ , v1ExactDeviceRequestTolerations = Nothing+ }++-- ** V1ExecAction+-- | V1ExecAction+-- ExecAction describes a \"run in container\" action.+data V1ExecAction = V1ExecAction+ { v1ExecActionCommand :: !(Maybe [Text]) -- ^ "command" - Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ExecAction+instance A.FromJSON V1ExecAction where+ parseJSON = A.withObject "V1ExecAction" $ \o ->+ V1ExecAction+ <$> (o .:? "command")++-- | ToJSON V1ExecAction+instance A.ToJSON V1ExecAction where+ toJSON V1ExecAction {..} =+ _omitNulls+ [ "command" .= v1ExecActionCommand+ ]+++-- | Construct a value of type 'V1ExecAction' (by applying it's required fields, if any)+mkV1ExecAction+ :: V1ExecAction+mkV1ExecAction =+ V1ExecAction+ { v1ExecActionCommand = Nothing+ }++-- ** V1ExemptPriorityLevelConfiguration+-- | V1ExemptPriorityLevelConfiguration+-- ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.+data V1ExemptPriorityLevelConfiguration = V1ExemptPriorityLevelConfiguration+ { v1ExemptPriorityLevelConfigurationLendablePercent :: !(Maybe Int) -- ^ "lendablePercent" - `lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows. LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )+ , v1ExemptPriorityLevelConfigurationNominalConcurrencyShares :: !(Maybe Int) -- ^ "nominalConcurrencyShares" - `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values: NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[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 zero.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ExemptPriorityLevelConfiguration+instance A.FromJSON V1ExemptPriorityLevelConfiguration where+ parseJSON = A.withObject "V1ExemptPriorityLevelConfiguration" $ \o ->+ V1ExemptPriorityLevelConfiguration+ <$> (o .:? "lendablePercent")+ <*> (o .:? "nominalConcurrencyShares")++-- | ToJSON V1ExemptPriorityLevelConfiguration+instance A.ToJSON V1ExemptPriorityLevelConfiguration where+ toJSON V1ExemptPriorityLevelConfiguration {..} =+ _omitNulls+ [ "lendablePercent" .= v1ExemptPriorityLevelConfigurationLendablePercent+ , "nominalConcurrencyShares" .= v1ExemptPriorityLevelConfigurationNominalConcurrencyShares+ ]+++-- | Construct a value of type 'V1ExemptPriorityLevelConfiguration' (by applying it's required fields, if any)+mkV1ExemptPriorityLevelConfiguration+ :: V1ExemptPriorityLevelConfiguration+mkV1ExemptPriorityLevelConfiguration =+ V1ExemptPriorityLevelConfiguration+ { v1ExemptPriorityLevelConfigurationLendablePercent = Nothing+ , v1ExemptPriorityLevelConfigurationNominalConcurrencyShares = Nothing+ }++-- ** V1ExpressionWarning+-- | V1ExpressionWarning+-- ExpressionWarning is a warning information that targets a specific expression.+data V1ExpressionWarning = V1ExpressionWarning+ { v1ExpressionWarningFieldRef :: !(Text) -- ^ /Required/ "fieldRef" - 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\"+ , v1ExpressionWarningWarning :: !(Text) -- ^ /Required/ "warning" - 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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ExpressionWarning+instance A.FromJSON V1ExpressionWarning where+ parseJSON = A.withObject "V1ExpressionWarning" $ \o ->+ V1ExpressionWarning+ <$> (o .: "fieldRef")+ <*> (o .: "warning")++-- | ToJSON V1ExpressionWarning+instance A.ToJSON V1ExpressionWarning where+ toJSON V1ExpressionWarning {..} =+ _omitNulls+ [ "fieldRef" .= v1ExpressionWarningFieldRef+ , "warning" .= v1ExpressionWarningWarning+ ]+++-- | Construct a value of type 'V1ExpressionWarning' (by applying it's required fields, if any)+mkV1ExpressionWarning+ :: Text -- ^ 'v1ExpressionWarningFieldRef': 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\"+ -> Text -- ^ 'v1ExpressionWarningWarning': 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.+ -> V1ExpressionWarning+mkV1ExpressionWarning v1ExpressionWarningFieldRef v1ExpressionWarningWarning =+ V1ExpressionWarning+ { v1ExpressionWarningFieldRef+ , v1ExpressionWarningWarning+ }++-- ** V1ExternalDocumentation+-- | V1ExternalDocumentation+-- ExternalDocumentation allows referencing an external resource for extended documentation.+data V1ExternalDocumentation = V1ExternalDocumentation+ { v1ExternalDocumentationDescription :: !(Maybe Text) -- ^ "description"+ , v1ExternalDocumentationUrl :: !(Maybe Text) -- ^ "url"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ExternalDocumentation+instance A.FromJSON V1ExternalDocumentation where+ parseJSON = A.withObject "V1ExternalDocumentation" $ \o ->+ V1ExternalDocumentation+ <$> (o .:? "description")+ <*> (o .:? "url")++-- | ToJSON V1ExternalDocumentation+instance A.ToJSON V1ExternalDocumentation where+ toJSON V1ExternalDocumentation {..} =+ _omitNulls+ [ "description" .= v1ExternalDocumentationDescription+ , "url" .= v1ExternalDocumentationUrl+ ]+++-- | Construct a value of type 'V1ExternalDocumentation' (by applying it's required fields, if any)+mkV1ExternalDocumentation+ :: V1ExternalDocumentation+mkV1ExternalDocumentation =+ V1ExternalDocumentation+ { v1ExternalDocumentationDescription = Nothing+ , v1ExternalDocumentationUrl = Nothing+ }++-- ** V1FCVolumeSource+-- | V1FCVolumeSource+-- Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.+data V1FCVolumeSource = V1FCVolumeSource+ { v1FCVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.+ , v1FCVolumeSourceLun :: !(Maybe Int) -- ^ "lun" - lun is Optional: FC target lun number+ , v1FCVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1FCVolumeSourceTargetWwns :: !(Maybe [Text]) -- ^ "targetWWNs" - targetWWNs is Optional: FC target worldwide names (WWNs)+ , v1FCVolumeSourceWwids :: !(Maybe [Text]) -- ^ "wwids" - wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FCVolumeSource+instance A.FromJSON V1FCVolumeSource where+ parseJSON = A.withObject "V1FCVolumeSource" $ \o ->+ V1FCVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "lun")+ <*> (o .:? "readOnly")+ <*> (o .:? "targetWWNs")+ <*> (o .:? "wwids")++-- | ToJSON V1FCVolumeSource+instance A.ToJSON V1FCVolumeSource where+ toJSON V1FCVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1FCVolumeSourceFsType+ , "lun" .= v1FCVolumeSourceLun+ , "readOnly" .= v1FCVolumeSourceReadOnly+ , "targetWWNs" .= v1FCVolumeSourceTargetWwns+ , "wwids" .= v1FCVolumeSourceWwids+ ]+++-- | Construct a value of type 'V1FCVolumeSource' (by applying it's required fields, if any)+mkV1FCVolumeSource+ :: V1FCVolumeSource+mkV1FCVolumeSource =+ V1FCVolumeSource+ { v1FCVolumeSourceFsType = Nothing+ , v1FCVolumeSourceLun = Nothing+ , v1FCVolumeSourceReadOnly = Nothing+ , v1FCVolumeSourceTargetWwns = Nothing+ , v1FCVolumeSourceWwids = Nothing+ }++-- ** V1FieldSelectorAttributes+-- | V1FieldSelectorAttributes+-- FieldSelectorAttributes indicates a field limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.+data V1FieldSelectorAttributes = V1FieldSelectorAttributes+ { v1FieldSelectorAttributesRawSelector :: !(Maybe Text) -- ^ "rawSelector" - rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.+ , v1FieldSelectorAttributesRequirements :: !(Maybe [V1FieldSelectorRequirement]) -- ^ "requirements" - requirements is the parsed interpretation of a field selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FieldSelectorAttributes+instance A.FromJSON V1FieldSelectorAttributes where+ parseJSON = A.withObject "V1FieldSelectorAttributes" $ \o ->+ V1FieldSelectorAttributes+ <$> (o .:? "rawSelector")+ <*> (o .:? "requirements")++-- | ToJSON V1FieldSelectorAttributes+instance A.ToJSON V1FieldSelectorAttributes where+ toJSON V1FieldSelectorAttributes {..} =+ _omitNulls+ [ "rawSelector" .= v1FieldSelectorAttributesRawSelector+ , "requirements" .= v1FieldSelectorAttributesRequirements+ ]+++-- | Construct a value of type 'V1FieldSelectorAttributes' (by applying it's required fields, if any)+mkV1FieldSelectorAttributes+ :: V1FieldSelectorAttributes+mkV1FieldSelectorAttributes =+ V1FieldSelectorAttributes+ { v1FieldSelectorAttributesRawSelector = Nothing+ , v1FieldSelectorAttributesRequirements = Nothing+ }++-- ** V1FieldSelectorRequirement+-- | V1FieldSelectorRequirement+-- FieldSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values.+data V1FieldSelectorRequirement = V1FieldSelectorRequirement+ { v1FieldSelectorRequirementKey :: !(Text) -- ^ /Required/ "key" - key is the field selector key that the requirement applies to.+ , v1FieldSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future.+ , v1FieldSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FieldSelectorRequirement+instance A.FromJSON V1FieldSelectorRequirement where+ parseJSON = A.withObject "V1FieldSelectorRequirement" $ \o ->+ V1FieldSelectorRequirement+ <$> (o .: "key")+ <*> (o .: "operator")+ <*> (o .:? "values")++-- | ToJSON V1FieldSelectorRequirement+instance A.ToJSON V1FieldSelectorRequirement where+ toJSON V1FieldSelectorRequirement {..} =+ _omitNulls+ [ "key" .= v1FieldSelectorRequirementKey+ , "operator" .= v1FieldSelectorRequirementOperator+ , "values" .= v1FieldSelectorRequirementValues+ ]+++-- | Construct a value of type 'V1FieldSelectorRequirement' (by applying it's required fields, if any)+mkV1FieldSelectorRequirement+ :: Text -- ^ 'v1FieldSelectorRequirementKey': key is the field selector key that the requirement applies to.+ -> Text -- ^ 'v1FieldSelectorRequirementOperator': operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future.+ -> V1FieldSelectorRequirement+mkV1FieldSelectorRequirement v1FieldSelectorRequirementKey v1FieldSelectorRequirementOperator =+ V1FieldSelectorRequirement+ { v1FieldSelectorRequirementKey+ , v1FieldSelectorRequirementOperator+ , v1FieldSelectorRequirementValues = Nothing+ }++-- ** V1FileKeySelector+-- | V1FileKeySelector+-- FileKeySelector selects a key of the env file.+data V1FileKeySelector = V1FileKeySelector+ { v1FileKeySelectorKey :: !(Text) -- ^ /Required/ "key" - The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.+ , v1FileKeySelectorOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. If optional is set to false and the specified key does not exist, an error will be returned during Pod creation.+ , v1FileKeySelectorPath :: !(Text) -- ^ /Required/ "path" - The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.+ , v1FileKeySelectorVolumeName :: !(Text) -- ^ /Required/ "volumeName" - The name of the volume mount containing the env file.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FileKeySelector+instance A.FromJSON V1FileKeySelector where+ parseJSON = A.withObject "V1FileKeySelector" $ \o ->+ V1FileKeySelector+ <$> (o .: "key")+ <*> (o .:? "optional")+ <*> (o .: "path")+ <*> (o .: "volumeName")++-- | ToJSON V1FileKeySelector+instance A.ToJSON V1FileKeySelector where+ toJSON V1FileKeySelector {..} =+ _omitNulls+ [ "key" .= v1FileKeySelectorKey+ , "optional" .= v1FileKeySelectorOptional+ , "path" .= v1FileKeySelectorPath+ , "volumeName" .= v1FileKeySelectorVolumeName+ ]+++-- | Construct a value of type 'V1FileKeySelector' (by applying it's required fields, if any)+mkV1FileKeySelector+ :: Text -- ^ 'v1FileKeySelectorKey': The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.+ -> Text -- ^ 'v1FileKeySelectorPath': The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.+ -> Text -- ^ 'v1FileKeySelectorVolumeName': The name of the volume mount containing the env file.+ -> V1FileKeySelector+mkV1FileKeySelector v1FileKeySelectorKey v1FileKeySelectorPath v1FileKeySelectorVolumeName =+ V1FileKeySelector+ { v1FileKeySelectorKey+ , v1FileKeySelectorOptional = Nothing+ , v1FileKeySelectorPath+ , v1FileKeySelectorVolumeName+ }++-- ** V1FlexPersistentVolumeSource+-- | V1FlexPersistentVolumeSource+-- FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.+data V1FlexPersistentVolumeSource = V1FlexPersistentVolumeSource+ { v1FlexPersistentVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the driver to use for this volume.+ , v1FlexPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.+ , v1FlexPersistentVolumeSourceOptions :: !(Maybe (Map.Map String Text)) -- ^ "options" - options is Optional: this field holds extra command options if any.+ , v1FlexPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1FlexPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlexPersistentVolumeSource+instance A.FromJSON V1FlexPersistentVolumeSource where+ parseJSON = A.withObject "V1FlexPersistentVolumeSource" $ \o ->+ V1FlexPersistentVolumeSource+ <$> (o .: "driver")+ <*> (o .:? "fsType")+ <*> (o .:? "options")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")++-- | ToJSON V1FlexPersistentVolumeSource+instance A.ToJSON V1FlexPersistentVolumeSource where+ toJSON V1FlexPersistentVolumeSource {..} =+ _omitNulls+ [ "driver" .= v1FlexPersistentVolumeSourceDriver+ , "fsType" .= v1FlexPersistentVolumeSourceFsType+ , "options" .= v1FlexPersistentVolumeSourceOptions+ , "readOnly" .= v1FlexPersistentVolumeSourceReadOnly+ , "secretRef" .= v1FlexPersistentVolumeSourceSecretRef+ ]+++-- | Construct a value of type 'V1FlexPersistentVolumeSource' (by applying it's required fields, if any)+mkV1FlexPersistentVolumeSource+ :: Text -- ^ 'v1FlexPersistentVolumeSourceDriver': driver is the name of the driver to use for this volume.+ -> V1FlexPersistentVolumeSource+mkV1FlexPersistentVolumeSource v1FlexPersistentVolumeSourceDriver =+ V1FlexPersistentVolumeSource+ { v1FlexPersistentVolumeSourceDriver+ , v1FlexPersistentVolumeSourceFsType = Nothing+ , v1FlexPersistentVolumeSourceOptions = Nothing+ , v1FlexPersistentVolumeSourceReadOnly = Nothing+ , v1FlexPersistentVolumeSourceSecretRef = Nothing+ }++-- ** V1FlexVolumeSource+-- | V1FlexVolumeSource+-- FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.+data V1FlexVolumeSource = V1FlexVolumeSource+ { v1FlexVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the driver to use for this volume.+ , v1FlexVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.+ , v1FlexVolumeSourceOptions :: !(Maybe (Map.Map String Text)) -- ^ "options" - options is Optional: this field holds extra command options if any.+ , v1FlexVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1FlexVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlexVolumeSource+instance A.FromJSON V1FlexVolumeSource where+ parseJSON = A.withObject "V1FlexVolumeSource" $ \o ->+ V1FlexVolumeSource+ <$> (o .: "driver")+ <*> (o .:? "fsType")+ <*> (o .:? "options")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")++-- | ToJSON V1FlexVolumeSource+instance A.ToJSON V1FlexVolumeSource where+ toJSON V1FlexVolumeSource {..} =+ _omitNulls+ [ "driver" .= v1FlexVolumeSourceDriver+ , "fsType" .= v1FlexVolumeSourceFsType+ , "options" .= v1FlexVolumeSourceOptions+ , "readOnly" .= v1FlexVolumeSourceReadOnly+ , "secretRef" .= v1FlexVolumeSourceSecretRef+ ]+++-- | Construct a value of type 'V1FlexVolumeSource' (by applying it's required fields, if any)+mkV1FlexVolumeSource+ :: Text -- ^ 'v1FlexVolumeSourceDriver': driver is the name of the driver to use for this volume.+ -> V1FlexVolumeSource+mkV1FlexVolumeSource v1FlexVolumeSourceDriver =+ V1FlexVolumeSource+ { v1FlexVolumeSourceDriver+ , v1FlexVolumeSourceFsType = Nothing+ , v1FlexVolumeSourceOptions = Nothing+ , v1FlexVolumeSourceReadOnly = Nothing+ , v1FlexVolumeSourceSecretRef = Nothing+ }++-- ** V1FlockerVolumeSource+-- | V1FlockerVolumeSource+-- Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.+data V1FlockerVolumeSource = V1FlockerVolumeSource+ { v1FlockerVolumeSourceDatasetName :: !(Maybe Text) -- ^ "datasetName" - datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated+ , v1FlockerVolumeSourceDatasetUuid :: !(Maybe Text) -- ^ "datasetUUID" - datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlockerVolumeSource+instance A.FromJSON V1FlockerVolumeSource where+ parseJSON = A.withObject "V1FlockerVolumeSource" $ \o ->+ V1FlockerVolumeSource+ <$> (o .:? "datasetName")+ <*> (o .:? "datasetUUID")++-- | ToJSON V1FlockerVolumeSource+instance A.ToJSON V1FlockerVolumeSource where+ toJSON V1FlockerVolumeSource {..} =+ _omitNulls+ [ "datasetName" .= v1FlockerVolumeSourceDatasetName+ , "datasetUUID" .= v1FlockerVolumeSourceDatasetUuid+ ]+++-- | Construct a value of type 'V1FlockerVolumeSource' (by applying it's required fields, if any)+mkV1FlockerVolumeSource+ :: V1FlockerVolumeSource+mkV1FlockerVolumeSource =+ V1FlockerVolumeSource+ { v1FlockerVolumeSourceDatasetName = Nothing+ , v1FlockerVolumeSourceDatasetUuid = Nothing+ }++-- ** V1FlowDistinguisherMethod+-- | V1FlowDistinguisherMethod+-- FlowDistinguisherMethod specifies the method of a flow distinguisher.+data V1FlowDistinguisherMethod = V1FlowDistinguisherMethod+ { v1FlowDistinguisherMethodType :: !(Text) -- ^ /Required/ "type" - `type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlowDistinguisherMethod+instance A.FromJSON V1FlowDistinguisherMethod where+ parseJSON = A.withObject "V1FlowDistinguisherMethod" $ \o ->+ V1FlowDistinguisherMethod+ <$> (o .: "type")++-- | ToJSON V1FlowDistinguisherMethod+instance A.ToJSON V1FlowDistinguisherMethod where+ toJSON V1FlowDistinguisherMethod {..} =+ _omitNulls+ [ "type" .= v1FlowDistinguisherMethodType+ ]+++-- | Construct a value of type 'V1FlowDistinguisherMethod' (by applying it's required fields, if any)+mkV1FlowDistinguisherMethod+ :: Text -- ^ 'v1FlowDistinguisherMethodType': `type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.+ -> V1FlowDistinguisherMethod+mkV1FlowDistinguisherMethod v1FlowDistinguisherMethodType =+ V1FlowDistinguisherMethod+ { v1FlowDistinguisherMethodType+ }++-- ** V1FlowSchema+-- | V1FlowSchema+-- FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".+data V1FlowSchema = V1FlowSchema+ { v1FlowSchemaApiVersion :: !(Maybe Text) -- ^ "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+ , v1FlowSchemaKind :: !(Maybe Text) -- ^ "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+ , v1FlowSchemaMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1FlowSchemaSpec :: !(Maybe V1FlowSchemaSpec) -- ^ "spec"+ , v1FlowSchemaStatus :: !(Maybe V1FlowSchemaStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlowSchema+instance A.FromJSON V1FlowSchema where+ parseJSON = A.withObject "V1FlowSchema" $ \o ->+ V1FlowSchema+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1FlowSchema+instance A.ToJSON V1FlowSchema where+ toJSON V1FlowSchema {..} =+ _omitNulls+ [ "apiVersion" .= v1FlowSchemaApiVersion+ , "kind" .= v1FlowSchemaKind+ , "metadata" .= v1FlowSchemaMetadata+ , "spec" .= v1FlowSchemaSpec+ , "status" .= v1FlowSchemaStatus+ ]+++-- | Construct a value of type 'V1FlowSchema' (by applying it's required fields, if any)+mkV1FlowSchema+ :: V1FlowSchema+mkV1FlowSchema =+ V1FlowSchema+ { v1FlowSchemaApiVersion = Nothing+ , v1FlowSchemaKind = Nothing+ , v1FlowSchemaMetadata = Nothing+ , v1FlowSchemaSpec = Nothing+ , v1FlowSchemaStatus = Nothing+ }++-- ** V1FlowSchemaCondition+-- | V1FlowSchemaCondition+-- FlowSchemaCondition describes conditions for a FlowSchema.+data V1FlowSchemaCondition = V1FlowSchemaCondition+ { v1FlowSchemaConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - `lastTransitionTime` is the last time the condition transitioned from one status to another.+ , v1FlowSchemaConditionMessage :: !(Maybe Text) -- ^ "message" - `message` is a human-readable message indicating details about last transition.+ , v1FlowSchemaConditionReason :: !(Maybe Text) -- ^ "reason" - `reason` is a unique, one-word, CamelCase reason for the condition's last transition.+ , v1FlowSchemaConditionStatus :: !(Maybe Text) -- ^ "status" - `status` is the status of the condition. Can be True, False, Unknown. Required.+ , v1FlowSchemaConditionType :: !(Maybe Text) -- ^ "type" - `type` is the type of the condition. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlowSchemaCondition+instance A.FromJSON V1FlowSchemaCondition where+ parseJSON = A.withObject "V1FlowSchemaCondition" $ \o ->+ V1FlowSchemaCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .:? "status")+ <*> (o .:? "type")++-- | ToJSON V1FlowSchemaCondition+instance A.ToJSON V1FlowSchemaCondition where+ toJSON V1FlowSchemaCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1FlowSchemaConditionLastTransitionTime+ , "message" .= v1FlowSchemaConditionMessage+ , "reason" .= v1FlowSchemaConditionReason+ , "status" .= v1FlowSchemaConditionStatus+ , "type" .= v1FlowSchemaConditionType+ ]+++-- | Construct a value of type 'V1FlowSchemaCondition' (by applying it's required fields, if any)+mkV1FlowSchemaCondition+ :: V1FlowSchemaCondition+mkV1FlowSchemaCondition =+ V1FlowSchemaCondition+ { v1FlowSchemaConditionLastTransitionTime = Nothing+ , v1FlowSchemaConditionMessage = Nothing+ , v1FlowSchemaConditionReason = Nothing+ , v1FlowSchemaConditionStatus = Nothing+ , v1FlowSchemaConditionType = Nothing+ }++-- ** V1FlowSchemaList+-- | V1FlowSchemaList+-- FlowSchemaList is a list of FlowSchema objects.+data V1FlowSchemaList = V1FlowSchemaList+ { v1FlowSchemaListApiVersion :: !(Maybe Text) -- ^ "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+ , v1FlowSchemaListItems :: !([V1FlowSchema]) -- ^ /Required/ "items" - `items` is a list of FlowSchemas.+ , v1FlowSchemaListKind :: !(Maybe Text) -- ^ "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+ , v1FlowSchemaListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlowSchemaList+instance A.FromJSON V1FlowSchemaList where+ parseJSON = A.withObject "V1FlowSchemaList" $ \o ->+ V1FlowSchemaList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1FlowSchemaList+instance A.ToJSON V1FlowSchemaList where+ toJSON V1FlowSchemaList {..} =+ _omitNulls+ [ "apiVersion" .= v1FlowSchemaListApiVersion+ , "items" .= v1FlowSchemaListItems+ , "kind" .= v1FlowSchemaListKind+ , "metadata" .= v1FlowSchemaListMetadata+ ]+++-- | Construct a value of type 'V1FlowSchemaList' (by applying it's required fields, if any)+mkV1FlowSchemaList+ :: [V1FlowSchema] -- ^ 'v1FlowSchemaListItems': `items` is a list of FlowSchemas.+ -> V1FlowSchemaList+mkV1FlowSchemaList v1FlowSchemaListItems =+ V1FlowSchemaList+ { v1FlowSchemaListApiVersion = Nothing+ , v1FlowSchemaListItems+ , v1FlowSchemaListKind = Nothing+ , v1FlowSchemaListMetadata = Nothing+ }++-- ** V1FlowSchemaSpec+-- | V1FlowSchemaSpec+-- FlowSchemaSpec describes how the FlowSchema's specification looks like.+data V1FlowSchemaSpec = V1FlowSchemaSpec+ { v1FlowSchemaSpecDistinguisherMethod :: !(Maybe V1FlowDistinguisherMethod) -- ^ "distinguisherMethod"+ , v1FlowSchemaSpecMatchingPrecedence :: !(Maybe Int) -- ^ "matchingPrecedence" - `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.+ , v1FlowSchemaSpecPriorityLevelConfiguration :: !(V1PriorityLevelConfigurationReference) -- ^ /Required/ "priorityLevelConfiguration"+ , v1FlowSchemaSpecRules :: !(Maybe [V1PolicyRulesWithSubjects]) -- ^ "rules" - `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlowSchemaSpec+instance A.FromJSON V1FlowSchemaSpec where+ parseJSON = A.withObject "V1FlowSchemaSpec" $ \o ->+ V1FlowSchemaSpec+ <$> (o .:? "distinguisherMethod")+ <*> (o .:? "matchingPrecedence")+ <*> (o .: "priorityLevelConfiguration")+ <*> (o .:? "rules")++-- | ToJSON V1FlowSchemaSpec+instance A.ToJSON V1FlowSchemaSpec where+ toJSON V1FlowSchemaSpec {..} =+ _omitNulls+ [ "distinguisherMethod" .= v1FlowSchemaSpecDistinguisherMethod+ , "matchingPrecedence" .= v1FlowSchemaSpecMatchingPrecedence+ , "priorityLevelConfiguration" .= v1FlowSchemaSpecPriorityLevelConfiguration+ , "rules" .= v1FlowSchemaSpecRules+ ]+++-- | Construct a value of type 'V1FlowSchemaSpec' (by applying it's required fields, if any)+mkV1FlowSchemaSpec+ :: V1PriorityLevelConfigurationReference -- ^ 'v1FlowSchemaSpecPriorityLevelConfiguration' + -> V1FlowSchemaSpec+mkV1FlowSchemaSpec v1FlowSchemaSpecPriorityLevelConfiguration =+ V1FlowSchemaSpec+ { v1FlowSchemaSpecDistinguisherMethod = Nothing+ , v1FlowSchemaSpecMatchingPrecedence = Nothing+ , v1FlowSchemaSpecPriorityLevelConfiguration+ , v1FlowSchemaSpecRules = Nothing+ }++-- ** V1FlowSchemaStatus+-- | V1FlowSchemaStatus+-- FlowSchemaStatus represents the current state of a FlowSchema.+data V1FlowSchemaStatus = V1FlowSchemaStatus+ { v1FlowSchemaStatusConditions :: !(Maybe [V1FlowSchemaCondition]) -- ^ "conditions" - `conditions` is a list of the current states of FlowSchema.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1FlowSchemaStatus+instance A.FromJSON V1FlowSchemaStatus where+ parseJSON = A.withObject "V1FlowSchemaStatus" $ \o ->+ V1FlowSchemaStatus+ <$> (o .:? "conditions")++-- | ToJSON V1FlowSchemaStatus+instance A.ToJSON V1FlowSchemaStatus where+ toJSON V1FlowSchemaStatus {..} =+ _omitNulls+ [ "conditions" .= v1FlowSchemaStatusConditions+ ]+++-- | Construct a value of type 'V1FlowSchemaStatus' (by applying it's required fields, if any)+mkV1FlowSchemaStatus+ :: V1FlowSchemaStatus+mkV1FlowSchemaStatus =+ V1FlowSchemaStatus+ { v1FlowSchemaStatusConditions = Nothing+ }++-- ** V1ForNode+-- | V1ForNode+-- ForNode provides information about which nodes should consume this endpoint.+data V1ForNode = V1ForNode+ { v1ForNodeName :: !(Text) -- ^ /Required/ "name" - name represents the name of the node.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ForNode+instance A.FromJSON V1ForNode where+ parseJSON = A.withObject "V1ForNode" $ \o ->+ V1ForNode+ <$> (o .: "name")++-- | ToJSON V1ForNode+instance A.ToJSON V1ForNode where+ toJSON V1ForNode {..} =+ _omitNulls+ [ "name" .= v1ForNodeName+ ]+++-- | Construct a value of type 'V1ForNode' (by applying it's required fields, if any)+mkV1ForNode+ :: Text -- ^ 'v1ForNodeName': name represents the name of the node.+ -> V1ForNode+mkV1ForNode v1ForNodeName =+ V1ForNode+ { v1ForNodeName+ }++-- ** V1ForZone+-- | V1ForZone+-- ForZone provides information about which zones should consume this endpoint.+data V1ForZone = V1ForZone+ { v1ForZoneName :: !(Text) -- ^ /Required/ "name" - name represents the name of the zone.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ForZone+instance A.FromJSON V1ForZone where+ parseJSON = A.withObject "V1ForZone" $ \o ->+ V1ForZone+ <$> (o .: "name")++-- | ToJSON V1ForZone+instance A.ToJSON V1ForZone where+ toJSON V1ForZone {..} =+ _omitNulls+ [ "name" .= v1ForZoneName+ ]+++-- | Construct a value of type 'V1ForZone' (by applying it's required fields, if any)+mkV1ForZone+ :: Text -- ^ 'v1ForZoneName': name represents the name of the zone.+ -> V1ForZone+mkV1ForZone v1ForZoneName =+ V1ForZone+ { v1ForZoneName+ }++-- ** V1GCEPersistentDiskVolumeSource+-- | V1GCEPersistentDiskVolumeSource+-- Represents a Persistent Disk resource in Google Compute Engine. A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.+data V1GCEPersistentDiskVolumeSource = V1GCEPersistentDiskVolumeSource+ { v1GCEPersistentDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk+ , v1GCEPersistentDiskVolumeSourcePartition :: !(Maybe Int) -- ^ "partition" - partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk+ , v1GCEPersistentDiskVolumeSourcePdName :: !(Text) -- ^ /Required/ "pdName" - pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk+ , v1GCEPersistentDiskVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1GCEPersistentDiskVolumeSource+instance A.FromJSON V1GCEPersistentDiskVolumeSource where+ parseJSON = A.withObject "V1GCEPersistentDiskVolumeSource" $ \o ->+ V1GCEPersistentDiskVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "partition")+ <*> (o .: "pdName")+ <*> (o .:? "readOnly")++-- | ToJSON V1GCEPersistentDiskVolumeSource+instance A.ToJSON V1GCEPersistentDiskVolumeSource where+ toJSON V1GCEPersistentDiskVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1GCEPersistentDiskVolumeSourceFsType+ , "partition" .= v1GCEPersistentDiskVolumeSourcePartition+ , "pdName" .= v1GCEPersistentDiskVolumeSourcePdName+ , "readOnly" .= v1GCEPersistentDiskVolumeSourceReadOnly+ ]+++-- | Construct a value of type 'V1GCEPersistentDiskVolumeSource' (by applying it's required fields, if any)+mkV1GCEPersistentDiskVolumeSource+ :: Text -- ^ 'v1GCEPersistentDiskVolumeSourcePdName': pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk+ -> V1GCEPersistentDiskVolumeSource+mkV1GCEPersistentDiskVolumeSource v1GCEPersistentDiskVolumeSourcePdName =+ V1GCEPersistentDiskVolumeSource+ { v1GCEPersistentDiskVolumeSourceFsType = Nothing+ , v1GCEPersistentDiskVolumeSourcePartition = Nothing+ , v1GCEPersistentDiskVolumeSourcePdName+ , v1GCEPersistentDiskVolumeSourceReadOnly = Nothing+ }++-- ** V1GRPCAction+-- | V1GRPCAction+-- GRPCAction specifies an action involving a GRPC service.+data V1GRPCAction = V1GRPCAction+ { v1GRPCActionPort :: !(Int) -- ^ /Required/ "port" - Port number of the gRPC service. Number must be in the range 1 to 65535.+ , v1GRPCActionService :: !(Maybe Text) -- ^ "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). If this is not specified, the default behavior is defined by gRPC.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1GRPCAction+instance A.FromJSON V1GRPCAction where+ parseJSON = A.withObject "V1GRPCAction" $ \o ->+ V1GRPCAction+ <$> (o .: "port")+ <*> (o .:? "service")++-- | ToJSON V1GRPCAction+instance A.ToJSON V1GRPCAction where+ toJSON V1GRPCAction {..} =+ _omitNulls+ [ "port" .= v1GRPCActionPort+ , "service" .= v1GRPCActionService+ ]+++-- | Construct a value of type 'V1GRPCAction' (by applying it's required fields, if any)+mkV1GRPCAction+ :: Int -- ^ 'v1GRPCActionPort': Port number of the gRPC service. Number must be in the range 1 to 65535.+ -> V1GRPCAction+mkV1GRPCAction v1GRPCActionPort =+ V1GRPCAction+ { v1GRPCActionPort+ , v1GRPCActionService = Nothing+ }++-- ** V1GitRepoVolumeSource+-- | V1GitRepoVolumeSource+-- Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling. 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.+data V1GitRepoVolumeSource = V1GitRepoVolumeSource+ { v1GitRepoVolumeSourceDirectory :: !(Maybe Text) -- ^ "directory" - directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.+ , v1GitRepoVolumeSourceRepository :: !(Text) -- ^ /Required/ "repository" - repository is the URL+ , v1GitRepoVolumeSourceRevision :: !(Maybe Text) -- ^ "revision" - revision is the commit hash for the specified revision.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1GitRepoVolumeSource+instance A.FromJSON V1GitRepoVolumeSource where+ parseJSON = A.withObject "V1GitRepoVolumeSource" $ \o ->+ V1GitRepoVolumeSource+ <$> (o .:? "directory")+ <*> (o .: "repository")+ <*> (o .:? "revision")++-- | ToJSON V1GitRepoVolumeSource+instance A.ToJSON V1GitRepoVolumeSource where+ toJSON V1GitRepoVolumeSource {..} =+ _omitNulls+ [ "directory" .= v1GitRepoVolumeSourceDirectory+ , "repository" .= v1GitRepoVolumeSourceRepository+ , "revision" .= v1GitRepoVolumeSourceRevision+ ]+++-- | Construct a value of type 'V1GitRepoVolumeSource' (by applying it's required fields, if any)+mkV1GitRepoVolumeSource+ :: Text -- ^ 'v1GitRepoVolumeSourceRepository': repository is the URL+ -> V1GitRepoVolumeSource+mkV1GitRepoVolumeSource v1GitRepoVolumeSourceRepository =+ V1GitRepoVolumeSource+ { v1GitRepoVolumeSourceDirectory = Nothing+ , v1GitRepoVolumeSourceRepository+ , v1GitRepoVolumeSourceRevision = Nothing+ }++-- ** V1GlusterfsPersistentVolumeSource+-- | V1GlusterfsPersistentVolumeSource+-- Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.+data V1GlusterfsPersistentVolumeSource = V1GlusterfsPersistentVolumeSource+ { v1GlusterfsPersistentVolumeSourceEndpoints :: !(Text) -- ^ /Required/ "endpoints" - endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ , v1GlusterfsPersistentVolumeSourceEndpointsNamespace :: !(Maybe Text) -- ^ "endpointsNamespace" - endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ , v1GlusterfsPersistentVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ , v1GlusterfsPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1GlusterfsPersistentVolumeSource+instance A.FromJSON V1GlusterfsPersistentVolumeSource where+ parseJSON = A.withObject "V1GlusterfsPersistentVolumeSource" $ \o ->+ V1GlusterfsPersistentVolumeSource+ <$> (o .: "endpoints")+ <*> (o .:? "endpointsNamespace")+ <*> (o .: "path")+ <*> (o .:? "readOnly")++-- | ToJSON V1GlusterfsPersistentVolumeSource+instance A.ToJSON V1GlusterfsPersistentVolumeSource where+ toJSON V1GlusterfsPersistentVolumeSource {..} =+ _omitNulls+ [ "endpoints" .= v1GlusterfsPersistentVolumeSourceEndpoints+ , "endpointsNamespace" .= v1GlusterfsPersistentVolumeSourceEndpointsNamespace+ , "path" .= v1GlusterfsPersistentVolumeSourcePath+ , "readOnly" .= v1GlusterfsPersistentVolumeSourceReadOnly+ ]+++-- | Construct a value of type 'V1GlusterfsPersistentVolumeSource' (by applying it's required fields, if any)+mkV1GlusterfsPersistentVolumeSource+ :: Text -- ^ 'v1GlusterfsPersistentVolumeSourceEndpoints': endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ -> Text -- ^ 'v1GlusterfsPersistentVolumeSourcePath': path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ -> V1GlusterfsPersistentVolumeSource+mkV1GlusterfsPersistentVolumeSource v1GlusterfsPersistentVolumeSourceEndpoints v1GlusterfsPersistentVolumeSourcePath =+ V1GlusterfsPersistentVolumeSource+ { v1GlusterfsPersistentVolumeSourceEndpoints+ , v1GlusterfsPersistentVolumeSourceEndpointsNamespace = Nothing+ , v1GlusterfsPersistentVolumeSourcePath+ , v1GlusterfsPersistentVolumeSourceReadOnly = Nothing+ }++-- ** V1GlusterfsVolumeSource+-- | V1GlusterfsVolumeSource+-- Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.+data V1GlusterfsVolumeSource = V1GlusterfsVolumeSource+ { v1GlusterfsVolumeSourceEndpoints :: !(Text) -- ^ /Required/ "endpoints" - endpoints is the endpoint name that details Glusterfs topology.+ , v1GlusterfsVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ , v1GlusterfsVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1GlusterfsVolumeSource+instance A.FromJSON V1GlusterfsVolumeSource where+ parseJSON = A.withObject "V1GlusterfsVolumeSource" $ \o ->+ V1GlusterfsVolumeSource+ <$> (o .: "endpoints")+ <*> (o .: "path")+ <*> (o .:? "readOnly")++-- | ToJSON V1GlusterfsVolumeSource+instance A.ToJSON V1GlusterfsVolumeSource where+ toJSON V1GlusterfsVolumeSource {..} =+ _omitNulls+ [ "endpoints" .= v1GlusterfsVolumeSourceEndpoints+ , "path" .= v1GlusterfsVolumeSourcePath+ , "readOnly" .= v1GlusterfsVolumeSourceReadOnly+ ]+++-- | Construct a value of type 'V1GlusterfsVolumeSource' (by applying it's required fields, if any)+mkV1GlusterfsVolumeSource+ :: Text -- ^ 'v1GlusterfsVolumeSourceEndpoints': endpoints is the endpoint name that details Glusterfs topology.+ -> Text -- ^ 'v1GlusterfsVolumeSourcePath': path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod+ -> V1GlusterfsVolumeSource+mkV1GlusterfsVolumeSource v1GlusterfsVolumeSourceEndpoints v1GlusterfsVolumeSourcePath =+ V1GlusterfsVolumeSource+ { v1GlusterfsVolumeSourceEndpoints+ , v1GlusterfsVolumeSourcePath+ , v1GlusterfsVolumeSourceReadOnly = Nothing+ }++-- ** V1GroupResource+-- | V1GroupResource+-- GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types+data V1GroupResource = V1GroupResource+ { v1GroupResourceGroup :: !(Text) -- ^ /Required/ "group"+ , v1GroupResourceResource :: !(Text) -- ^ /Required/ "resource"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1GroupResource+instance A.FromJSON V1GroupResource where+ parseJSON = A.withObject "V1GroupResource" $ \o ->+ V1GroupResource+ <$> (o .: "group")+ <*> (o .: "resource")++-- | ToJSON V1GroupResource+instance A.ToJSON V1GroupResource where+ toJSON V1GroupResource {..} =+ _omitNulls+ [ "group" .= v1GroupResourceGroup+ , "resource" .= v1GroupResourceResource+ ]+++-- | Construct a value of type 'V1GroupResource' (by applying it's required fields, if any)+mkV1GroupResource+ :: Text -- ^ 'v1GroupResourceGroup' + -> Text -- ^ 'v1GroupResourceResource' + -> V1GroupResource+mkV1GroupResource v1GroupResourceGroup v1GroupResourceResource =+ V1GroupResource+ { v1GroupResourceGroup+ , v1GroupResourceResource+ }++-- ** V1GroupSubject+-- | V1GroupSubject+-- GroupSubject holds detailed information for group-kind subject.+data V1GroupSubject = V1GroupSubject+ { v1GroupSubjectName :: !(Text) -- ^ /Required/ "name" - name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1GroupSubject+instance A.FromJSON V1GroupSubject where+ parseJSON = A.withObject "V1GroupSubject" $ \o ->+ V1GroupSubject+ <$> (o .: "name")++-- | ToJSON V1GroupSubject+instance A.ToJSON V1GroupSubject where+ toJSON V1GroupSubject {..} =+ _omitNulls+ [ "name" .= v1GroupSubjectName+ ]+++-- | Construct a value of type 'V1GroupSubject' (by applying it's required fields, if any)+mkV1GroupSubject+ :: Text -- ^ 'v1GroupSubjectName': name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.+ -> V1GroupSubject+mkV1GroupSubject v1GroupSubjectName =+ V1GroupSubject+ { v1GroupSubjectName+ }++-- ** V1GroupVersionForDiscovery+-- | V1GroupVersionForDiscovery+-- GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.+data V1GroupVersionForDiscovery = V1GroupVersionForDiscovery+ { v1GroupVersionForDiscoveryGroupVersion :: !(Text) -- ^ /Required/ "groupVersion" - groupVersion specifies the API group and version in the form \"group/version\"+ , v1GroupVersionForDiscoveryVersion :: !(Text) -- ^ /Required/ "version" - version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1GroupVersionForDiscovery+instance A.FromJSON V1GroupVersionForDiscovery where+ parseJSON = A.withObject "V1GroupVersionForDiscovery" $ \o ->+ V1GroupVersionForDiscovery+ <$> (o .: "groupVersion")+ <*> (o .: "version")++-- | ToJSON V1GroupVersionForDiscovery+instance A.ToJSON V1GroupVersionForDiscovery where+ toJSON V1GroupVersionForDiscovery {..} =+ _omitNulls+ [ "groupVersion" .= v1GroupVersionForDiscoveryGroupVersion+ , "version" .= v1GroupVersionForDiscoveryVersion+ ]+++-- | Construct a value of type 'V1GroupVersionForDiscovery' (by applying it's required fields, if any)+mkV1GroupVersionForDiscovery+ :: Text -- ^ 'v1GroupVersionForDiscoveryGroupVersion': groupVersion specifies the API group and version in the form \"group/version\"+ -> Text -- ^ 'v1GroupVersionForDiscoveryVersion': version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.+ -> V1GroupVersionForDiscovery+mkV1GroupVersionForDiscovery v1GroupVersionForDiscoveryGroupVersion v1GroupVersionForDiscoveryVersion =+ V1GroupVersionForDiscovery+ { v1GroupVersionForDiscoveryGroupVersion+ , v1GroupVersionForDiscoveryVersion+ }++-- ** V1HTTPGetAction+-- | V1HTTPGetAction+-- HTTPGetAction describes an action based on HTTP Get requests.+data V1HTTPGetAction = V1HTTPGetAction+ { v1HTTPGetActionHost :: !(Maybe Text) -- ^ "host" - Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.+ , v1HTTPGetActionHttpHeaders :: !(Maybe [V1HTTPHeader]) -- ^ "httpHeaders" - Custom headers to set in the request. HTTP allows repeated headers.+ , v1HTTPGetActionPath :: !(Maybe Text) -- ^ "path" - Path to access on the HTTP server.+ , v1HTTPGetActionPort :: !(IntOrString) -- ^ /Required/ "port"+ , v1HTTPGetActionScheme :: !(Maybe Text) -- ^ "scheme" - Scheme to use for connecting to the host. Defaults to HTTP.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HTTPGetAction+instance A.FromJSON V1HTTPGetAction where+ parseJSON = A.withObject "V1HTTPGetAction" $ \o ->+ V1HTTPGetAction+ <$> (o .:? "host")+ <*> (o .:? "httpHeaders")+ <*> (o .:? "path")+ <*> (o .: "port")+ <*> (o .:? "scheme")++-- | ToJSON V1HTTPGetAction+instance A.ToJSON V1HTTPGetAction where+ toJSON V1HTTPGetAction {..} =+ _omitNulls+ [ "host" .= v1HTTPGetActionHost+ , "httpHeaders" .= v1HTTPGetActionHttpHeaders+ , "path" .= v1HTTPGetActionPath+ , "port" .= v1HTTPGetActionPort+ , "scheme" .= v1HTTPGetActionScheme+ ]+++-- | Construct a value of type 'V1HTTPGetAction' (by applying it's required fields, if any)+mkV1HTTPGetAction+ :: IntOrString -- ^ 'v1HTTPGetActionPort' + -> V1HTTPGetAction+mkV1HTTPGetAction v1HTTPGetActionPort =+ V1HTTPGetAction+ { v1HTTPGetActionHost = Nothing+ , v1HTTPGetActionHttpHeaders = Nothing+ , v1HTTPGetActionPath = Nothing+ , v1HTTPGetActionPort+ , v1HTTPGetActionScheme = Nothing+ }++-- ** V1HTTPHeader+-- | V1HTTPHeader+-- HTTPHeader describes a custom header to be used in HTTP probes+data V1HTTPHeader = V1HTTPHeader+ { v1HTTPHeaderName :: !(Text) -- ^ /Required/ "name" - The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.+ , v1HTTPHeaderValue :: !(Text) -- ^ /Required/ "value" - The header field value+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HTTPHeader+instance A.FromJSON V1HTTPHeader where+ parseJSON = A.withObject "V1HTTPHeader" $ \o ->+ V1HTTPHeader+ <$> (o .: "name")+ <*> (o .: "value")++-- | ToJSON V1HTTPHeader+instance A.ToJSON V1HTTPHeader where+ toJSON V1HTTPHeader {..} =+ _omitNulls+ [ "name" .= v1HTTPHeaderName+ , "value" .= v1HTTPHeaderValue+ ]+++-- | Construct a value of type 'V1HTTPHeader' (by applying it's required fields, if any)+mkV1HTTPHeader+ :: Text -- ^ 'v1HTTPHeaderName': The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.+ -> Text -- ^ 'v1HTTPHeaderValue': The header field value+ -> V1HTTPHeader+mkV1HTTPHeader v1HTTPHeaderName v1HTTPHeaderValue =+ V1HTTPHeader+ { v1HTTPHeaderName+ , v1HTTPHeaderValue+ }++-- ** V1HTTPIngressPath+-- | V1HTTPIngressPath+-- HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.+data V1HTTPIngressPath = V1HTTPIngressPath+ { v1HTTPIngressPathBackend :: !(V1IngressBackend) -- ^ /Required/ "backend"+ , v1HTTPIngressPathPath :: !(Maybe Text) -- ^ "path" - path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \"Exact\" or \"Prefix\".+ , v1HTTPIngressPathPathType :: !(Text) -- ^ /Required/ "pathType" - pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is done on a path element by element basis. A path element refers is the list of labels in the path split by the '/' separator. A request is a match for path p if every p is an element-wise prefix of p of the request path. Note that if the last element of the path is a substring of the last element in request path, it is not a match (e.g. /foo/bar matches /foo/bar/baz, but does not match /foo/barbaz). * ImplementationSpecific: Interpretation of the Path matching is up to the IngressClass. Implementations can treat this as a separate PathType or treat it identically to Prefix or Exact path types. Implementations are required to support all path types.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HTTPIngressPath+instance A.FromJSON V1HTTPIngressPath where+ parseJSON = A.withObject "V1HTTPIngressPath" $ \o ->+ V1HTTPIngressPath+ <$> (o .: "backend")+ <*> (o .:? "path")+ <*> (o .: "pathType")++-- | ToJSON V1HTTPIngressPath+instance A.ToJSON V1HTTPIngressPath where+ toJSON V1HTTPIngressPath {..} =+ _omitNulls+ [ "backend" .= v1HTTPIngressPathBackend+ , "path" .= v1HTTPIngressPathPath+ , "pathType" .= v1HTTPIngressPathPathType+ ]+++-- | Construct a value of type 'V1HTTPIngressPath' (by applying it's required fields, if any)+mkV1HTTPIngressPath+ :: V1IngressBackend -- ^ 'v1HTTPIngressPathBackend' + -> Text -- ^ 'v1HTTPIngressPathPathType': pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is done on a path element by element basis. A path element refers is the list of labels in the path split by the '/' separator. A request is a match for path p if every p is an element-wise prefix of p of the request path. Note that if the last element of the path is a substring of the last element in request path, it is not a match (e.g. /foo/bar matches /foo/bar/baz, but does not match /foo/barbaz). * ImplementationSpecific: Interpretation of the Path matching is up to the IngressClass. Implementations can treat this as a separate PathType or treat it identically to Prefix or Exact path types. Implementations are required to support all path types.+ -> V1HTTPIngressPath+mkV1HTTPIngressPath v1HTTPIngressPathBackend v1HTTPIngressPathPathType =+ V1HTTPIngressPath+ { v1HTTPIngressPathBackend+ , v1HTTPIngressPathPath = Nothing+ , v1HTTPIngressPathPathType+ }++-- ** V1HTTPIngressRuleValue+-- | V1HTTPIngressRuleValue+-- HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.+data V1HTTPIngressRuleValue = V1HTTPIngressRuleValue+ { v1HTTPIngressRuleValuePaths :: !([V1HTTPIngressPath]) -- ^ /Required/ "paths" - paths is a collection of paths that map requests to backends.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HTTPIngressRuleValue+instance A.FromJSON V1HTTPIngressRuleValue where+ parseJSON = A.withObject "V1HTTPIngressRuleValue" $ \o ->+ V1HTTPIngressRuleValue+ <$> (o .: "paths")++-- | ToJSON V1HTTPIngressRuleValue+instance A.ToJSON V1HTTPIngressRuleValue where+ toJSON V1HTTPIngressRuleValue {..} =+ _omitNulls+ [ "paths" .= v1HTTPIngressRuleValuePaths+ ]+++-- | Construct a value of type 'V1HTTPIngressRuleValue' (by applying it's required fields, if any)+mkV1HTTPIngressRuleValue+ :: [V1HTTPIngressPath] -- ^ 'v1HTTPIngressRuleValuePaths': paths is a collection of paths that map requests to backends.+ -> V1HTTPIngressRuleValue+mkV1HTTPIngressRuleValue v1HTTPIngressRuleValuePaths =+ V1HTTPIngressRuleValue+ { v1HTTPIngressRuleValuePaths+ }++-- ** V1HorizontalPodAutoscaler+-- | V1HorizontalPodAutoscaler+-- configuration of a horizontal pod autoscaler.+data V1HorizontalPodAutoscaler = V1HorizontalPodAutoscaler+ { v1HorizontalPodAutoscalerApiVersion :: !(Maybe Text) -- ^ "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+ , v1HorizontalPodAutoscalerKind :: !(Maybe Text) -- ^ "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+ , v1HorizontalPodAutoscalerMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1HorizontalPodAutoscalerSpec :: !(Maybe V1HorizontalPodAutoscalerSpec) -- ^ "spec"+ , v1HorizontalPodAutoscalerStatus :: !(Maybe V1HorizontalPodAutoscalerStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HorizontalPodAutoscaler+instance A.FromJSON V1HorizontalPodAutoscaler where+ parseJSON = A.withObject "V1HorizontalPodAutoscaler" $ \o ->+ V1HorizontalPodAutoscaler+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1HorizontalPodAutoscaler+instance A.ToJSON V1HorizontalPodAutoscaler where+ toJSON V1HorizontalPodAutoscaler {..} =+ _omitNulls+ [ "apiVersion" .= v1HorizontalPodAutoscalerApiVersion+ , "kind" .= v1HorizontalPodAutoscalerKind+ , "metadata" .= v1HorizontalPodAutoscalerMetadata+ , "spec" .= v1HorizontalPodAutoscalerSpec+ , "status" .= v1HorizontalPodAutoscalerStatus+ ]+++-- | Construct a value of type 'V1HorizontalPodAutoscaler' (by applying it's required fields, if any)+mkV1HorizontalPodAutoscaler+ :: V1HorizontalPodAutoscaler+mkV1HorizontalPodAutoscaler =+ V1HorizontalPodAutoscaler+ { v1HorizontalPodAutoscalerApiVersion = Nothing+ , v1HorizontalPodAutoscalerKind = Nothing+ , v1HorizontalPodAutoscalerMetadata = Nothing+ , v1HorizontalPodAutoscalerSpec = Nothing+ , v1HorizontalPodAutoscalerStatus = Nothing+ }++-- ** V1HorizontalPodAutoscalerList+-- | V1HorizontalPodAutoscalerList+-- list of horizontal pod autoscaler objects.+data V1HorizontalPodAutoscalerList = V1HorizontalPodAutoscalerList+ { v1HorizontalPodAutoscalerListApiVersion :: !(Maybe Text) -- ^ "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+ , v1HorizontalPodAutoscalerListItems :: !([V1HorizontalPodAutoscaler]) -- ^ /Required/ "items" - items is the list of horizontal pod autoscaler objects.+ , v1HorizontalPodAutoscalerListKind :: !(Maybe Text) -- ^ "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+ , v1HorizontalPodAutoscalerListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HorizontalPodAutoscalerList+instance A.FromJSON V1HorizontalPodAutoscalerList where+ parseJSON = A.withObject "V1HorizontalPodAutoscalerList" $ \o ->+ V1HorizontalPodAutoscalerList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1HorizontalPodAutoscalerList+instance A.ToJSON V1HorizontalPodAutoscalerList where+ toJSON V1HorizontalPodAutoscalerList {..} =+ _omitNulls+ [ "apiVersion" .= v1HorizontalPodAutoscalerListApiVersion+ , "items" .= v1HorizontalPodAutoscalerListItems+ , "kind" .= v1HorizontalPodAutoscalerListKind+ , "metadata" .= v1HorizontalPodAutoscalerListMetadata+ ]+++-- | Construct a value of type 'V1HorizontalPodAutoscalerList' (by applying it's required fields, if any)+mkV1HorizontalPodAutoscalerList+ :: [V1HorizontalPodAutoscaler] -- ^ 'v1HorizontalPodAutoscalerListItems': items is the list of horizontal pod autoscaler objects.+ -> V1HorizontalPodAutoscalerList+mkV1HorizontalPodAutoscalerList v1HorizontalPodAutoscalerListItems =+ V1HorizontalPodAutoscalerList+ { v1HorizontalPodAutoscalerListApiVersion = Nothing+ , v1HorizontalPodAutoscalerListItems+ , v1HorizontalPodAutoscalerListKind = Nothing+ , v1HorizontalPodAutoscalerListMetadata = Nothing+ }++-- ** V1HorizontalPodAutoscalerSpec+-- | V1HorizontalPodAutoscalerSpec+-- specification of a horizontal pod autoscaler.+data V1HorizontalPodAutoscalerSpec = V1HorizontalPodAutoscalerSpec+ { v1HorizontalPodAutoscalerSpecMaxReplicas :: !(Int) -- ^ /Required/ "maxReplicas" - maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.+ , v1HorizontalPodAutoscalerSpecMinReplicas :: !(Maybe Int) -- ^ "minReplicas" - minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.+ , v1HorizontalPodAutoscalerSpecScaleTargetRef :: !(V1CrossVersionObjectReference) -- ^ /Required/ "scaleTargetRef"+ , v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage :: !(Maybe Int) -- ^ "targetCPUUtilizationPercentage" - targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HorizontalPodAutoscalerSpec+instance A.FromJSON V1HorizontalPodAutoscalerSpec where+ parseJSON = A.withObject "V1HorizontalPodAutoscalerSpec" $ \o ->+ V1HorizontalPodAutoscalerSpec+ <$> (o .: "maxReplicas")+ <*> (o .:? "minReplicas")+ <*> (o .: "scaleTargetRef")+ <*> (o .:? "targetCPUUtilizationPercentage")++-- | ToJSON V1HorizontalPodAutoscalerSpec+instance A.ToJSON V1HorizontalPodAutoscalerSpec where+ toJSON V1HorizontalPodAutoscalerSpec {..} =+ _omitNulls+ [ "maxReplicas" .= v1HorizontalPodAutoscalerSpecMaxReplicas+ , "minReplicas" .= v1HorizontalPodAutoscalerSpecMinReplicas+ , "scaleTargetRef" .= v1HorizontalPodAutoscalerSpecScaleTargetRef+ , "targetCPUUtilizationPercentage" .= v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage+ ]+++-- | Construct a value of type 'V1HorizontalPodAutoscalerSpec' (by applying it's required fields, if any)+mkV1HorizontalPodAutoscalerSpec+ :: Int -- ^ 'v1HorizontalPodAutoscalerSpecMaxReplicas': maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.+ -> V1CrossVersionObjectReference -- ^ 'v1HorizontalPodAutoscalerSpecScaleTargetRef' + -> V1HorizontalPodAutoscalerSpec+mkV1HorizontalPodAutoscalerSpec v1HorizontalPodAutoscalerSpecMaxReplicas v1HorizontalPodAutoscalerSpecScaleTargetRef =+ V1HorizontalPodAutoscalerSpec+ { v1HorizontalPodAutoscalerSpecMaxReplicas+ , v1HorizontalPodAutoscalerSpecMinReplicas = Nothing+ , v1HorizontalPodAutoscalerSpecScaleTargetRef+ , v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage = Nothing+ }++-- ** V1HorizontalPodAutoscalerStatus+-- | V1HorizontalPodAutoscalerStatus+-- current status of a horizontal pod autoscaler+data V1HorizontalPodAutoscalerStatus = V1HorizontalPodAutoscalerStatus+ { v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage :: !(Maybe Int) -- ^ "currentCPUUtilizationPercentage" - currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.+ , v1HorizontalPodAutoscalerStatusCurrentReplicas :: !(Int) -- ^ /Required/ "currentReplicas" - currentReplicas is the current number of replicas of pods managed by this autoscaler.+ , v1HorizontalPodAutoscalerStatusDesiredReplicas :: !(Int) -- ^ /Required/ "desiredReplicas" - desiredReplicas is the desired number of replicas of pods managed by this autoscaler.+ , v1HorizontalPodAutoscalerStatusLastScaleTime :: !(Maybe DateTime) -- ^ "lastScaleTime" - lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.+ , v1HorizontalPodAutoscalerStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed by this autoscaler.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HorizontalPodAutoscalerStatus+instance A.FromJSON V1HorizontalPodAutoscalerStatus where+ parseJSON = A.withObject "V1HorizontalPodAutoscalerStatus" $ \o ->+ V1HorizontalPodAutoscalerStatus+ <$> (o .:? "currentCPUUtilizationPercentage")+ <*> (o .: "currentReplicas")+ <*> (o .: "desiredReplicas")+ <*> (o .:? "lastScaleTime")+ <*> (o .:? "observedGeneration")++-- | ToJSON V1HorizontalPodAutoscalerStatus+instance A.ToJSON V1HorizontalPodAutoscalerStatus where+ toJSON V1HorizontalPodAutoscalerStatus {..} =+ _omitNulls+ [ "currentCPUUtilizationPercentage" .= v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage+ , "currentReplicas" .= v1HorizontalPodAutoscalerStatusCurrentReplicas+ , "desiredReplicas" .= v1HorizontalPodAutoscalerStatusDesiredReplicas+ , "lastScaleTime" .= v1HorizontalPodAutoscalerStatusLastScaleTime+ , "observedGeneration" .= v1HorizontalPodAutoscalerStatusObservedGeneration+ ]+++-- | Construct a value of type 'V1HorizontalPodAutoscalerStatus' (by applying it's required fields, if any)+mkV1HorizontalPodAutoscalerStatus+ :: Int -- ^ 'v1HorizontalPodAutoscalerStatusCurrentReplicas': currentReplicas is the current number of replicas of pods managed by this autoscaler.+ -> Int -- ^ 'v1HorizontalPodAutoscalerStatusDesiredReplicas': desiredReplicas is the desired number of replicas of pods managed by this autoscaler.+ -> V1HorizontalPodAutoscalerStatus+mkV1HorizontalPodAutoscalerStatus v1HorizontalPodAutoscalerStatusCurrentReplicas v1HorizontalPodAutoscalerStatusDesiredReplicas =+ V1HorizontalPodAutoscalerStatus+ { v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage = Nothing+ , v1HorizontalPodAutoscalerStatusCurrentReplicas+ , v1HorizontalPodAutoscalerStatusDesiredReplicas+ , v1HorizontalPodAutoscalerStatusLastScaleTime = Nothing+ , v1HorizontalPodAutoscalerStatusObservedGeneration = Nothing+ }++-- ** V1HostAlias+-- | V1HostAlias+-- HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.+data V1HostAlias = V1HostAlias+ { v1HostAliasHostnames :: !(Maybe [Text]) -- ^ "hostnames" - Hostnames for the above IP address.+ , v1HostAliasIp :: !(Text) -- ^ /Required/ "ip" - IP address of the host file entry.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HostAlias+instance A.FromJSON V1HostAlias where+ parseJSON = A.withObject "V1HostAlias" $ \o ->+ V1HostAlias+ <$> (o .:? "hostnames")+ <*> (o .: "ip")++-- | ToJSON V1HostAlias+instance A.ToJSON V1HostAlias where+ toJSON V1HostAlias {..} =+ _omitNulls+ [ "hostnames" .= v1HostAliasHostnames+ , "ip" .= v1HostAliasIp+ ]+++-- | Construct a value of type 'V1HostAlias' (by applying it's required fields, if any)+mkV1HostAlias+ :: Text -- ^ 'v1HostAliasIp': IP address of the host file entry.+ -> V1HostAlias+mkV1HostAlias v1HostAliasIp =+ V1HostAlias+ { v1HostAliasHostnames = Nothing+ , v1HostAliasIp+ }++-- ** V1HostIP+-- | V1HostIP+-- HostIP represents a single IP address allocated to the host.+data V1HostIP = V1HostIP+ { v1HostIPIp :: !(Text) -- ^ /Required/ "ip" - IP is the IP address assigned to the host+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HostIP+instance A.FromJSON V1HostIP where+ parseJSON = A.withObject "V1HostIP" $ \o ->+ V1HostIP+ <$> (o .: "ip")++-- | ToJSON V1HostIP+instance A.ToJSON V1HostIP where+ toJSON V1HostIP {..} =+ _omitNulls+ [ "ip" .= v1HostIPIp+ ]+++-- | Construct a value of type 'V1HostIP' (by applying it's required fields, if any)+mkV1HostIP+ :: Text -- ^ 'v1HostIPIp': IP is the IP address assigned to the host+ -> V1HostIP+mkV1HostIP v1HostIPIp =+ V1HostIP+ { v1HostIPIp+ }++-- ** V1HostPathVolumeSource+-- | V1HostPathVolumeSource+-- Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.+data V1HostPathVolumeSource = V1HostPathVolumeSource+ { v1HostPathVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath+ , v1HostPathVolumeSourceType :: !(Maybe Text) -- ^ "type" - type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1HostPathVolumeSource+instance A.FromJSON V1HostPathVolumeSource where+ parseJSON = A.withObject "V1HostPathVolumeSource" $ \o ->+ V1HostPathVolumeSource+ <$> (o .: "path")+ <*> (o .:? "type")++-- | ToJSON V1HostPathVolumeSource+instance A.ToJSON V1HostPathVolumeSource where+ toJSON V1HostPathVolumeSource {..} =+ _omitNulls+ [ "path" .= v1HostPathVolumeSourcePath+ , "type" .= v1HostPathVolumeSourceType+ ]+++-- | Construct a value of type 'V1HostPathVolumeSource' (by applying it's required fields, if any)+mkV1HostPathVolumeSource+ :: Text -- ^ 'v1HostPathVolumeSourcePath': path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath+ -> V1HostPathVolumeSource+mkV1HostPathVolumeSource v1HostPathVolumeSourcePath =+ V1HostPathVolumeSource+ { v1HostPathVolumeSourcePath+ , v1HostPathVolumeSourceType = Nothing+ }++-- ** V1IPAddress+-- | V1IPAddress+-- IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1+data V1IPAddress = V1IPAddress+ { v1IPAddressApiVersion :: !(Maybe Text) -- ^ "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+ , v1IPAddressKind :: !(Maybe Text) -- ^ "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+ , v1IPAddressMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1IPAddressSpec :: !(Maybe V1IPAddressSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IPAddress+instance A.FromJSON V1IPAddress where+ parseJSON = A.withObject "V1IPAddress" $ \o ->+ V1IPAddress+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1IPAddress+instance A.ToJSON V1IPAddress where+ toJSON V1IPAddress {..} =+ _omitNulls+ [ "apiVersion" .= v1IPAddressApiVersion+ , "kind" .= v1IPAddressKind+ , "metadata" .= v1IPAddressMetadata+ , "spec" .= v1IPAddressSpec+ ]+++-- | Construct a value of type 'V1IPAddress' (by applying it's required fields, if any)+mkV1IPAddress+ :: V1IPAddress+mkV1IPAddress =+ V1IPAddress+ { v1IPAddressApiVersion = Nothing+ , v1IPAddressKind = Nothing+ , v1IPAddressMetadata = Nothing+ , v1IPAddressSpec = Nothing+ }++-- ** V1IPAddressList+-- | V1IPAddressList+-- IPAddressList contains a list of IPAddress.+data V1IPAddressList = V1IPAddressList+ { v1IPAddressListApiVersion :: !(Maybe Text) -- ^ "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+ , v1IPAddressListItems :: !([V1IPAddress]) -- ^ /Required/ "items" - items is the list of IPAddresses.+ , v1IPAddressListKind :: !(Maybe Text) -- ^ "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+ , v1IPAddressListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IPAddressList+instance A.FromJSON V1IPAddressList where+ parseJSON = A.withObject "V1IPAddressList" $ \o ->+ V1IPAddressList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1IPAddressList+instance A.ToJSON V1IPAddressList where+ toJSON V1IPAddressList {..} =+ _omitNulls+ [ "apiVersion" .= v1IPAddressListApiVersion+ , "items" .= v1IPAddressListItems+ , "kind" .= v1IPAddressListKind+ , "metadata" .= v1IPAddressListMetadata+ ]+++-- | Construct a value of type 'V1IPAddressList' (by applying it's required fields, if any)+mkV1IPAddressList+ :: [V1IPAddress] -- ^ 'v1IPAddressListItems': items is the list of IPAddresses.+ -> V1IPAddressList+mkV1IPAddressList v1IPAddressListItems =+ V1IPAddressList+ { v1IPAddressListApiVersion = Nothing+ , v1IPAddressListItems+ , v1IPAddressListKind = Nothing+ , v1IPAddressListMetadata = Nothing+ }++-- ** V1IPAddressSpec+-- | V1IPAddressSpec+-- IPAddressSpec describe the attributes in an IP Address.+data V1IPAddressSpec = V1IPAddressSpec+ { v1IPAddressSpecParentRef :: !(V1ParentReference) -- ^ /Required/ "parentRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IPAddressSpec+instance A.FromJSON V1IPAddressSpec where+ parseJSON = A.withObject "V1IPAddressSpec" $ \o ->+ V1IPAddressSpec+ <$> (o .: "parentRef")++-- | ToJSON V1IPAddressSpec+instance A.ToJSON V1IPAddressSpec where+ toJSON V1IPAddressSpec {..} =+ _omitNulls+ [ "parentRef" .= v1IPAddressSpecParentRef+ ]+++-- | Construct a value of type 'V1IPAddressSpec' (by applying it's required fields, if any)+mkV1IPAddressSpec+ :: V1ParentReference -- ^ 'v1IPAddressSpecParentRef' + -> V1IPAddressSpec+mkV1IPAddressSpec v1IPAddressSpecParentRef =+ V1IPAddressSpec+ { v1IPAddressSpecParentRef+ }++-- ** V1IPBlock+-- | V1IPBlock+-- IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.+data V1IPBlock = V1IPBlock+ { v1IPBlockCidr :: !(Text) -- ^ /Required/ "cidr" - cidr is a string representing the IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"+ , v1IPBlockExcept :: !(Maybe [Text]) -- ^ "except" - except is a slice of CIDRs that should not be included within an IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\" Except values will be rejected if they are outside the cidr range+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IPBlock+instance A.FromJSON V1IPBlock where+ parseJSON = A.withObject "V1IPBlock" $ \o ->+ V1IPBlock+ <$> (o .: "cidr")+ <*> (o .:? "except")++-- | ToJSON V1IPBlock+instance A.ToJSON V1IPBlock where+ toJSON V1IPBlock {..} =+ _omitNulls+ [ "cidr" .= v1IPBlockCidr+ , "except" .= v1IPBlockExcept+ ]+++-- | Construct a value of type 'V1IPBlock' (by applying it's required fields, if any)+mkV1IPBlock+ :: Text -- ^ 'v1IPBlockCidr': cidr is a string representing the IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"+ -> V1IPBlock+mkV1IPBlock v1IPBlockCidr =+ V1IPBlock+ { v1IPBlockCidr+ , v1IPBlockExcept = Nothing+ }++-- ** V1ISCSIPersistentVolumeSource+-- | V1ISCSIPersistentVolumeSource+-- ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.+data V1ISCSIPersistentVolumeSource = V1ISCSIPersistentVolumeSource+ { v1ISCSIPersistentVolumeSourceChapAuthDiscovery :: !(Maybe Bool) -- ^ "chapAuthDiscovery" - chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication+ , v1ISCSIPersistentVolumeSourceChapAuthSession :: !(Maybe Bool) -- ^ "chapAuthSession" - chapAuthSession defines whether support iSCSI Session CHAP authentication+ , v1ISCSIPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi+ , v1ISCSIPersistentVolumeSourceInitiatorName :: !(Maybe Text) -- ^ "initiatorName" - initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.+ , v1ISCSIPersistentVolumeSourceIqn :: !(Text) -- ^ /Required/ "iqn" - iqn is Target iSCSI Qualified Name.+ , v1ISCSIPersistentVolumeSourceIscsiInterface :: !(Maybe Text) -- ^ "iscsiInterface" - iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).+ , v1ISCSIPersistentVolumeSourceLun :: !(Int) -- ^ /Required/ "lun" - lun is iSCSI Target Lun number.+ , v1ISCSIPersistentVolumeSourcePortals :: !(Maybe [Text]) -- ^ "portals" - portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).+ , v1ISCSIPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.+ , v1ISCSIPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"+ , v1ISCSIPersistentVolumeSourceTargetPortal :: !(Text) -- ^ /Required/ "targetPortal" - targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ISCSIPersistentVolumeSource+instance A.FromJSON V1ISCSIPersistentVolumeSource where+ parseJSON = A.withObject "V1ISCSIPersistentVolumeSource" $ \o ->+ V1ISCSIPersistentVolumeSource+ <$> (o .:? "chapAuthDiscovery")+ <*> (o .:? "chapAuthSession")+ <*> (o .:? "fsType")+ <*> (o .:? "initiatorName")+ <*> (o .: "iqn")+ <*> (o .:? "iscsiInterface")+ <*> (o .: "lun")+ <*> (o .:? "portals")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")+ <*> (o .: "targetPortal")++-- | ToJSON V1ISCSIPersistentVolumeSource+instance A.ToJSON V1ISCSIPersistentVolumeSource where+ toJSON V1ISCSIPersistentVolumeSource {..} =+ _omitNulls+ [ "chapAuthDiscovery" .= v1ISCSIPersistentVolumeSourceChapAuthDiscovery+ , "chapAuthSession" .= v1ISCSIPersistentVolumeSourceChapAuthSession+ , "fsType" .= v1ISCSIPersistentVolumeSourceFsType+ , "initiatorName" .= v1ISCSIPersistentVolumeSourceInitiatorName+ , "iqn" .= v1ISCSIPersistentVolumeSourceIqn+ , "iscsiInterface" .= v1ISCSIPersistentVolumeSourceIscsiInterface+ , "lun" .= v1ISCSIPersistentVolumeSourceLun+ , "portals" .= v1ISCSIPersistentVolumeSourcePortals+ , "readOnly" .= v1ISCSIPersistentVolumeSourceReadOnly+ , "secretRef" .= v1ISCSIPersistentVolumeSourceSecretRef+ , "targetPortal" .= v1ISCSIPersistentVolumeSourceTargetPortal+ ]+++-- | Construct a value of type 'V1ISCSIPersistentVolumeSource' (by applying it's required fields, if any)+mkV1ISCSIPersistentVolumeSource+ :: Text -- ^ 'v1ISCSIPersistentVolumeSourceIqn': iqn is Target iSCSI Qualified Name.+ -> Int -- ^ 'v1ISCSIPersistentVolumeSourceLun': lun is iSCSI Target Lun number.+ -> Text -- ^ 'v1ISCSIPersistentVolumeSourceTargetPortal': targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).+ -> V1ISCSIPersistentVolumeSource+mkV1ISCSIPersistentVolumeSource v1ISCSIPersistentVolumeSourceIqn v1ISCSIPersistentVolumeSourceLun v1ISCSIPersistentVolumeSourceTargetPortal =+ V1ISCSIPersistentVolumeSource+ { v1ISCSIPersistentVolumeSourceChapAuthDiscovery = Nothing+ , v1ISCSIPersistentVolumeSourceChapAuthSession = Nothing+ , v1ISCSIPersistentVolumeSourceFsType = Nothing+ , v1ISCSIPersistentVolumeSourceInitiatorName = Nothing+ , v1ISCSIPersistentVolumeSourceIqn+ , v1ISCSIPersistentVolumeSourceIscsiInterface = Nothing+ , v1ISCSIPersistentVolumeSourceLun+ , v1ISCSIPersistentVolumeSourcePortals = Nothing+ , v1ISCSIPersistentVolumeSourceReadOnly = Nothing+ , v1ISCSIPersistentVolumeSourceSecretRef = Nothing+ , v1ISCSIPersistentVolumeSourceTargetPortal+ }++-- ** V1ISCSIVolumeSource+-- | V1ISCSIVolumeSource+-- Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.+data V1ISCSIVolumeSource = V1ISCSIVolumeSource+ { v1ISCSIVolumeSourceChapAuthDiscovery :: !(Maybe Bool) -- ^ "chapAuthDiscovery" - chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication+ , v1ISCSIVolumeSourceChapAuthSession :: !(Maybe Bool) -- ^ "chapAuthSession" - chapAuthSession defines whether support iSCSI Session CHAP authentication+ , v1ISCSIVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi+ , v1ISCSIVolumeSourceInitiatorName :: !(Maybe Text) -- ^ "initiatorName" - initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.+ , v1ISCSIVolumeSourceIqn :: !(Text) -- ^ /Required/ "iqn" - iqn is the target iSCSI Qualified Name.+ , v1ISCSIVolumeSourceIscsiInterface :: !(Maybe Text) -- ^ "iscsiInterface" - iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).+ , v1ISCSIVolumeSourceLun :: !(Int) -- ^ /Required/ "lun" - lun represents iSCSI Target Lun number.+ , v1ISCSIVolumeSourcePortals :: !(Maybe [Text]) -- ^ "portals" - portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).+ , v1ISCSIVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.+ , v1ISCSIVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"+ , v1ISCSIVolumeSourceTargetPortal :: !(Text) -- ^ /Required/ "targetPortal" - targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ISCSIVolumeSource+instance A.FromJSON V1ISCSIVolumeSource where+ parseJSON = A.withObject "V1ISCSIVolumeSource" $ \o ->+ V1ISCSIVolumeSource+ <$> (o .:? "chapAuthDiscovery")+ <*> (o .:? "chapAuthSession")+ <*> (o .:? "fsType")+ <*> (o .:? "initiatorName")+ <*> (o .: "iqn")+ <*> (o .:? "iscsiInterface")+ <*> (o .: "lun")+ <*> (o .:? "portals")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")+ <*> (o .: "targetPortal")++-- | ToJSON V1ISCSIVolumeSource+instance A.ToJSON V1ISCSIVolumeSource where+ toJSON V1ISCSIVolumeSource {..} =+ _omitNulls+ [ "chapAuthDiscovery" .= v1ISCSIVolumeSourceChapAuthDiscovery+ , "chapAuthSession" .= v1ISCSIVolumeSourceChapAuthSession+ , "fsType" .= v1ISCSIVolumeSourceFsType+ , "initiatorName" .= v1ISCSIVolumeSourceInitiatorName+ , "iqn" .= v1ISCSIVolumeSourceIqn+ , "iscsiInterface" .= v1ISCSIVolumeSourceIscsiInterface+ , "lun" .= v1ISCSIVolumeSourceLun+ , "portals" .= v1ISCSIVolumeSourcePortals+ , "readOnly" .= v1ISCSIVolumeSourceReadOnly+ , "secretRef" .= v1ISCSIVolumeSourceSecretRef+ , "targetPortal" .= v1ISCSIVolumeSourceTargetPortal+ ]+++-- | Construct a value of type 'V1ISCSIVolumeSource' (by applying it's required fields, if any)+mkV1ISCSIVolumeSource+ :: Text -- ^ 'v1ISCSIVolumeSourceIqn': iqn is the target iSCSI Qualified Name.+ -> Int -- ^ 'v1ISCSIVolumeSourceLun': lun represents iSCSI Target Lun number.+ -> Text -- ^ 'v1ISCSIVolumeSourceTargetPortal': targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).+ -> V1ISCSIVolumeSource+mkV1ISCSIVolumeSource v1ISCSIVolumeSourceIqn v1ISCSIVolumeSourceLun v1ISCSIVolumeSourceTargetPortal =+ V1ISCSIVolumeSource+ { v1ISCSIVolumeSourceChapAuthDiscovery = Nothing+ , v1ISCSIVolumeSourceChapAuthSession = Nothing+ , v1ISCSIVolumeSourceFsType = Nothing+ , v1ISCSIVolumeSourceInitiatorName = Nothing+ , v1ISCSIVolumeSourceIqn+ , v1ISCSIVolumeSourceIscsiInterface = Nothing+ , v1ISCSIVolumeSourceLun+ , v1ISCSIVolumeSourcePortals = Nothing+ , v1ISCSIVolumeSourceReadOnly = Nothing+ , v1ISCSIVolumeSourceSecretRef = Nothing+ , v1ISCSIVolumeSourceTargetPortal+ }++-- ** V1ImageVolumeSource+-- | V1ImageVolumeSource+-- ImageVolumeSource represents a image volume resource.+data V1ImageVolumeSource = V1ImageVolumeSource+ { v1ImageVolumeSourcePullPolicy :: !(Maybe Text) -- ^ "pullPolicy" - Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.+ , v1ImageVolumeSourceReference :: !(Maybe Text) -- ^ "reference" - Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ImageVolumeSource+instance A.FromJSON V1ImageVolumeSource where+ parseJSON = A.withObject "V1ImageVolumeSource" $ \o ->+ V1ImageVolumeSource+ <$> (o .:? "pullPolicy")+ <*> (o .:? "reference")++-- | ToJSON V1ImageVolumeSource+instance A.ToJSON V1ImageVolumeSource where+ toJSON V1ImageVolumeSource {..} =+ _omitNulls+ [ "pullPolicy" .= v1ImageVolumeSourcePullPolicy+ , "reference" .= v1ImageVolumeSourceReference+ ]+++-- | Construct a value of type 'V1ImageVolumeSource' (by applying it's required fields, if any)+mkV1ImageVolumeSource+ :: V1ImageVolumeSource+mkV1ImageVolumeSource =+ V1ImageVolumeSource+ { v1ImageVolumeSourcePullPolicy = Nothing+ , v1ImageVolumeSourceReference = Nothing+ }++-- ** V1Ingress+-- | V1Ingress+-- Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.+data V1Ingress = V1Ingress+ { v1IngressApiVersion :: !(Maybe Text) -- ^ "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+ , v1IngressKind :: !(Maybe Text) -- ^ "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+ , v1IngressMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1IngressSpec :: !(Maybe V1IngressSpec) -- ^ "spec"+ , v1IngressStatus :: !(Maybe V1IngressStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Ingress+instance A.FromJSON V1Ingress where+ parseJSON = A.withObject "V1Ingress" $ \o ->+ V1Ingress+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1Ingress+instance A.ToJSON V1Ingress where+ toJSON V1Ingress {..} =+ _omitNulls+ [ "apiVersion" .= v1IngressApiVersion+ , "kind" .= v1IngressKind+ , "metadata" .= v1IngressMetadata+ , "spec" .= v1IngressSpec+ , "status" .= v1IngressStatus+ ]+++-- | Construct a value of type 'V1Ingress' (by applying it's required fields, if any)+mkV1Ingress+ :: V1Ingress+mkV1Ingress =+ V1Ingress+ { v1IngressApiVersion = Nothing+ , v1IngressKind = Nothing+ , v1IngressMetadata = Nothing+ , v1IngressSpec = Nothing+ , v1IngressStatus = Nothing+ }++-- ** V1IngressBackend+-- | V1IngressBackend+-- IngressBackend describes all endpoints for a given service and port.+data V1IngressBackend = V1IngressBackend+ { v1IngressBackendResource :: !(Maybe V1TypedLocalObjectReference) -- ^ "resource"+ , v1IngressBackendService :: !(Maybe V1IngressServiceBackend) -- ^ "service"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressBackend+instance A.FromJSON V1IngressBackend where+ parseJSON = A.withObject "V1IngressBackend" $ \o ->+ V1IngressBackend+ <$> (o .:? "resource")+ <*> (o .:? "service")++-- | ToJSON V1IngressBackend+instance A.ToJSON V1IngressBackend where+ toJSON V1IngressBackend {..} =+ _omitNulls+ [ "resource" .= v1IngressBackendResource+ , "service" .= v1IngressBackendService+ ]+++-- | Construct a value of type 'V1IngressBackend' (by applying it's required fields, if any)+mkV1IngressBackend+ :: V1IngressBackend+mkV1IngressBackend =+ V1IngressBackend+ { v1IngressBackendResource = Nothing+ , v1IngressBackendService = Nothing+ }++-- ** V1IngressClass+-- | V1IngressClass+-- IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.+data V1IngressClass = V1IngressClass+ { v1IngressClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1IngressClassKind :: !(Maybe Text) -- ^ "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+ , v1IngressClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1IngressClassSpec :: !(Maybe V1IngressClassSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressClass+instance A.FromJSON V1IngressClass where+ parseJSON = A.withObject "V1IngressClass" $ \o ->+ V1IngressClass+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1IngressClass+instance A.ToJSON V1IngressClass where+ toJSON V1IngressClass {..} =+ _omitNulls+ [ "apiVersion" .= v1IngressClassApiVersion+ , "kind" .= v1IngressClassKind+ , "metadata" .= v1IngressClassMetadata+ , "spec" .= v1IngressClassSpec+ ]+++-- | Construct a value of type 'V1IngressClass' (by applying it's required fields, if any)+mkV1IngressClass+ :: V1IngressClass+mkV1IngressClass =+ V1IngressClass+ { v1IngressClassApiVersion = Nothing+ , v1IngressClassKind = Nothing+ , v1IngressClassMetadata = Nothing+ , v1IngressClassSpec = Nothing+ }++-- ** V1IngressClassList+-- | V1IngressClassList+-- IngressClassList is a collection of IngressClasses.+data V1IngressClassList = V1IngressClassList+ { v1IngressClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1IngressClassListItems :: !([V1IngressClass]) -- ^ /Required/ "items" - items is the list of IngressClasses.+ , v1IngressClassListKind :: !(Maybe Text) -- ^ "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+ , v1IngressClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressClassList+instance A.FromJSON V1IngressClassList where+ parseJSON = A.withObject "V1IngressClassList" $ \o ->+ V1IngressClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1IngressClassList+instance A.ToJSON V1IngressClassList where+ toJSON V1IngressClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1IngressClassListApiVersion+ , "items" .= v1IngressClassListItems+ , "kind" .= v1IngressClassListKind+ , "metadata" .= v1IngressClassListMetadata+ ]+++-- | Construct a value of type 'V1IngressClassList' (by applying it's required fields, if any)+mkV1IngressClassList+ :: [V1IngressClass] -- ^ 'v1IngressClassListItems': items is the list of IngressClasses.+ -> V1IngressClassList+mkV1IngressClassList v1IngressClassListItems =+ V1IngressClassList+ { v1IngressClassListApiVersion = Nothing+ , v1IngressClassListItems+ , v1IngressClassListKind = Nothing+ , v1IngressClassListMetadata = Nothing+ }++-- ** V1IngressClassParametersReference+-- | V1IngressClassParametersReference+-- IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.+data V1IngressClassParametersReference = V1IngressClassParametersReference+ { v1IngressClassParametersReferenceApiGroup :: !(Maybe Text) -- ^ "apiGroup" - 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.+ , v1IngressClassParametersReferenceKind :: !(Text) -- ^ /Required/ "kind" - kind is the type of resource being referenced.+ , v1IngressClassParametersReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of resource being referenced.+ , v1IngressClassParametersReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - namespace is the namespace of the resource being referenced. This field is required when scope is set to \"Namespace\" and must be unset when scope is set to \"Cluster\".+ , v1IngressClassParametersReferenceScope :: !(Maybe Text) -- ^ "scope" - scope represents if this refers to a cluster or namespace scoped resource. This may be set to \"Cluster\" (default) or \"Namespace\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressClassParametersReference+instance A.FromJSON V1IngressClassParametersReference where+ parseJSON = A.withObject "V1IngressClassParametersReference" $ \o ->+ V1IngressClassParametersReference+ <$> (o .:? "apiGroup")+ <*> (o .: "kind")+ <*> (o .: "name")+ <*> (o .:? "namespace")+ <*> (o .:? "scope")++-- | ToJSON V1IngressClassParametersReference+instance A.ToJSON V1IngressClassParametersReference where+ toJSON V1IngressClassParametersReference {..} =+ _omitNulls+ [ "apiGroup" .= v1IngressClassParametersReferenceApiGroup+ , "kind" .= v1IngressClassParametersReferenceKind+ , "name" .= v1IngressClassParametersReferenceName+ , "namespace" .= v1IngressClassParametersReferenceNamespace+ , "scope" .= v1IngressClassParametersReferenceScope+ ]+++-- | Construct a value of type 'V1IngressClassParametersReference' (by applying it's required fields, if any)+mkV1IngressClassParametersReference+ :: Text -- ^ 'v1IngressClassParametersReferenceKind': kind is the type of resource being referenced.+ -> Text -- ^ 'v1IngressClassParametersReferenceName': name is the name of resource being referenced.+ -> V1IngressClassParametersReference+mkV1IngressClassParametersReference v1IngressClassParametersReferenceKind v1IngressClassParametersReferenceName =+ V1IngressClassParametersReference+ { v1IngressClassParametersReferenceApiGroup = Nothing+ , v1IngressClassParametersReferenceKind+ , v1IngressClassParametersReferenceName+ , v1IngressClassParametersReferenceNamespace = Nothing+ , v1IngressClassParametersReferenceScope = Nothing+ }++-- ** V1IngressClassSpec+-- | V1IngressClassSpec+-- IngressClassSpec provides information about the class of an Ingress.+data V1IngressClassSpec = V1IngressClassSpec+ { v1IngressClassSpecController :: !(Maybe Text) -- ^ "controller" - controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.+ , v1IngressClassSpecParameters :: !(Maybe V1IngressClassParametersReference) -- ^ "parameters"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressClassSpec+instance A.FromJSON V1IngressClassSpec where+ parseJSON = A.withObject "V1IngressClassSpec" $ \o ->+ V1IngressClassSpec+ <$> (o .:? "controller")+ <*> (o .:? "parameters")++-- | ToJSON V1IngressClassSpec+instance A.ToJSON V1IngressClassSpec where+ toJSON V1IngressClassSpec {..} =+ _omitNulls+ [ "controller" .= v1IngressClassSpecController+ , "parameters" .= v1IngressClassSpecParameters+ ]+++-- | Construct a value of type 'V1IngressClassSpec' (by applying it's required fields, if any)+mkV1IngressClassSpec+ :: V1IngressClassSpec+mkV1IngressClassSpec =+ V1IngressClassSpec+ { v1IngressClassSpecController = Nothing+ , v1IngressClassSpecParameters = Nothing+ }++-- ** V1IngressList+-- | V1IngressList+-- IngressList is a collection of Ingress.+data V1IngressList = V1IngressList+ { v1IngressListApiVersion :: !(Maybe Text) -- ^ "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+ , v1IngressListItems :: !([V1Ingress]) -- ^ /Required/ "items" - items is the list of Ingress.+ , v1IngressListKind :: !(Maybe Text) -- ^ "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+ , v1IngressListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressList+instance A.FromJSON V1IngressList where+ parseJSON = A.withObject "V1IngressList" $ \o ->+ V1IngressList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1IngressList+instance A.ToJSON V1IngressList where+ toJSON V1IngressList {..} =+ _omitNulls+ [ "apiVersion" .= v1IngressListApiVersion+ , "items" .= v1IngressListItems+ , "kind" .= v1IngressListKind+ , "metadata" .= v1IngressListMetadata+ ]+++-- | Construct a value of type 'V1IngressList' (by applying it's required fields, if any)+mkV1IngressList+ :: [V1Ingress] -- ^ 'v1IngressListItems': items is the list of Ingress.+ -> V1IngressList+mkV1IngressList v1IngressListItems =+ V1IngressList+ { v1IngressListApiVersion = Nothing+ , v1IngressListItems+ , v1IngressListKind = Nothing+ , v1IngressListMetadata = Nothing+ }++-- ** V1IngressLoadBalancerIngress+-- | V1IngressLoadBalancerIngress+-- IngressLoadBalancerIngress represents the status of a load-balancer ingress point.+data V1IngressLoadBalancerIngress = V1IngressLoadBalancerIngress+ { v1IngressLoadBalancerIngressHostname :: !(Maybe Text) -- ^ "hostname" - hostname is set for load-balancer ingress points that are DNS based.+ , v1IngressLoadBalancerIngressIp :: !(Maybe Text) -- ^ "ip" - ip is set for load-balancer ingress points that are IP based.+ , v1IngressLoadBalancerIngressPorts :: !(Maybe [V1IngressPortStatus]) -- ^ "ports" - ports provides information about the ports exposed by this LoadBalancer.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressLoadBalancerIngress+instance A.FromJSON V1IngressLoadBalancerIngress where+ parseJSON = A.withObject "V1IngressLoadBalancerIngress" $ \o ->+ V1IngressLoadBalancerIngress+ <$> (o .:? "hostname")+ <*> (o .:? "ip")+ <*> (o .:? "ports")++-- | ToJSON V1IngressLoadBalancerIngress+instance A.ToJSON V1IngressLoadBalancerIngress where+ toJSON V1IngressLoadBalancerIngress {..} =+ _omitNulls+ [ "hostname" .= v1IngressLoadBalancerIngressHostname+ , "ip" .= v1IngressLoadBalancerIngressIp+ , "ports" .= v1IngressLoadBalancerIngressPorts+ ]+++-- | Construct a value of type 'V1IngressLoadBalancerIngress' (by applying it's required fields, if any)+mkV1IngressLoadBalancerIngress+ :: V1IngressLoadBalancerIngress+mkV1IngressLoadBalancerIngress =+ V1IngressLoadBalancerIngress+ { v1IngressLoadBalancerIngressHostname = Nothing+ , v1IngressLoadBalancerIngressIp = Nothing+ , v1IngressLoadBalancerIngressPorts = Nothing+ }++-- ** V1IngressLoadBalancerStatus+-- | V1IngressLoadBalancerStatus+-- IngressLoadBalancerStatus represents the status of a load-balancer.+data V1IngressLoadBalancerStatus = V1IngressLoadBalancerStatus+ { v1IngressLoadBalancerStatusIngress :: !(Maybe [V1IngressLoadBalancerIngress]) -- ^ "ingress" - ingress is a list containing ingress points for the load-balancer.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressLoadBalancerStatus+instance A.FromJSON V1IngressLoadBalancerStatus where+ parseJSON = A.withObject "V1IngressLoadBalancerStatus" $ \o ->+ V1IngressLoadBalancerStatus+ <$> (o .:? "ingress")++-- | ToJSON V1IngressLoadBalancerStatus+instance A.ToJSON V1IngressLoadBalancerStatus where+ toJSON V1IngressLoadBalancerStatus {..} =+ _omitNulls+ [ "ingress" .= v1IngressLoadBalancerStatusIngress+ ]+++-- | Construct a value of type 'V1IngressLoadBalancerStatus' (by applying it's required fields, if any)+mkV1IngressLoadBalancerStatus+ :: V1IngressLoadBalancerStatus+mkV1IngressLoadBalancerStatus =+ V1IngressLoadBalancerStatus+ { v1IngressLoadBalancerStatusIngress = Nothing+ }++-- ** V1IngressPortStatus+-- | V1IngressPortStatus+-- IngressPortStatus represents the error condition of a service port+data V1IngressPortStatus = V1IngressPortStatus+ { v1IngressPortStatusError :: !(Maybe Text) -- ^ "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 format foo.example.com/CamelCase.+ , v1IngressPortStatusPort :: !(Int) -- ^ /Required/ "port" - port is the port number of the ingress port.+ , v1IngressPortStatusProtocol :: !(Text) -- ^ /Required/ "protocol" - protocol is the protocol of the ingress port. The supported values are: \"TCP\", \"UDP\", \"SCTP\"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressPortStatus+instance A.FromJSON V1IngressPortStatus where+ parseJSON = A.withObject "V1IngressPortStatus" $ \o ->+ V1IngressPortStatus+ <$> (o .:? "error")+ <*> (o .: "port")+ <*> (o .: "protocol")++-- | ToJSON V1IngressPortStatus+instance A.ToJSON V1IngressPortStatus where+ toJSON V1IngressPortStatus {..} =+ _omitNulls+ [ "error" .= v1IngressPortStatusError+ , "port" .= v1IngressPortStatusPort+ , "protocol" .= v1IngressPortStatusProtocol+ ]+++-- | Construct a value of type 'V1IngressPortStatus' (by applying it's required fields, if any)+mkV1IngressPortStatus+ :: Int -- ^ 'v1IngressPortStatusPort': port is the port number of the ingress port.+ -> Text -- ^ 'v1IngressPortStatusProtocol': protocol is the protocol of the ingress port. The supported values are: \"TCP\", \"UDP\", \"SCTP\"+ -> V1IngressPortStatus+mkV1IngressPortStatus v1IngressPortStatusPort v1IngressPortStatusProtocol =+ V1IngressPortStatus+ { v1IngressPortStatusError = Nothing+ , v1IngressPortStatusPort+ , v1IngressPortStatusProtocol+ }++-- ** V1IngressRule+-- | V1IngressRule+-- IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.+data V1IngressRule = V1IngressRule+ { v1IngressRuleHost :: !(Maybe Text) -- ^ "host" - host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the IP in the Spec of the parent Ingress. 2. The `:` delimiter is not respected because ports are not allowed. Currently the port of an Ingress is implicitly :80 for http and :443 for https. Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue. host can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. \"*.foo.com\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.+ , v1IngressRuleHttp :: !(Maybe V1HTTPIngressRuleValue) -- ^ "http"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressRule+instance A.FromJSON V1IngressRule where+ parseJSON = A.withObject "V1IngressRule" $ \o ->+ V1IngressRule+ <$> (o .:? "host")+ <*> (o .:? "http")++-- | ToJSON V1IngressRule+instance A.ToJSON V1IngressRule where+ toJSON V1IngressRule {..} =+ _omitNulls+ [ "host" .= v1IngressRuleHost+ , "http" .= v1IngressRuleHttp+ ]+++-- | Construct a value of type 'V1IngressRule' (by applying it's required fields, if any)+mkV1IngressRule+ :: V1IngressRule+mkV1IngressRule =+ V1IngressRule+ { v1IngressRuleHost = Nothing+ , v1IngressRuleHttp = Nothing+ }++-- ** V1IngressServiceBackend+-- | V1IngressServiceBackend+-- IngressServiceBackend references a Kubernetes Service as a Backend.+data V1IngressServiceBackend = V1IngressServiceBackend+ { v1IngressServiceBackendName :: !(Text) -- ^ /Required/ "name" - name is the referenced service. The service must exist in the same namespace as the Ingress object.+ , v1IngressServiceBackendPort :: !(Maybe V1ServiceBackendPort) -- ^ "port"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressServiceBackend+instance A.FromJSON V1IngressServiceBackend where+ parseJSON = A.withObject "V1IngressServiceBackend" $ \o ->+ V1IngressServiceBackend+ <$> (o .: "name")+ <*> (o .:? "port")++-- | ToJSON V1IngressServiceBackend+instance A.ToJSON V1IngressServiceBackend where+ toJSON V1IngressServiceBackend {..} =+ _omitNulls+ [ "name" .= v1IngressServiceBackendName+ , "port" .= v1IngressServiceBackendPort+ ]+++-- | Construct a value of type 'V1IngressServiceBackend' (by applying it's required fields, if any)+mkV1IngressServiceBackend+ :: Text -- ^ 'v1IngressServiceBackendName': name is the referenced service. The service must exist in the same namespace as the Ingress object.+ -> V1IngressServiceBackend+mkV1IngressServiceBackend v1IngressServiceBackendName =+ V1IngressServiceBackend+ { v1IngressServiceBackendName+ , v1IngressServiceBackendPort = Nothing+ }++-- ** V1IngressSpec+-- | V1IngressSpec+-- IngressSpec describes the Ingress the user wishes to exist.+data V1IngressSpec = V1IngressSpec+ { v1IngressSpecDefaultBackend :: !(Maybe V1IngressBackend) -- ^ "defaultBackend"+ , v1IngressSpecIngressClassName :: !(Maybe Text) -- ^ "ingressClassName" - ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -> IngressClass -> Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present.+ , v1IngressSpecRules :: !(Maybe [V1IngressRule]) -- ^ "rules" - rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.+ , v1IngressSpecTls :: !(Maybe [V1IngressTLS]) -- ^ "tls" - tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressSpec+instance A.FromJSON V1IngressSpec where+ parseJSON = A.withObject "V1IngressSpec" $ \o ->+ V1IngressSpec+ <$> (o .:? "defaultBackend")+ <*> (o .:? "ingressClassName")+ <*> (o .:? "rules")+ <*> (o .:? "tls")++-- | ToJSON V1IngressSpec+instance A.ToJSON V1IngressSpec where+ toJSON V1IngressSpec {..} =+ _omitNulls+ [ "defaultBackend" .= v1IngressSpecDefaultBackend+ , "ingressClassName" .= v1IngressSpecIngressClassName+ , "rules" .= v1IngressSpecRules+ , "tls" .= v1IngressSpecTls+ ]+++-- | Construct a value of type 'V1IngressSpec' (by applying it's required fields, if any)+mkV1IngressSpec+ :: V1IngressSpec+mkV1IngressSpec =+ V1IngressSpec+ { v1IngressSpecDefaultBackend = Nothing+ , v1IngressSpecIngressClassName = Nothing+ , v1IngressSpecRules = Nothing+ , v1IngressSpecTls = Nothing+ }++-- ** V1IngressStatus+-- | V1IngressStatus+-- IngressStatus describe the current state of the Ingress.+data V1IngressStatus = V1IngressStatus+ { v1IngressStatusLoadBalancer :: !(Maybe V1IngressLoadBalancerStatus) -- ^ "loadBalancer"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressStatus+instance A.FromJSON V1IngressStatus where+ parseJSON = A.withObject "V1IngressStatus" $ \o ->+ V1IngressStatus+ <$> (o .:? "loadBalancer")++-- | ToJSON V1IngressStatus+instance A.ToJSON V1IngressStatus where+ toJSON V1IngressStatus {..} =+ _omitNulls+ [ "loadBalancer" .= v1IngressStatusLoadBalancer+ ]+++-- | Construct a value of type 'V1IngressStatus' (by applying it's required fields, if any)+mkV1IngressStatus+ :: V1IngressStatus+mkV1IngressStatus =+ V1IngressStatus+ { v1IngressStatusLoadBalancer = Nothing+ }++-- ** V1IngressTLS+-- | V1IngressTLS+-- IngressTLS describes the transport layer security associated with an ingress.+data V1IngressTLS = V1IngressTLS+ { v1IngressTLSHosts :: !(Maybe [Text]) -- ^ "hosts" - hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.+ , v1IngressTLSSecretName :: !(Maybe Text) -- ^ "secretName" - secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the \"Host\" header is used for routing.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1IngressTLS+instance A.FromJSON V1IngressTLS where+ parseJSON = A.withObject "V1IngressTLS" $ \o ->+ V1IngressTLS+ <$> (o .:? "hosts")+ <*> (o .:? "secretName")++-- | ToJSON V1IngressTLS+instance A.ToJSON V1IngressTLS where+ toJSON V1IngressTLS {..} =+ _omitNulls+ [ "hosts" .= v1IngressTLSHosts+ , "secretName" .= v1IngressTLSSecretName+ ]+++-- | Construct a value of type 'V1IngressTLS' (by applying it's required fields, if any)+mkV1IngressTLS+ :: V1IngressTLS+mkV1IngressTLS =+ V1IngressTLS+ { v1IngressTLSHosts = Nothing+ , v1IngressTLSSecretName = Nothing+ }++-- ** V1JSONSchemaProps+-- | V1JSONSchemaProps+-- JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).+data V1JSONSchemaProps = V1JSONSchemaProps+ { v1JSONSchemaPropsRef :: !(Maybe Text) -- ^ "$ref"+ , v1JSONSchemaPropsSchema :: !(Maybe Text) -- ^ "$schema"+ , v1JSONSchemaPropsAdditionalItems :: !(Maybe A.Value) -- ^ "additionalItems" - JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.+ , v1JSONSchemaPropsAdditionalProperties :: !(Maybe A.Value) -- ^ "additionalProperties" - JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.+ , v1JSONSchemaPropsAllOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "allOf"+ , v1JSONSchemaPropsAnyOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "anyOf"+ , v1JSONSchemaPropsDefault :: !(Maybe A.Value) -- ^ "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.+ , v1JSONSchemaPropsDefinitions :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "definitions"+ , v1JSONSchemaPropsDependencies :: !(Maybe (Map.Map String A.Value)) -- ^ "dependencies"+ , v1JSONSchemaPropsDescription :: !(Maybe Text) -- ^ "description"+ , v1JSONSchemaPropsEnum :: !(Maybe [A.Value]) -- ^ "enum"+ , v1JSONSchemaPropsExample :: !(Maybe A.Value) -- ^ "example" - JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.+ , v1JSONSchemaPropsExclusiveMaximum :: !(Maybe Bool) -- ^ "exclusiveMaximum"+ , v1JSONSchemaPropsExclusiveMinimum :: !(Maybe Bool) -- ^ "exclusiveMinimum"+ , v1JSONSchemaPropsExternalDocs :: !(Maybe V1ExternalDocumentation) -- ^ "externalDocs"+ , v1JSONSchemaPropsFormat :: !(Maybe Text) -- ^ "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.+ , v1JSONSchemaPropsId :: !(Maybe Text) -- ^ "id"+ , v1JSONSchemaPropsItems :: !(Maybe A.Value) -- ^ "items" - JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.+ , v1JSONSchemaPropsMaxItems :: !(Maybe Integer) -- ^ "maxItems"+ , v1JSONSchemaPropsMaxLength :: !(Maybe Integer) -- ^ "maxLength"+ , v1JSONSchemaPropsMaxProperties :: !(Maybe Integer) -- ^ "maxProperties"+ , v1JSONSchemaPropsMaximum :: !(Maybe Double) -- ^ "maximum"+ , v1JSONSchemaPropsMinItems :: !(Maybe Integer) -- ^ "minItems"+ , v1JSONSchemaPropsMinLength :: !(Maybe Integer) -- ^ "minLength"+ , v1JSONSchemaPropsMinProperties :: !(Maybe Integer) -- ^ "minProperties"+ , v1JSONSchemaPropsMinimum :: !(Maybe Double) -- ^ "minimum"+ , v1JSONSchemaPropsMultipleOf :: !(Maybe Double) -- ^ "multipleOf"+ , v1JSONSchemaPropsNot :: !(Maybe V1JSONSchemaProps) -- ^ "not"+ , v1JSONSchemaPropsNullable :: !(Maybe Bool) -- ^ "nullable"+ , v1JSONSchemaPropsOneOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "oneOf"+ , v1JSONSchemaPropsPattern :: !(Maybe Text) -- ^ "pattern"+ , v1JSONSchemaPropsPatternProperties :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "patternProperties"+ , v1JSONSchemaPropsProperties :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "properties"+ , v1JSONSchemaPropsRequired :: !(Maybe [Text]) -- ^ "required"+ , v1JSONSchemaPropsTitle :: !(Maybe Text) -- ^ "title"+ , v1JSONSchemaPropsType :: !(Maybe Text) -- ^ "type"+ , v1JSONSchemaPropsUniqueItems :: !(Maybe Bool) -- ^ "uniqueItems"+ , v1JSONSchemaPropsXKubernetesEmbeddedResource :: !(Maybe 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).+ , v1JSONSchemaPropsXKubernetesIntOrString :: !(Maybe 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: 1) anyOf: - type: integer - type: string 2) allOf: - anyOf: - type: integer - type: string - ... zero or more+ , v1JSONSchemaPropsXKubernetesListMapKeys :: !(Maybe [Text]) -- ^ "x-kubernetes-list-map-keys" - x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map. This tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported). The properties specified must either be required or have a default value, to ensure those properties are present for all list items.+ , v1JSONSchemaPropsXKubernetesListType :: !(Maybe Text) -- ^ "x-kubernetes-list-type" - x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values: 1) `atomic`: the list is treated as a single entity, like a scalar. Atomic lists will be entirely replaced when updated. This extension may be used on any type of list (struct, scalar, ...). 2) `set`: Sets are lists that must not have multiple items with the same value. Each value must be a scalar, an object with x-kubernetes-map-type `atomic` or an array with x-kubernetes-list-type `atomic`. 3) `map`: These lists are like maps in that their elements have a non-index key used to identify them. Order is preserved upon merge. The map tag must only be used on a list with elements of type object. Defaults to atomic for arrays.+ , v1JSONSchemaPropsXKubernetesMapType :: !(Maybe Text) -- ^ "x-kubernetes-map-type" - x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values: 1) `granular`: These maps are actual maps (key-value pairs) and each fields are independent from each other (they can each be manipulated by separate actors). This is the default behaviour for all maps. 2) `atomic`: the list is treated as a single entity, like a scalar. Atomic maps will be entirely replaced when updated.+ , v1JSONSchemaPropsXKubernetesPreserveUnknownFields :: !(Maybe Bool) -- ^ "x-kubernetes-preserve-unknown-fields" - x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.+ , v1JSONSchemaPropsXKubernetesValidations :: !(Maybe [V1ValidationRule]) -- ^ "x-kubernetes-validations" - x-kubernetes-validations describes a list of validation rules written in the CEL expression language.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1JSONSchemaProps+instance A.FromJSON V1JSONSchemaProps where+ parseJSON = A.withObject "V1JSONSchemaProps" $ \o ->+ V1JSONSchemaProps+ <$> (o .:? "$ref")+ <*> (o .:? "$schema")+ <*> (o .:? "additionalItems")+ <*> (o .:? "additionalProperties")+ <*> (o .:? "allOf")+ <*> (o .:? "anyOf")+ <*> (o .:? "default")+ <*> (o .:? "definitions")+ <*> (o .:? "dependencies")+ <*> (o .:? "description")+ <*> (o .:? "enum")+ <*> (o .:? "example")+ <*> (o .:? "exclusiveMaximum")+ <*> (o .:? "exclusiveMinimum")+ <*> (o .:? "externalDocs")+ <*> (o .:? "format")+ <*> (o .:? "id")+ <*> (o .:? "items")+ <*> (o .:? "maxItems")+ <*> (o .:? "maxLength")+ <*> (o .:? "maxProperties")+ <*> (o .:? "maximum")+ <*> (o .:? "minItems")+ <*> (o .:? "minLength")+ <*> (o .:? "minProperties")+ <*> (o .:? "minimum")+ <*> (o .:? "multipleOf")+ <*> (o .:? "not")+ <*> (o .:? "nullable")+ <*> (o .:? "oneOf")+ <*> (o .:? "pattern")+ <*> (o .:? "patternProperties")+ <*> (o .:? "properties")+ <*> (o .:? "required")+ <*> (o .:? "title")+ <*> (o .:? "type")+ <*> (o .:? "uniqueItems")+ <*> (o .:? "x-kubernetes-embedded-resource")+ <*> (o .:? "x-kubernetes-int-or-string")+ <*> (o .:? "x-kubernetes-list-map-keys")+ <*> (o .:? "x-kubernetes-list-type")+ <*> (o .:? "x-kubernetes-map-type")+ <*> (o .:? "x-kubernetes-preserve-unknown-fields")+ <*> (o .:? "x-kubernetes-validations")++-- | ToJSON V1JSONSchemaProps+instance A.ToJSON V1JSONSchemaProps where+ toJSON V1JSONSchemaProps {..} =+ _omitNulls+ [ "$ref" .= v1JSONSchemaPropsRef+ , "$schema" .= v1JSONSchemaPropsSchema+ , "additionalItems" .= v1JSONSchemaPropsAdditionalItems+ , "additionalProperties" .= v1JSONSchemaPropsAdditionalProperties+ , "allOf" .= v1JSONSchemaPropsAllOf+ , "anyOf" .= v1JSONSchemaPropsAnyOf+ , "default" .= v1JSONSchemaPropsDefault+ , "definitions" .= v1JSONSchemaPropsDefinitions+ , "dependencies" .= v1JSONSchemaPropsDependencies+ , "description" .= v1JSONSchemaPropsDescription+ , "enum" .= v1JSONSchemaPropsEnum+ , "example" .= v1JSONSchemaPropsExample+ , "exclusiveMaximum" .= v1JSONSchemaPropsExclusiveMaximum+ , "exclusiveMinimum" .= v1JSONSchemaPropsExclusiveMinimum+ , "externalDocs" .= v1JSONSchemaPropsExternalDocs+ , "format" .= v1JSONSchemaPropsFormat+ , "id" .= v1JSONSchemaPropsId+ , "items" .= v1JSONSchemaPropsItems+ , "maxItems" .= v1JSONSchemaPropsMaxItems+ , "maxLength" .= v1JSONSchemaPropsMaxLength+ , "maxProperties" .= v1JSONSchemaPropsMaxProperties+ , "maximum" .= v1JSONSchemaPropsMaximum+ , "minItems" .= v1JSONSchemaPropsMinItems+ , "minLength" .= v1JSONSchemaPropsMinLength+ , "minProperties" .= v1JSONSchemaPropsMinProperties+ , "minimum" .= v1JSONSchemaPropsMinimum+ , "multipleOf" .= v1JSONSchemaPropsMultipleOf+ , "not" .= v1JSONSchemaPropsNot+ , "nullable" .= v1JSONSchemaPropsNullable+ , "oneOf" .= v1JSONSchemaPropsOneOf+ , "pattern" .= v1JSONSchemaPropsPattern+ , "patternProperties" .= v1JSONSchemaPropsPatternProperties+ , "properties" .= v1JSONSchemaPropsProperties+ , "required" .= v1JSONSchemaPropsRequired+ , "title" .= v1JSONSchemaPropsTitle+ , "type" .= v1JSONSchemaPropsType+ , "uniqueItems" .= v1JSONSchemaPropsUniqueItems+ , "x-kubernetes-embedded-resource" .= v1JSONSchemaPropsXKubernetesEmbeddedResource+ , "x-kubernetes-int-or-string" .= v1JSONSchemaPropsXKubernetesIntOrString+ , "x-kubernetes-list-map-keys" .= v1JSONSchemaPropsXKubernetesListMapKeys+ , "x-kubernetes-list-type" .= v1JSONSchemaPropsXKubernetesListType+ , "x-kubernetes-map-type" .= v1JSONSchemaPropsXKubernetesMapType+ , "x-kubernetes-preserve-unknown-fields" .= v1JSONSchemaPropsXKubernetesPreserveUnknownFields+ , "x-kubernetes-validations" .= v1JSONSchemaPropsXKubernetesValidations+ ]+++-- | Construct a value of type 'V1JSONSchemaProps' (by applying it's required fields, if any)+mkV1JSONSchemaProps+ :: V1JSONSchemaProps+mkV1JSONSchemaProps =+ V1JSONSchemaProps+ { v1JSONSchemaPropsRef = Nothing+ , v1JSONSchemaPropsSchema = Nothing+ , v1JSONSchemaPropsAdditionalItems = Nothing+ , v1JSONSchemaPropsAdditionalProperties = Nothing+ , v1JSONSchemaPropsAllOf = Nothing+ , v1JSONSchemaPropsAnyOf = Nothing+ , v1JSONSchemaPropsDefault = Nothing+ , v1JSONSchemaPropsDefinitions = Nothing+ , v1JSONSchemaPropsDependencies = Nothing+ , v1JSONSchemaPropsDescription = Nothing+ , v1JSONSchemaPropsEnum = Nothing+ , v1JSONSchemaPropsExample = Nothing+ , v1JSONSchemaPropsExclusiveMaximum = Nothing+ , v1JSONSchemaPropsExclusiveMinimum = Nothing+ , v1JSONSchemaPropsExternalDocs = Nothing+ , v1JSONSchemaPropsFormat = Nothing+ , v1JSONSchemaPropsId = Nothing+ , v1JSONSchemaPropsItems = Nothing+ , v1JSONSchemaPropsMaxItems = Nothing+ , v1JSONSchemaPropsMaxLength = Nothing+ , v1JSONSchemaPropsMaxProperties = Nothing+ , v1JSONSchemaPropsMaximum = Nothing+ , v1JSONSchemaPropsMinItems = Nothing+ , v1JSONSchemaPropsMinLength = Nothing+ , v1JSONSchemaPropsMinProperties = Nothing+ , v1JSONSchemaPropsMinimum = Nothing+ , v1JSONSchemaPropsMultipleOf = Nothing+ , v1JSONSchemaPropsNot = Nothing+ , v1JSONSchemaPropsNullable = Nothing+ , v1JSONSchemaPropsOneOf = Nothing+ , v1JSONSchemaPropsPattern = Nothing+ , v1JSONSchemaPropsPatternProperties = Nothing+ , v1JSONSchemaPropsProperties = Nothing+ , v1JSONSchemaPropsRequired = Nothing+ , v1JSONSchemaPropsTitle = Nothing+ , v1JSONSchemaPropsType = Nothing+ , v1JSONSchemaPropsUniqueItems = Nothing+ , v1JSONSchemaPropsXKubernetesEmbeddedResource = Nothing+ , v1JSONSchemaPropsXKubernetesIntOrString = Nothing+ , v1JSONSchemaPropsXKubernetesListMapKeys = Nothing+ , v1JSONSchemaPropsXKubernetesListType = Nothing+ , v1JSONSchemaPropsXKubernetesMapType = Nothing+ , v1JSONSchemaPropsXKubernetesPreserveUnknownFields = Nothing+ , v1JSONSchemaPropsXKubernetesValidations = Nothing+ }++-- ** V1Job+-- | V1Job+-- Job represents the configuration of a single job.+data V1Job = V1Job+ { v1JobApiVersion :: !(Maybe Text) -- ^ "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+ , v1JobKind :: !(Maybe Text) -- ^ "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+ , v1JobMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1JobSpec :: !(Maybe V1JobSpec) -- ^ "spec"+ , v1JobStatus :: !(Maybe V1JobStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Job+instance A.FromJSON V1Job where+ parseJSON = A.withObject "V1Job" $ \o ->+ V1Job+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1Job+instance A.ToJSON V1Job where+ toJSON V1Job {..} =+ _omitNulls+ [ "apiVersion" .= v1JobApiVersion+ , "kind" .= v1JobKind+ , "metadata" .= v1JobMetadata+ , "spec" .= v1JobSpec+ , "status" .= v1JobStatus+ ]+++-- | Construct a value of type 'V1Job' (by applying it's required fields, if any)+mkV1Job+ :: V1Job+mkV1Job =+ V1Job+ { v1JobApiVersion = Nothing+ , v1JobKind = Nothing+ , v1JobMetadata = Nothing+ , v1JobSpec = Nothing+ , v1JobStatus = Nothing+ }++-- ** V1JobCondition+-- | V1JobCondition+-- JobCondition describes current state of a job.+data V1JobCondition = V1JobCondition+ { v1JobConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - Last time the condition was checked.+ , v1JobConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transit from one status to another.+ , v1JobConditionMessage :: !(Maybe Text) -- ^ "message" - Human readable message indicating details about last transition.+ , v1JobConditionReason :: !(Maybe Text) -- ^ "reason" - (brief) reason for the condition's last transition.+ , v1JobConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1JobConditionType :: !(Text) -- ^ /Required/ "type" - Type of job condition, Complete or Failed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1JobCondition+instance A.FromJSON V1JobCondition where+ parseJSON = A.withObject "V1JobCondition" $ \o ->+ V1JobCondition+ <$> (o .:? "lastProbeTime")+ <*> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1JobCondition+instance A.ToJSON V1JobCondition where+ toJSON V1JobCondition {..} =+ _omitNulls+ [ "lastProbeTime" .= v1JobConditionLastProbeTime+ , "lastTransitionTime" .= v1JobConditionLastTransitionTime+ , "message" .= v1JobConditionMessage+ , "reason" .= v1JobConditionReason+ , "status" .= v1JobConditionStatus+ , "type" .= v1JobConditionType+ ]+++-- | Construct a value of type 'V1JobCondition' (by applying it's required fields, if any)+mkV1JobCondition+ :: Text -- ^ 'v1JobConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1JobConditionType': Type of job condition, Complete or Failed.+ -> V1JobCondition+mkV1JobCondition v1JobConditionStatus v1JobConditionType =+ V1JobCondition+ { v1JobConditionLastProbeTime = Nothing+ , v1JobConditionLastTransitionTime = Nothing+ , v1JobConditionMessage = Nothing+ , v1JobConditionReason = Nothing+ , v1JobConditionStatus+ , v1JobConditionType+ }++-- ** V1JobList+-- | V1JobList+-- JobList is a collection of jobs.+data V1JobList = V1JobList+ { v1JobListApiVersion :: !(Maybe Text) -- ^ "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+ , v1JobListItems :: !([V1Job]) -- ^ /Required/ "items" - items is the list of Jobs.+ , v1JobListKind :: !(Maybe Text) -- ^ "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+ , v1JobListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1JobList+instance A.FromJSON V1JobList where+ parseJSON = A.withObject "V1JobList" $ \o ->+ V1JobList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1JobList+instance A.ToJSON V1JobList where+ toJSON V1JobList {..} =+ _omitNulls+ [ "apiVersion" .= v1JobListApiVersion+ , "items" .= v1JobListItems+ , "kind" .= v1JobListKind+ , "metadata" .= v1JobListMetadata+ ]+++-- | Construct a value of type 'V1JobList' (by applying it's required fields, if any)+mkV1JobList+ :: [V1Job] -- ^ 'v1JobListItems': items is the list of Jobs.+ -> V1JobList+mkV1JobList v1JobListItems =+ V1JobList+ { v1JobListApiVersion = Nothing+ , v1JobListItems+ , v1JobListKind = Nothing+ , v1JobListMetadata = Nothing+ }++-- ** V1JobSpec+-- | V1JobSpec+-- JobSpec describes how the job execution will look like.+data V1JobSpec = V1JobSpec+ { v1JobSpecActiveDeadlineSeconds :: !(Maybe Integer) -- ^ "activeDeadlineSeconds" - Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.+ , v1JobSpecBackoffLimit :: !(Maybe Int) -- ^ "backoffLimit" - Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647.+ , v1JobSpecBackoffLimitPerIndex :: !(Maybe Int) -- ^ "backoffLimitPerIndex" - Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable.+ , v1JobSpecCompletionMode :: !(Maybe Text) -- ^ "completionMode" - completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.+ , v1JobSpecCompletions :: !(Maybe 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/+ , v1JobSpecManagedBy :: !(Maybe Text) -- ^ "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.+ , v1JobSpecManualSelector :: !(Maybe Bool) -- ^ "manualSelector" - 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+ , v1JobSpecMaxFailedIndexes :: !(Maybe Int) -- ^ "maxFailedIndexes" - 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.+ , v1JobSpecParallelism :: !(Maybe 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/+ , v1JobSpecPodFailurePolicy :: !(Maybe V1PodFailurePolicy) -- ^ "podFailurePolicy"+ , v1JobSpecPodReplacementPolicy :: !(Maybe Text) -- ^ "podReplacementPolicy" - podReplacementPolicy specifies when to create replacement Pods. Possible values are: - TerminatingOrFailed means that we recreate pods when they are terminating (has a metadata.deletionTimestamp) or failed. - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use.+ , v1JobSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"+ , v1JobSpecSuccessPolicy :: !(Maybe V1SuccessPolicy) -- ^ "successPolicy"+ , v1JobSpecSuspend :: !(Maybe Bool) -- ^ "suspend" - suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.+ , v1JobSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"+ , v1JobSpecTtlSecondsAfterFinished :: !(Maybe Int) -- ^ "ttlSecondsAfterFinished" - ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1JobSpec+instance A.FromJSON V1JobSpec where+ parseJSON = A.withObject "V1JobSpec" $ \o ->+ V1JobSpec+ <$> (o .:? "activeDeadlineSeconds")+ <*> (o .:? "backoffLimit")+ <*> (o .:? "backoffLimitPerIndex")+ <*> (o .:? "completionMode")+ <*> (o .:? "completions")+ <*> (o .:? "managedBy")+ <*> (o .:? "manualSelector")+ <*> (o .:? "maxFailedIndexes")+ <*> (o .:? "parallelism")+ <*> (o .:? "podFailurePolicy")+ <*> (o .:? "podReplacementPolicy")+ <*> (o .:? "selector")+ <*> (o .:? "successPolicy")+ <*> (o .:? "suspend")+ <*> (o .: "template")+ <*> (o .:? "ttlSecondsAfterFinished")++-- | ToJSON V1JobSpec+instance A.ToJSON V1JobSpec where+ toJSON V1JobSpec {..} =+ _omitNulls+ [ "activeDeadlineSeconds" .= v1JobSpecActiveDeadlineSeconds+ , "backoffLimit" .= v1JobSpecBackoffLimit+ , "backoffLimitPerIndex" .= v1JobSpecBackoffLimitPerIndex+ , "completionMode" .= v1JobSpecCompletionMode+ , "completions" .= v1JobSpecCompletions+ , "managedBy" .= v1JobSpecManagedBy+ , "manualSelector" .= v1JobSpecManualSelector+ , "maxFailedIndexes" .= v1JobSpecMaxFailedIndexes+ , "parallelism" .= v1JobSpecParallelism+ , "podFailurePolicy" .= v1JobSpecPodFailurePolicy+ , "podReplacementPolicy" .= v1JobSpecPodReplacementPolicy+ , "selector" .= v1JobSpecSelector+ , "successPolicy" .= v1JobSpecSuccessPolicy+ , "suspend" .= v1JobSpecSuspend+ , "template" .= v1JobSpecTemplate+ , "ttlSecondsAfterFinished" .= v1JobSpecTtlSecondsAfterFinished+ ]+++-- | Construct a value of type 'V1JobSpec' (by applying it's required fields, if any)+mkV1JobSpec+ :: V1PodTemplateSpec -- ^ 'v1JobSpecTemplate' + -> V1JobSpec+mkV1JobSpec v1JobSpecTemplate =+ V1JobSpec+ { v1JobSpecActiveDeadlineSeconds = Nothing+ , v1JobSpecBackoffLimit = Nothing+ , v1JobSpecBackoffLimitPerIndex = Nothing+ , v1JobSpecCompletionMode = Nothing+ , v1JobSpecCompletions = Nothing+ , v1JobSpecManagedBy = Nothing+ , v1JobSpecManualSelector = Nothing+ , v1JobSpecMaxFailedIndexes = Nothing+ , v1JobSpecParallelism = Nothing+ , v1JobSpecPodFailurePolicy = Nothing+ , v1JobSpecPodReplacementPolicy = Nothing+ , v1JobSpecSelector = Nothing+ , v1JobSpecSuccessPolicy = Nothing+ , v1JobSpecSuspend = Nothing+ , v1JobSpecTemplate+ , v1JobSpecTtlSecondsAfterFinished = Nothing+ }++-- ** V1JobStatus+-- | V1JobStatus+-- JobStatus represents the current state of a Job.+data V1JobStatus = V1JobStatus+ { v1JobStatusActive :: !(Maybe Int) -- ^ "active" - The number of pending and running pods which are not terminating (without a deletionTimestamp). The value is zero for finished jobs.+ , v1JobStatusCompletedIndexes :: !(Maybe Text) -- ^ "completedIndexes" - completedIndexes holds the completed indexes when .spec.completionMode = \"Indexed\" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\".+ , v1JobStatusCompletionTime :: !(Maybe DateTime) -- ^ "completionTime" - Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is set when the job finishes successfully, and only then. The value cannot be updated or removed. The value indicates the same or later point in time as the startTime field.+ , v1JobStatusConditions :: !(Maybe [V1JobCondition]) -- ^ "conditions" - The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true. A job is considered finished when it is in a terminal condition, either \"Complete\" or \"Failed\". A Job cannot have both the \"Complete\" and \"Failed\" conditions. Additionally, it cannot be in the \"Complete\" and \"FailureTarget\" conditions. The \"Complete\", \"Failed\" and \"FailureTarget\" conditions cannot be disabled. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/+ , v1JobStatusFailed :: !(Maybe Int) -- ^ "failed" - The number of pods which reached phase Failed. The value increases monotonically.+ , v1JobStatusFailedIndexes :: !(Maybe Text) -- ^ "failedIndexes" - FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". The set of failed indexes cannot overlap with the set of completed indexes.+ , v1JobStatusReady :: !(Maybe Int) -- ^ "ready" - The number of active pods which have a Ready condition and are not terminating (without a deletionTimestamp).+ , v1JobStatusStartTime :: !(Maybe DateTime) -- ^ "startTime" - Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC. Once set, the field can only be removed when the job is suspended. The field cannot be modified while the job is unsuspended or finished.+ , v1JobStatusSucceeded :: !(Maybe Int) -- ^ "succeeded" - The number of pods which reached phase Succeeded. The value increases monotonically for a given spec. However, it may decrease in reaction to scale down of elastic indexed jobs.+ , v1JobStatusTerminating :: !(Maybe Int) -- ^ "terminating" - The number of pods which are terminating (in phase Pending or Running and have a deletionTimestamp). This field is beta-level. The job controller populates the field when the feature gate JobPodReplacementPolicy is enabled (enabled by default).+ , v1JobStatusUncountedTerminatedPods :: !(Maybe V1UncountedTerminatedPods) -- ^ "uncountedTerminatedPods"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1JobStatus+instance A.FromJSON V1JobStatus where+ parseJSON = A.withObject "V1JobStatus" $ \o ->+ V1JobStatus+ <$> (o .:? "active")+ <*> (o .:? "completedIndexes")+ <*> (o .:? "completionTime")+ <*> (o .:? "conditions")+ <*> (o .:? "failed")+ <*> (o .:? "failedIndexes")+ <*> (o .:? "ready")+ <*> (o .:? "startTime")+ <*> (o .:? "succeeded")+ <*> (o .:? "terminating")+ <*> (o .:? "uncountedTerminatedPods")++-- | ToJSON V1JobStatus+instance A.ToJSON V1JobStatus where+ toJSON V1JobStatus {..} =+ _omitNulls+ [ "active" .= v1JobStatusActive+ , "completedIndexes" .= v1JobStatusCompletedIndexes+ , "completionTime" .= v1JobStatusCompletionTime+ , "conditions" .= v1JobStatusConditions+ , "failed" .= v1JobStatusFailed+ , "failedIndexes" .= v1JobStatusFailedIndexes+ , "ready" .= v1JobStatusReady+ , "startTime" .= v1JobStatusStartTime+ , "succeeded" .= v1JobStatusSucceeded+ , "terminating" .= v1JobStatusTerminating+ , "uncountedTerminatedPods" .= v1JobStatusUncountedTerminatedPods+ ]+++-- | Construct a value of type 'V1JobStatus' (by applying it's required fields, if any)+mkV1JobStatus+ :: V1JobStatus+mkV1JobStatus =+ V1JobStatus+ { v1JobStatusActive = Nothing+ , v1JobStatusCompletedIndexes = Nothing+ , v1JobStatusCompletionTime = Nothing+ , v1JobStatusConditions = Nothing+ , v1JobStatusFailed = Nothing+ , v1JobStatusFailedIndexes = Nothing+ , v1JobStatusReady = Nothing+ , v1JobStatusStartTime = Nothing+ , v1JobStatusSucceeded = Nothing+ , v1JobStatusTerminating = Nothing+ , v1JobStatusUncountedTerminatedPods = Nothing+ }++-- ** V1JobTemplateSpec+-- | V1JobTemplateSpec+-- JobTemplateSpec describes the data a Job should have when created from a template+data V1JobTemplateSpec = V1JobTemplateSpec+ { v1JobTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1JobTemplateSpecSpec :: !(Maybe V1JobSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1JobTemplateSpec+instance A.FromJSON V1JobTemplateSpec where+ parseJSON = A.withObject "V1JobTemplateSpec" $ \o ->+ V1JobTemplateSpec+ <$> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1JobTemplateSpec+instance A.ToJSON V1JobTemplateSpec where+ toJSON V1JobTemplateSpec {..} =+ _omitNulls+ [ "metadata" .= v1JobTemplateSpecMetadata+ , "spec" .= v1JobTemplateSpecSpec+ ]+++-- | Construct a value of type 'V1JobTemplateSpec' (by applying it's required fields, if any)+mkV1JobTemplateSpec+ :: V1JobTemplateSpec+mkV1JobTemplateSpec =+ V1JobTemplateSpec+ { v1JobTemplateSpecMetadata = Nothing+ , v1JobTemplateSpecSpec = Nothing+ }++-- ** V1KeyToPath+-- | V1KeyToPath+-- Maps a string key to a path within a volume.+data V1KeyToPath = V1KeyToPath+ { v1KeyToPathKey :: !(Text) -- ^ /Required/ "key" - key is the key to project.+ , v1KeyToPathMode :: !(Maybe Int) -- ^ "mode" - mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.+ , v1KeyToPathPath :: !(Text) -- ^ /Required/ "path" - path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1KeyToPath+instance A.FromJSON V1KeyToPath where+ parseJSON = A.withObject "V1KeyToPath" $ \o ->+ V1KeyToPath+ <$> (o .: "key")+ <*> (o .:? "mode")+ <*> (o .: "path")++-- | ToJSON V1KeyToPath+instance A.ToJSON V1KeyToPath where+ toJSON V1KeyToPath {..} =+ _omitNulls+ [ "key" .= v1KeyToPathKey+ , "mode" .= v1KeyToPathMode+ , "path" .= v1KeyToPathPath+ ]+++-- | Construct a value of type 'V1KeyToPath' (by applying it's required fields, if any)+mkV1KeyToPath+ :: Text -- ^ 'v1KeyToPathKey': key is the key to project.+ -> Text -- ^ 'v1KeyToPathPath': path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.+ -> V1KeyToPath+mkV1KeyToPath v1KeyToPathKey v1KeyToPathPath =+ V1KeyToPath+ { v1KeyToPathKey+ , v1KeyToPathMode = Nothing+ , v1KeyToPathPath+ }++-- ** V1LabelSelector+-- | V1LabelSelector+-- A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.+data V1LabelSelector = V1LabelSelector+ { v1LabelSelectorMatchExpressions :: !(Maybe [V1LabelSelectorRequirement]) -- ^ "matchExpressions" - matchExpressions is a list of label selector requirements. The requirements are ANDed.+ , v1LabelSelectorMatchLabels :: !(Maybe (Map.Map String Text)) -- ^ "matchLabels" - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LabelSelector+instance A.FromJSON V1LabelSelector where+ parseJSON = A.withObject "V1LabelSelector" $ \o ->+ V1LabelSelector+ <$> (o .:? "matchExpressions")+ <*> (o .:? "matchLabels")++-- | ToJSON V1LabelSelector+instance A.ToJSON V1LabelSelector where+ toJSON V1LabelSelector {..} =+ _omitNulls+ [ "matchExpressions" .= v1LabelSelectorMatchExpressions+ , "matchLabels" .= v1LabelSelectorMatchLabels+ ]+++-- | Construct a value of type 'V1LabelSelector' (by applying it's required fields, if any)+mkV1LabelSelector+ :: V1LabelSelector+mkV1LabelSelector =+ V1LabelSelector+ { v1LabelSelectorMatchExpressions = Nothing+ , v1LabelSelectorMatchLabels = Nothing+ }++-- ** V1LabelSelectorAttributes+-- | V1LabelSelectorAttributes+-- LabelSelectorAttributes indicates a label limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.+data V1LabelSelectorAttributes = V1LabelSelectorAttributes+ { v1LabelSelectorAttributesRawSelector :: !(Maybe Text) -- ^ "rawSelector" - rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.+ , v1LabelSelectorAttributesRequirements :: !(Maybe [V1LabelSelectorRequirement]) -- ^ "requirements" - requirements is the parsed interpretation of a label selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LabelSelectorAttributes+instance A.FromJSON V1LabelSelectorAttributes where+ parseJSON = A.withObject "V1LabelSelectorAttributes" $ \o ->+ V1LabelSelectorAttributes+ <$> (o .:? "rawSelector")+ <*> (o .:? "requirements")++-- | ToJSON V1LabelSelectorAttributes+instance A.ToJSON V1LabelSelectorAttributes where+ toJSON V1LabelSelectorAttributes {..} =+ _omitNulls+ [ "rawSelector" .= v1LabelSelectorAttributesRawSelector+ , "requirements" .= v1LabelSelectorAttributesRequirements+ ]+++-- | Construct a value of type 'V1LabelSelectorAttributes' (by applying it's required fields, if any)+mkV1LabelSelectorAttributes+ :: V1LabelSelectorAttributes+mkV1LabelSelectorAttributes =+ V1LabelSelectorAttributes+ { v1LabelSelectorAttributesRawSelector = Nothing+ , v1LabelSelectorAttributesRequirements = Nothing+ }++-- ** V1LabelSelectorRequirement+-- | V1LabelSelectorRequirement+-- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.+data V1LabelSelectorRequirement = V1LabelSelectorRequirement+ { v1LabelSelectorRequirementKey :: !(Text) -- ^ /Required/ "key" - key is the label key that the selector applies to.+ , v1LabelSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.+ , v1LabelSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LabelSelectorRequirement+instance A.FromJSON V1LabelSelectorRequirement where+ parseJSON = A.withObject "V1LabelSelectorRequirement" $ \o ->+ V1LabelSelectorRequirement+ <$> (o .: "key")+ <*> (o .: "operator")+ <*> (o .:? "values")++-- | ToJSON V1LabelSelectorRequirement+instance A.ToJSON V1LabelSelectorRequirement where+ toJSON V1LabelSelectorRequirement {..} =+ _omitNulls+ [ "key" .= v1LabelSelectorRequirementKey+ , "operator" .= v1LabelSelectorRequirementOperator+ , "values" .= v1LabelSelectorRequirementValues+ ]+++-- | Construct a value of type 'V1LabelSelectorRequirement' (by applying it's required fields, if any)+mkV1LabelSelectorRequirement+ :: Text -- ^ 'v1LabelSelectorRequirementKey': key is the label key that the selector applies to.+ -> Text -- ^ 'v1LabelSelectorRequirementOperator': operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.+ -> V1LabelSelectorRequirement+mkV1LabelSelectorRequirement v1LabelSelectorRequirementKey v1LabelSelectorRequirementOperator =+ V1LabelSelectorRequirement+ { v1LabelSelectorRequirementKey+ , v1LabelSelectorRequirementOperator+ , v1LabelSelectorRequirementValues = Nothing+ }++-- ** V1Lease+-- | V1Lease+-- Lease defines a lease concept.+data V1Lease = V1Lease+ { v1LeaseApiVersion :: !(Maybe Text) -- ^ "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+ , v1LeaseKind :: !(Maybe Text) -- ^ "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+ , v1LeaseMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1LeaseSpec :: !(Maybe V1LeaseSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Lease+instance A.FromJSON V1Lease where+ parseJSON = A.withObject "V1Lease" $ \o ->+ V1Lease+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1Lease+instance A.ToJSON V1Lease where+ toJSON V1Lease {..} =+ _omitNulls+ [ "apiVersion" .= v1LeaseApiVersion+ , "kind" .= v1LeaseKind+ , "metadata" .= v1LeaseMetadata+ , "spec" .= v1LeaseSpec+ ]+++-- | Construct a value of type 'V1Lease' (by applying it's required fields, if any)+mkV1Lease+ :: V1Lease+mkV1Lease =+ V1Lease+ { v1LeaseApiVersion = Nothing+ , v1LeaseKind = Nothing+ , v1LeaseMetadata = Nothing+ , v1LeaseSpec = Nothing+ }++-- ** V1LeaseList+-- | V1LeaseList+-- LeaseList is a list of Lease objects.+data V1LeaseList = V1LeaseList+ { v1LeaseListApiVersion :: !(Maybe Text) -- ^ "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+ , v1LeaseListItems :: !([V1Lease]) -- ^ /Required/ "items" - items is a list of schema objects.+ , v1LeaseListKind :: !(Maybe Text) -- ^ "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+ , v1LeaseListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LeaseList+instance A.FromJSON V1LeaseList where+ parseJSON = A.withObject "V1LeaseList" $ \o ->+ V1LeaseList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1LeaseList+instance A.ToJSON V1LeaseList where+ toJSON V1LeaseList {..} =+ _omitNulls+ [ "apiVersion" .= v1LeaseListApiVersion+ , "items" .= v1LeaseListItems+ , "kind" .= v1LeaseListKind+ , "metadata" .= v1LeaseListMetadata+ ]+++-- | Construct a value of type 'V1LeaseList' (by applying it's required fields, if any)+mkV1LeaseList+ :: [V1Lease] -- ^ 'v1LeaseListItems': items is a list of schema objects.+ -> V1LeaseList+mkV1LeaseList v1LeaseListItems =+ V1LeaseList+ { v1LeaseListApiVersion = Nothing+ , v1LeaseListItems+ , v1LeaseListKind = Nothing+ , v1LeaseListMetadata = Nothing+ }++-- ** V1LeaseSpec+-- | V1LeaseSpec+-- LeaseSpec is a specification of a Lease.+data V1LeaseSpec = V1LeaseSpec+ { v1LeaseSpecAcquireTime :: !(Maybe DateTime) -- ^ "acquireTime" - acquireTime is a time when the current lease was acquired.+ , v1LeaseSpecHolderIdentity :: !(Maybe Text) -- ^ "holderIdentity" - holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.+ , v1LeaseSpecLeaseDurationSeconds :: !(Maybe Int) -- ^ "leaseDurationSeconds" - leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.+ , v1LeaseSpecLeaseTransitions :: !(Maybe Int) -- ^ "leaseTransitions" - leaseTransitions is the number of transitions of a lease between holders.+ , v1LeaseSpecPreferredHolder :: !(Maybe Text) -- ^ "preferredHolder" - PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.+ , v1LeaseSpecRenewTime :: !(Maybe DateTime) -- ^ "renewTime" - renewTime is a time when the current holder of a lease has last updated the lease.+ , v1LeaseSpecStrategy :: !(Maybe Text) -- ^ "strategy" - Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LeaseSpec+instance A.FromJSON V1LeaseSpec where+ parseJSON = A.withObject "V1LeaseSpec" $ \o ->+ V1LeaseSpec+ <$> (o .:? "acquireTime")+ <*> (o .:? "holderIdentity")+ <*> (o .:? "leaseDurationSeconds")+ <*> (o .:? "leaseTransitions")+ <*> (o .:? "preferredHolder")+ <*> (o .:? "renewTime")+ <*> (o .:? "strategy")++-- | ToJSON V1LeaseSpec+instance A.ToJSON V1LeaseSpec where+ toJSON V1LeaseSpec {..} =+ _omitNulls+ [ "acquireTime" .= v1LeaseSpecAcquireTime+ , "holderIdentity" .= v1LeaseSpecHolderIdentity+ , "leaseDurationSeconds" .= v1LeaseSpecLeaseDurationSeconds+ , "leaseTransitions" .= v1LeaseSpecLeaseTransitions+ , "preferredHolder" .= v1LeaseSpecPreferredHolder+ , "renewTime" .= v1LeaseSpecRenewTime+ , "strategy" .= v1LeaseSpecStrategy+ ]+++-- | Construct a value of type 'V1LeaseSpec' (by applying it's required fields, if any)+mkV1LeaseSpec+ :: V1LeaseSpec+mkV1LeaseSpec =+ V1LeaseSpec+ { v1LeaseSpecAcquireTime = Nothing+ , v1LeaseSpecHolderIdentity = Nothing+ , v1LeaseSpecLeaseDurationSeconds = Nothing+ , v1LeaseSpecLeaseTransitions = Nothing+ , v1LeaseSpecPreferredHolder = Nothing+ , v1LeaseSpecRenewTime = Nothing+ , v1LeaseSpecStrategy = Nothing+ }++-- ** V1Lifecycle+-- | V1Lifecycle+-- Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.+data V1Lifecycle = V1Lifecycle+ { v1LifecyclePostStart :: !(Maybe V1LifecycleHandler) -- ^ "postStart"+ , v1LifecyclePreStop :: !(Maybe V1LifecycleHandler) -- ^ "preStop"+ , v1LifecycleStopSignal :: !(Maybe Text) -- ^ "stopSignal" - StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Lifecycle+instance A.FromJSON V1Lifecycle where+ parseJSON = A.withObject "V1Lifecycle" $ \o ->+ V1Lifecycle+ <$> (o .:? "postStart")+ <*> (o .:? "preStop")+ <*> (o .:? "stopSignal")++-- | ToJSON V1Lifecycle+instance A.ToJSON V1Lifecycle where+ toJSON V1Lifecycle {..} =+ _omitNulls+ [ "postStart" .= v1LifecyclePostStart+ , "preStop" .= v1LifecyclePreStop+ , "stopSignal" .= v1LifecycleStopSignal+ ]+++-- | Construct a value of type 'V1Lifecycle' (by applying it's required fields, if any)+mkV1Lifecycle+ :: V1Lifecycle+mkV1Lifecycle =+ V1Lifecycle+ { v1LifecyclePostStart = Nothing+ , v1LifecyclePreStop = Nothing+ , v1LifecycleStopSignal = Nothing+ }++-- ** V1LifecycleHandler+-- | V1LifecycleHandler+-- 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.+data V1LifecycleHandler = V1LifecycleHandler+ { v1LifecycleHandlerExec :: !(Maybe V1ExecAction) -- ^ "exec"+ , v1LifecycleHandlerHttpGet :: !(Maybe V1HTTPGetAction) -- ^ "httpGet"+ , v1LifecycleHandlerSleep :: !(Maybe V1SleepAction) -- ^ "sleep"+ , v1LifecycleHandlerTcpSocket :: !(Maybe V1TCPSocketAction) -- ^ "tcpSocket"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LifecycleHandler+instance A.FromJSON V1LifecycleHandler where+ parseJSON = A.withObject "V1LifecycleHandler" $ \o ->+ V1LifecycleHandler+ <$> (o .:? "exec")+ <*> (o .:? "httpGet")+ <*> (o .:? "sleep")+ <*> (o .:? "tcpSocket")++-- | ToJSON V1LifecycleHandler+instance A.ToJSON V1LifecycleHandler where+ toJSON V1LifecycleHandler {..} =+ _omitNulls+ [ "exec" .= v1LifecycleHandlerExec+ , "httpGet" .= v1LifecycleHandlerHttpGet+ , "sleep" .= v1LifecycleHandlerSleep+ , "tcpSocket" .= v1LifecycleHandlerTcpSocket+ ]+++-- | Construct a value of type 'V1LifecycleHandler' (by applying it's required fields, if any)+mkV1LifecycleHandler+ :: V1LifecycleHandler+mkV1LifecycleHandler =+ V1LifecycleHandler+ { v1LifecycleHandlerExec = Nothing+ , v1LifecycleHandlerHttpGet = Nothing+ , v1LifecycleHandlerSleep = Nothing+ , v1LifecycleHandlerTcpSocket = Nothing+ }++-- ** V1LimitRange+-- | V1LimitRange+-- LimitRange sets resource usage limits for each kind of resource in a Namespace.+data V1LimitRange = V1LimitRange+ { v1LimitRangeApiVersion :: !(Maybe Text) -- ^ "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+ , v1LimitRangeKind :: !(Maybe Text) -- ^ "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+ , v1LimitRangeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1LimitRangeSpec :: !(Maybe V1LimitRangeSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LimitRange+instance A.FromJSON V1LimitRange where+ parseJSON = A.withObject "V1LimitRange" $ \o ->+ V1LimitRange+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1LimitRange+instance A.ToJSON V1LimitRange where+ toJSON V1LimitRange {..} =+ _omitNulls+ [ "apiVersion" .= v1LimitRangeApiVersion+ , "kind" .= v1LimitRangeKind+ , "metadata" .= v1LimitRangeMetadata+ , "spec" .= v1LimitRangeSpec+ ]+++-- | Construct a value of type 'V1LimitRange' (by applying it's required fields, if any)+mkV1LimitRange+ :: V1LimitRange+mkV1LimitRange =+ V1LimitRange+ { v1LimitRangeApiVersion = Nothing+ , v1LimitRangeKind = Nothing+ , v1LimitRangeMetadata = Nothing+ , v1LimitRangeSpec = Nothing+ }++-- ** V1LimitRangeItem+-- | V1LimitRangeItem+-- LimitRangeItem defines a min/max usage limit for any resource that matches on kind.+data V1LimitRangeItem = V1LimitRangeItem+ { v1LimitRangeItemDefault :: !(Maybe (Map.Map String Quantity)) -- ^ "default" - Default resource requirement limit value by resource name if resource limit is omitted.+ , v1LimitRangeItemDefaultRequest :: !(Maybe (Map.Map String Quantity)) -- ^ "defaultRequest" - DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.+ , v1LimitRangeItemMax :: !(Maybe (Map.Map String Quantity)) -- ^ "max" - Max usage constraints on this kind by resource name.+ , v1LimitRangeItemMaxLimitRequestRatio :: !(Maybe (Map.Map String Quantity)) -- ^ "maxLimitRequestRatio" - MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.+ , v1LimitRangeItemMin :: !(Maybe (Map.Map String Quantity)) -- ^ "min" - Min usage constraints on this kind by resource name.+ , v1LimitRangeItemType :: !(Text) -- ^ /Required/ "type" - Type of resource that this limit applies to.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LimitRangeItem+instance A.FromJSON V1LimitRangeItem where+ parseJSON = A.withObject "V1LimitRangeItem" $ \o ->+ V1LimitRangeItem+ <$> (o .:? "default")+ <*> (o .:? "defaultRequest")+ <*> (o .:? "max")+ <*> (o .:? "maxLimitRequestRatio")+ <*> (o .:? "min")+ <*> (o .: "type")++-- | ToJSON V1LimitRangeItem+instance A.ToJSON V1LimitRangeItem where+ toJSON V1LimitRangeItem {..} =+ _omitNulls+ [ "default" .= v1LimitRangeItemDefault+ , "defaultRequest" .= v1LimitRangeItemDefaultRequest+ , "max" .= v1LimitRangeItemMax+ , "maxLimitRequestRatio" .= v1LimitRangeItemMaxLimitRequestRatio+ , "min" .= v1LimitRangeItemMin+ , "type" .= v1LimitRangeItemType+ ]+++-- | Construct a value of type 'V1LimitRangeItem' (by applying it's required fields, if any)+mkV1LimitRangeItem+ :: Text -- ^ 'v1LimitRangeItemType': Type of resource that this limit applies to.+ -> V1LimitRangeItem+mkV1LimitRangeItem v1LimitRangeItemType =+ V1LimitRangeItem+ { v1LimitRangeItemDefault = Nothing+ , v1LimitRangeItemDefaultRequest = Nothing+ , v1LimitRangeItemMax = Nothing+ , v1LimitRangeItemMaxLimitRequestRatio = Nothing+ , v1LimitRangeItemMin = Nothing+ , v1LimitRangeItemType+ }++-- ** V1LimitRangeList+-- | V1LimitRangeList+-- LimitRangeList is a list of LimitRange items.+data V1LimitRangeList = V1LimitRangeList+ { v1LimitRangeListApiVersion :: !(Maybe Text) -- ^ "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+ , v1LimitRangeListItems :: !([V1LimitRange]) -- ^ /Required/ "items" - Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/+ , v1LimitRangeListKind :: !(Maybe Text) -- ^ "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+ , v1LimitRangeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LimitRangeList+instance A.FromJSON V1LimitRangeList where+ parseJSON = A.withObject "V1LimitRangeList" $ \o ->+ V1LimitRangeList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1LimitRangeList+instance A.ToJSON V1LimitRangeList where+ toJSON V1LimitRangeList {..} =+ _omitNulls+ [ "apiVersion" .= v1LimitRangeListApiVersion+ , "items" .= v1LimitRangeListItems+ , "kind" .= v1LimitRangeListKind+ , "metadata" .= v1LimitRangeListMetadata+ ]+++-- | Construct a value of type 'V1LimitRangeList' (by applying it's required fields, if any)+mkV1LimitRangeList+ :: [V1LimitRange] -- ^ 'v1LimitRangeListItems': Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/+ -> V1LimitRangeList+mkV1LimitRangeList v1LimitRangeListItems =+ V1LimitRangeList+ { v1LimitRangeListApiVersion = Nothing+ , v1LimitRangeListItems+ , v1LimitRangeListKind = Nothing+ , v1LimitRangeListMetadata = Nothing+ }++-- ** V1LimitRangeSpec+-- | V1LimitRangeSpec+-- LimitRangeSpec defines a min/max usage limit for resources that match on kind.+data V1LimitRangeSpec = V1LimitRangeSpec+ { v1LimitRangeSpecLimits :: !([V1LimitRangeItem]) -- ^ /Required/ "limits" - Limits is the list of LimitRangeItem objects that are enforced.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LimitRangeSpec+instance A.FromJSON V1LimitRangeSpec where+ parseJSON = A.withObject "V1LimitRangeSpec" $ \o ->+ V1LimitRangeSpec+ <$> (o .: "limits")++-- | ToJSON V1LimitRangeSpec+instance A.ToJSON V1LimitRangeSpec where+ toJSON V1LimitRangeSpec {..} =+ _omitNulls+ [ "limits" .= v1LimitRangeSpecLimits+ ]+++-- | Construct a value of type 'V1LimitRangeSpec' (by applying it's required fields, if any)+mkV1LimitRangeSpec+ :: [V1LimitRangeItem] -- ^ 'v1LimitRangeSpecLimits': Limits is the list of LimitRangeItem objects that are enforced.+ -> V1LimitRangeSpec+mkV1LimitRangeSpec v1LimitRangeSpecLimits =+ V1LimitRangeSpec+ { v1LimitRangeSpecLimits+ }++-- ** V1LimitResponse+-- | V1LimitResponse+-- LimitResponse defines how to handle requests that can not be executed right now.+data V1LimitResponse = V1LimitResponse+ { v1LimitResponseQueuing :: !(Maybe V1QueuingConfiguration) -- ^ "queuing"+ , v1LimitResponseType :: !(Text) -- ^ /Required/ "type" - `type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LimitResponse+instance A.FromJSON V1LimitResponse where+ parseJSON = A.withObject "V1LimitResponse" $ \o ->+ V1LimitResponse+ <$> (o .:? "queuing")+ <*> (o .: "type")++-- | ToJSON V1LimitResponse+instance A.ToJSON V1LimitResponse where+ toJSON V1LimitResponse {..} =+ _omitNulls+ [ "queuing" .= v1LimitResponseQueuing+ , "type" .= v1LimitResponseType+ ]+++-- | Construct a value of type 'V1LimitResponse' (by applying it's required fields, if any)+mkV1LimitResponse+ :: Text -- ^ 'v1LimitResponseType': `type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.+ -> V1LimitResponse+mkV1LimitResponse v1LimitResponseType =+ V1LimitResponse+ { v1LimitResponseQueuing = Nothing+ , v1LimitResponseType+ }++-- ** V1LimitedPriorityLevelConfiguration+-- | V1LimitedPriorityLevelConfiguration+-- LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues: - How are requests for this priority level limited? - What should be done with requests that exceed the limit?+data V1LimitedPriorityLevelConfiguration = V1LimitedPriorityLevelConfiguration+ { v1LimitedPriorityLevelConfigurationBorrowingLimitPercent :: !(Maybe Int) -- ^ "borrowingLimitPercent" - `borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows. BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 ) The value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.+ , v1LimitedPriorityLevelConfigurationLendablePercent :: !(Maybe Int) -- ^ "lendablePercent" - `lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows. LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )+ , v1LimitedPriorityLevelConfigurationLimitResponse :: !(Maybe V1LimitResponse) -- ^ "limitResponse"+ , v1LimitedPriorityLevelConfigurationNominalConcurrencyShares :: !(Maybe Int) -- ^ "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) Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. If not specified, this field defaults to a value of 30. Setting this field to zero supports the construction of a \"jail\" for this priority level that is used to hold some request(s)+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LimitedPriorityLevelConfiguration+instance A.FromJSON V1LimitedPriorityLevelConfiguration where+ parseJSON = A.withObject "V1LimitedPriorityLevelConfiguration" $ \o ->+ V1LimitedPriorityLevelConfiguration+ <$> (o .:? "borrowingLimitPercent")+ <*> (o .:? "lendablePercent")+ <*> (o .:? "limitResponse")+ <*> (o .:? "nominalConcurrencyShares")++-- | ToJSON V1LimitedPriorityLevelConfiguration+instance A.ToJSON V1LimitedPriorityLevelConfiguration where+ toJSON V1LimitedPriorityLevelConfiguration {..} =+ _omitNulls+ [ "borrowingLimitPercent" .= v1LimitedPriorityLevelConfigurationBorrowingLimitPercent+ , "lendablePercent" .= v1LimitedPriorityLevelConfigurationLendablePercent+ , "limitResponse" .= v1LimitedPriorityLevelConfigurationLimitResponse+ , "nominalConcurrencyShares" .= v1LimitedPriorityLevelConfigurationNominalConcurrencyShares+ ]+++-- | Construct a value of type 'V1LimitedPriorityLevelConfiguration' (by applying it's required fields, if any)+mkV1LimitedPriorityLevelConfiguration+ :: V1LimitedPriorityLevelConfiguration+mkV1LimitedPriorityLevelConfiguration =+ V1LimitedPriorityLevelConfiguration+ { v1LimitedPriorityLevelConfigurationBorrowingLimitPercent = Nothing+ , v1LimitedPriorityLevelConfigurationLendablePercent = Nothing+ , v1LimitedPriorityLevelConfigurationLimitResponse = Nothing+ , v1LimitedPriorityLevelConfigurationNominalConcurrencyShares = Nothing+ }++-- ** V1LinuxContainerUser+-- | V1LinuxContainerUser+-- LinuxContainerUser represents user identity information in Linux containers+data V1LinuxContainerUser = V1LinuxContainerUser+ { v1LinuxContainerUserGid :: !(Integer) -- ^ /Required/ "gid" - GID is the primary gid initially attached to the first process in the container+ , v1LinuxContainerUserSupplementalGroups :: !(Maybe [Integer]) -- ^ "supplementalGroups" - SupplementalGroups are the supplemental groups initially attached to the first process in the container+ , v1LinuxContainerUserUid :: !(Integer) -- ^ /Required/ "uid" - UID is the primary uid initially attached to the first process in the container+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LinuxContainerUser+instance A.FromJSON V1LinuxContainerUser where+ parseJSON = A.withObject "V1LinuxContainerUser" $ \o ->+ V1LinuxContainerUser+ <$> (o .: "gid")+ <*> (o .:? "supplementalGroups")+ <*> (o .: "uid")++-- | ToJSON V1LinuxContainerUser+instance A.ToJSON V1LinuxContainerUser where+ toJSON V1LinuxContainerUser {..} =+ _omitNulls+ [ "gid" .= v1LinuxContainerUserGid+ , "supplementalGroups" .= v1LinuxContainerUserSupplementalGroups+ , "uid" .= v1LinuxContainerUserUid+ ]+++-- | Construct a value of type 'V1LinuxContainerUser' (by applying it's required fields, if any)+mkV1LinuxContainerUser+ :: Integer -- ^ 'v1LinuxContainerUserGid': GID is the primary gid initially attached to the first process in the container+ -> Integer -- ^ 'v1LinuxContainerUserUid': UID is the primary uid initially attached to the first process in the container+ -> V1LinuxContainerUser+mkV1LinuxContainerUser v1LinuxContainerUserGid v1LinuxContainerUserUid =+ V1LinuxContainerUser+ { v1LinuxContainerUserGid+ , v1LinuxContainerUserSupplementalGroups = Nothing+ , v1LinuxContainerUserUid+ }++-- ** V1ListMeta+-- | V1ListMeta+-- ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.+data V1ListMeta = V1ListMeta+ { v1ListMetaContinue :: !(Maybe Text) -- ^ "continue" - continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.+ , v1ListMetaRemainingItemCount :: !(Maybe Integer) -- ^ "remainingItemCount" - remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.+ , v1ListMetaResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency+ , v1ListMetaSelfLink :: !(Maybe Text) -- ^ "selfLink" - Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ListMeta+instance A.FromJSON V1ListMeta where+ parseJSON = A.withObject "V1ListMeta" $ \o ->+ V1ListMeta+ <$> (o .:? "continue")+ <*> (o .:? "remainingItemCount")+ <*> (o .:? "resourceVersion")+ <*> (o .:? "selfLink")++-- | ToJSON V1ListMeta+instance A.ToJSON V1ListMeta where+ toJSON V1ListMeta {..} =+ _omitNulls+ [ "continue" .= v1ListMetaContinue+ , "remainingItemCount" .= v1ListMetaRemainingItemCount+ , "resourceVersion" .= v1ListMetaResourceVersion+ , "selfLink" .= v1ListMetaSelfLink+ ]+++-- | Construct a value of type 'V1ListMeta' (by applying it's required fields, if any)+mkV1ListMeta+ :: V1ListMeta+mkV1ListMeta =+ V1ListMeta+ { v1ListMetaContinue = Nothing+ , v1ListMetaRemainingItemCount = Nothing+ , v1ListMetaResourceVersion = Nothing+ , v1ListMetaSelfLink = Nothing+ }++-- ** V1LoadBalancerIngress+-- | V1LoadBalancerIngress+-- LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.+data V1LoadBalancerIngress = V1LoadBalancerIngress+ { v1LoadBalancerIngressHostname :: !(Maybe Text) -- ^ "hostname" - Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)+ , v1LoadBalancerIngressIp :: !(Maybe Text) -- ^ "ip" - IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)+ , v1LoadBalancerIngressIpMode :: !(Maybe Text) -- ^ "ipMode" - IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to \"VIP\" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to \"Proxy\" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing.+ , v1LoadBalancerIngressPorts :: !(Maybe [V1PortStatus]) -- ^ "ports" - Ports is a list of records of service ports If used, every port defined in the service should have an entry in it+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LoadBalancerIngress+instance A.FromJSON V1LoadBalancerIngress where+ parseJSON = A.withObject "V1LoadBalancerIngress" $ \o ->+ V1LoadBalancerIngress+ <$> (o .:? "hostname")+ <*> (o .:? "ip")+ <*> (o .:? "ipMode")+ <*> (o .:? "ports")++-- | ToJSON V1LoadBalancerIngress+instance A.ToJSON V1LoadBalancerIngress where+ toJSON V1LoadBalancerIngress {..} =+ _omitNulls+ [ "hostname" .= v1LoadBalancerIngressHostname+ , "ip" .= v1LoadBalancerIngressIp+ , "ipMode" .= v1LoadBalancerIngressIpMode+ , "ports" .= v1LoadBalancerIngressPorts+ ]+++-- | Construct a value of type 'V1LoadBalancerIngress' (by applying it's required fields, if any)+mkV1LoadBalancerIngress+ :: V1LoadBalancerIngress+mkV1LoadBalancerIngress =+ V1LoadBalancerIngress+ { v1LoadBalancerIngressHostname = Nothing+ , v1LoadBalancerIngressIp = Nothing+ , v1LoadBalancerIngressIpMode = Nothing+ , v1LoadBalancerIngressPorts = Nothing+ }++-- ** V1LoadBalancerStatus+-- | V1LoadBalancerStatus+-- LoadBalancerStatus represents the status of a load-balancer.+data V1LoadBalancerStatus = V1LoadBalancerStatus+ { v1LoadBalancerStatusIngress :: !(Maybe [V1LoadBalancerIngress]) -- ^ "ingress" - Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LoadBalancerStatus+instance A.FromJSON V1LoadBalancerStatus where+ parseJSON = A.withObject "V1LoadBalancerStatus" $ \o ->+ V1LoadBalancerStatus+ <$> (o .:? "ingress")++-- | ToJSON V1LoadBalancerStatus+instance A.ToJSON V1LoadBalancerStatus where+ toJSON V1LoadBalancerStatus {..} =+ _omitNulls+ [ "ingress" .= v1LoadBalancerStatusIngress+ ]+++-- | Construct a value of type 'V1LoadBalancerStatus' (by applying it's required fields, if any)+mkV1LoadBalancerStatus+ :: V1LoadBalancerStatus+mkV1LoadBalancerStatus =+ V1LoadBalancerStatus+ { v1LoadBalancerStatusIngress = Nothing+ }++-- ** V1LocalObjectReference+-- | V1LocalObjectReference+-- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.+data V1LocalObjectReference = V1LocalObjectReference+ { v1LocalObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LocalObjectReference+instance A.FromJSON V1LocalObjectReference where+ parseJSON = A.withObject "V1LocalObjectReference" $ \o ->+ V1LocalObjectReference+ <$> (o .:? "name")++-- | ToJSON V1LocalObjectReference+instance A.ToJSON V1LocalObjectReference where+ toJSON V1LocalObjectReference {..} =+ _omitNulls+ [ "name" .= v1LocalObjectReferenceName+ ]+++-- | Construct a value of type 'V1LocalObjectReference' (by applying it's required fields, if any)+mkV1LocalObjectReference+ :: V1LocalObjectReference+mkV1LocalObjectReference =+ V1LocalObjectReference+ { v1LocalObjectReferenceName = Nothing+ }++-- ** V1LocalSubjectAccessReview+-- | V1LocalSubjectAccessReview+-- LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.+data V1LocalSubjectAccessReview = V1LocalSubjectAccessReview+ { v1LocalSubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "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+ , v1LocalSubjectAccessReviewKind :: !(Maybe Text) -- ^ "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+ , v1LocalSubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1LocalSubjectAccessReviewSpec :: !(V1SubjectAccessReviewSpec) -- ^ /Required/ "spec"+ , v1LocalSubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LocalSubjectAccessReview+instance A.FromJSON V1LocalSubjectAccessReview where+ parseJSON = A.withObject "V1LocalSubjectAccessReview" $ \o ->+ V1LocalSubjectAccessReview+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1LocalSubjectAccessReview+instance A.ToJSON V1LocalSubjectAccessReview where+ toJSON V1LocalSubjectAccessReview {..} =+ _omitNulls+ [ "apiVersion" .= v1LocalSubjectAccessReviewApiVersion+ , "kind" .= v1LocalSubjectAccessReviewKind+ , "metadata" .= v1LocalSubjectAccessReviewMetadata+ , "spec" .= v1LocalSubjectAccessReviewSpec+ , "status" .= v1LocalSubjectAccessReviewStatus+ ]+++-- | Construct a value of type 'V1LocalSubjectAccessReview' (by applying it's required fields, if any)+mkV1LocalSubjectAccessReview+ :: V1SubjectAccessReviewSpec -- ^ 'v1LocalSubjectAccessReviewSpec' + -> V1LocalSubjectAccessReview+mkV1LocalSubjectAccessReview v1LocalSubjectAccessReviewSpec =+ V1LocalSubjectAccessReview+ { v1LocalSubjectAccessReviewApiVersion = Nothing+ , v1LocalSubjectAccessReviewKind = Nothing+ , v1LocalSubjectAccessReviewMetadata = Nothing+ , v1LocalSubjectAccessReviewSpec+ , v1LocalSubjectAccessReviewStatus = Nothing+ }++-- ** V1LocalVolumeSource+-- | V1LocalVolumeSource+-- Local represents directly-attached storage with node affinity+data V1LocalVolumeSource = V1LocalVolumeSource+ { v1LocalVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - 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.+ , v1LocalVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1LocalVolumeSource+instance A.FromJSON V1LocalVolumeSource where+ parseJSON = A.withObject "V1LocalVolumeSource" $ \o ->+ V1LocalVolumeSource+ <$> (o .:? "fsType")+ <*> (o .: "path")++-- | ToJSON V1LocalVolumeSource+instance A.ToJSON V1LocalVolumeSource where+ toJSON V1LocalVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1LocalVolumeSourceFsType+ , "path" .= v1LocalVolumeSourcePath+ ]+++-- | Construct a value of type 'V1LocalVolumeSource' (by applying it's required fields, if any)+mkV1LocalVolumeSource+ :: Text -- ^ 'v1LocalVolumeSourcePath': path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).+ -> V1LocalVolumeSource+mkV1LocalVolumeSource v1LocalVolumeSourcePath =+ V1LocalVolumeSource+ { v1LocalVolumeSourceFsType = Nothing+ , v1LocalVolumeSourcePath+ }++-- ** V1ManagedFieldsEntry+-- | V1ManagedFieldsEntry+-- ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.+data V1ManagedFieldsEntry = V1ManagedFieldsEntry+ { v1ManagedFieldsEntryApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.+ , v1ManagedFieldsEntryFieldsType :: !(Maybe Text) -- ^ "fieldsType" - FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"+ , v1ManagedFieldsEntryFieldsV1 :: !(Maybe A.Value) -- ^ "fieldsV1" - FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.+ , v1ManagedFieldsEntryManager :: !(Maybe Text) -- ^ "manager" - Manager is an identifier of the workflow managing these fields.+ , v1ManagedFieldsEntryOperation :: !(Maybe Text) -- ^ "operation" - Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.+ , v1ManagedFieldsEntrySubresource :: !(Maybe Text) -- ^ "subresource" - Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.+ , v1ManagedFieldsEntryTime :: !(Maybe DateTime) -- ^ "time" - Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ManagedFieldsEntry+instance A.FromJSON V1ManagedFieldsEntry where+ parseJSON = A.withObject "V1ManagedFieldsEntry" $ \o ->+ V1ManagedFieldsEntry+ <$> (o .:? "apiVersion")+ <*> (o .:? "fieldsType")+ <*> (o .:? "fieldsV1")+ <*> (o .:? "manager")+ <*> (o .:? "operation")+ <*> (o .:? "subresource")+ <*> (o .:? "time")++-- | ToJSON V1ManagedFieldsEntry+instance A.ToJSON V1ManagedFieldsEntry where+ toJSON V1ManagedFieldsEntry {..} =+ _omitNulls+ [ "apiVersion" .= v1ManagedFieldsEntryApiVersion+ , "fieldsType" .= v1ManagedFieldsEntryFieldsType+ , "fieldsV1" .= v1ManagedFieldsEntryFieldsV1+ , "manager" .= v1ManagedFieldsEntryManager+ , "operation" .= v1ManagedFieldsEntryOperation+ , "subresource" .= v1ManagedFieldsEntrySubresource+ , "time" .= v1ManagedFieldsEntryTime+ ]+++-- | Construct a value of type 'V1ManagedFieldsEntry' (by applying it's required fields, if any)+mkV1ManagedFieldsEntry+ :: V1ManagedFieldsEntry+mkV1ManagedFieldsEntry =+ V1ManagedFieldsEntry+ { v1ManagedFieldsEntryApiVersion = Nothing+ , v1ManagedFieldsEntryFieldsType = Nothing+ , v1ManagedFieldsEntryFieldsV1 = Nothing+ , v1ManagedFieldsEntryManager = Nothing+ , v1ManagedFieldsEntryOperation = Nothing+ , v1ManagedFieldsEntrySubresource = Nothing+ , v1ManagedFieldsEntryTime = Nothing+ }++-- ** V1MatchCondition+-- | V1MatchCondition+-- MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.+data V1MatchCondition = V1MatchCondition+ { v1MatchConditionExpression :: !(Text) -- ^ /Required/ "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.+ , v1MatchConditionName :: !(Text) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1MatchCondition+instance A.FromJSON V1MatchCondition where+ parseJSON = A.withObject "V1MatchCondition" $ \o ->+ V1MatchCondition+ <$> (o .: "expression")+ <*> (o .: "name")++-- | ToJSON V1MatchCondition+instance A.ToJSON V1MatchCondition where+ toJSON V1MatchCondition {..} =+ _omitNulls+ [ "expression" .= v1MatchConditionExpression+ , "name" .= v1MatchConditionName+ ]+++-- | Construct a value of type 'V1MatchCondition' (by applying it's required fields, if any)+mkV1MatchCondition+ :: Text -- ^ 'v1MatchConditionExpression': 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.+ -> Text -- ^ 'v1MatchConditionName': 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.+ -> V1MatchCondition+mkV1MatchCondition v1MatchConditionExpression v1MatchConditionName =+ V1MatchCondition+ { v1MatchConditionExpression+ , v1MatchConditionName+ }++-- ** V1MatchResources+-- | V1MatchResources+-- 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)+data V1MatchResources = V1MatchResources+ { v1MatchResourcesExcludeResourceRules :: !(Maybe [V1NamedRuleWithOperations]) -- ^ "excludeResourceRules" - 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)+ , v1MatchResourcesMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - 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\"+ , v1MatchResourcesNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"+ , v1MatchResourcesObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"+ , v1MatchResourcesResourceRules :: !(Maybe [V1NamedRuleWithOperations]) -- ^ "resourceRules" - ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1MatchResources+instance A.FromJSON V1MatchResources where+ parseJSON = A.withObject "V1MatchResources" $ \o ->+ V1MatchResources+ <$> (o .:? "excludeResourceRules")+ <*> (o .:? "matchPolicy")+ <*> (o .:? "namespaceSelector")+ <*> (o .:? "objectSelector")+ <*> (o .:? "resourceRules")++-- | ToJSON V1MatchResources+instance A.ToJSON V1MatchResources where+ toJSON V1MatchResources {..} =+ _omitNulls+ [ "excludeResourceRules" .= v1MatchResourcesExcludeResourceRules+ , "matchPolicy" .= v1MatchResourcesMatchPolicy+ , "namespaceSelector" .= v1MatchResourcesNamespaceSelector+ , "objectSelector" .= v1MatchResourcesObjectSelector+ , "resourceRules" .= v1MatchResourcesResourceRules+ ]+++-- | Construct a value of type 'V1MatchResources' (by applying it's required fields, if any)+mkV1MatchResources+ :: V1MatchResources+mkV1MatchResources =+ V1MatchResources+ { v1MatchResourcesExcludeResourceRules = Nothing+ , v1MatchResourcesMatchPolicy = Nothing+ , v1MatchResourcesNamespaceSelector = Nothing+ , v1MatchResourcesObjectSelector = Nothing+ , v1MatchResourcesResourceRules = Nothing+ }++-- ** V1ModifyVolumeStatus+-- | V1ModifyVolumeStatus+-- ModifyVolumeStatus represents the status object of ControllerModifyVolume operation+data V1ModifyVolumeStatus = V1ModifyVolumeStatus+ { v1ModifyVolumeStatusStatus :: !(Text) -- ^ /Required/ "status" - status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.+ , v1ModifyVolumeStatusTargetVolumeAttributesClassName :: !(Maybe Text) -- ^ "targetVolumeAttributesClassName" - targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ModifyVolumeStatus+instance A.FromJSON V1ModifyVolumeStatus where+ parseJSON = A.withObject "V1ModifyVolumeStatus" $ \o ->+ V1ModifyVolumeStatus+ <$> (o .: "status")+ <*> (o .:? "targetVolumeAttributesClassName")++-- | ToJSON V1ModifyVolumeStatus+instance A.ToJSON V1ModifyVolumeStatus where+ toJSON V1ModifyVolumeStatus {..} =+ _omitNulls+ [ "status" .= v1ModifyVolumeStatusStatus+ , "targetVolumeAttributesClassName" .= v1ModifyVolumeStatusTargetVolumeAttributesClassName+ ]+++-- | Construct a value of type 'V1ModifyVolumeStatus' (by applying it's required fields, if any)+mkV1ModifyVolumeStatus+ :: Text -- ^ 'v1ModifyVolumeStatusStatus': status is the status of the ControllerModifyVolume operation. It can be in any of following states: - Pending Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing. - InProgress InProgress indicates that the volume is being modified. - Infeasible Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified. Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.+ -> V1ModifyVolumeStatus+mkV1ModifyVolumeStatus v1ModifyVolumeStatusStatus =+ V1ModifyVolumeStatus+ { v1ModifyVolumeStatusStatus+ , v1ModifyVolumeStatusTargetVolumeAttributesClassName = Nothing+ }++-- ** V1MutatingWebhook+-- | V1MutatingWebhook+-- MutatingWebhook describes an admission webhook and the resources and operations it applies to.+data V1MutatingWebhook = V1MutatingWebhook+ { v1MutatingWebhookAdmissionReviewVersions :: !([Text]) -- ^ /Required/ "admissionReviewVersions" - AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.+ , v1MutatingWebhookClientConfig :: !(AdmissionregistrationV1WebhookClientConfig) -- ^ /Required/ "clientConfig"+ , v1MutatingWebhookFailurePolicy :: !(Maybe Text) -- ^ "failurePolicy" - FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.+ , v1MutatingWebhookMatchConditions :: !(Maybe [V1MatchCondition]) -- ^ "matchConditions" - MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. 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. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped. 2. If ALL matchConditions evaluate to TRUE, the webhook is called. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the error is ignored and the webhook is skipped+ , v1MutatingWebhookMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - matchPolicy defines how the \"rules\" 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 webhook. - 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 webhook. Defaults to \"Equivalent\"+ , v1MutatingWebhookName :: !(Text) -- ^ /Required/ "name" - The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.+ , v1MutatingWebhookNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"+ , v1MutatingWebhookObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"+ , v1MutatingWebhookReinvocationPolicy :: !(Maybe Text) -- ^ "reinvocationPolicy" - reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\". Never: the webhook will not be called more than once in a single admission evaluation. IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead. Defaults to \"Never\".+ , v1MutatingWebhookRules :: !(Maybe [V1RuleWithOperations]) -- ^ "rules" - Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.+ , v1MutatingWebhookSideEffects :: !(Text) -- ^ /Required/ "sideEffects" - SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.+ , v1MutatingWebhookTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1MutatingWebhook+instance A.FromJSON V1MutatingWebhook where+ parseJSON = A.withObject "V1MutatingWebhook" $ \o ->+ V1MutatingWebhook+ <$> (o .: "admissionReviewVersions")+ <*> (o .: "clientConfig")+ <*> (o .:? "failurePolicy")+ <*> (o .:? "matchConditions")+ <*> (o .:? "matchPolicy")+ <*> (o .: "name")+ <*> (o .:? "namespaceSelector")+ <*> (o .:? "objectSelector")+ <*> (o .:? "reinvocationPolicy")+ <*> (o .:? "rules")+ <*> (o .: "sideEffects")+ <*> (o .:? "timeoutSeconds")++-- | ToJSON V1MutatingWebhook+instance A.ToJSON V1MutatingWebhook where+ toJSON V1MutatingWebhook {..} =+ _omitNulls+ [ "admissionReviewVersions" .= v1MutatingWebhookAdmissionReviewVersions+ , "clientConfig" .= v1MutatingWebhookClientConfig+ , "failurePolicy" .= v1MutatingWebhookFailurePolicy+ , "matchConditions" .= v1MutatingWebhookMatchConditions+ , "matchPolicy" .= v1MutatingWebhookMatchPolicy+ , "name" .= v1MutatingWebhookName+ , "namespaceSelector" .= v1MutatingWebhookNamespaceSelector+ , "objectSelector" .= v1MutatingWebhookObjectSelector+ , "reinvocationPolicy" .= v1MutatingWebhookReinvocationPolicy+ , "rules" .= v1MutatingWebhookRules+ , "sideEffects" .= v1MutatingWebhookSideEffects+ , "timeoutSeconds" .= v1MutatingWebhookTimeoutSeconds+ ]+++-- | Construct a value of type 'V1MutatingWebhook' (by applying it's required fields, if any)+mkV1MutatingWebhook+ :: [Text] -- ^ 'v1MutatingWebhookAdmissionReviewVersions': AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.+ -> AdmissionregistrationV1WebhookClientConfig -- ^ 'v1MutatingWebhookClientConfig' + -> Text -- ^ 'v1MutatingWebhookName': The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.+ -> Text -- ^ 'v1MutatingWebhookSideEffects': SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.+ -> V1MutatingWebhook+mkV1MutatingWebhook v1MutatingWebhookAdmissionReviewVersions v1MutatingWebhookClientConfig v1MutatingWebhookName v1MutatingWebhookSideEffects =+ V1MutatingWebhook+ { v1MutatingWebhookAdmissionReviewVersions+ , v1MutatingWebhookClientConfig+ , v1MutatingWebhookFailurePolicy = Nothing+ , v1MutatingWebhookMatchConditions = Nothing+ , v1MutatingWebhookMatchPolicy = Nothing+ , v1MutatingWebhookName+ , v1MutatingWebhookNamespaceSelector = Nothing+ , v1MutatingWebhookObjectSelector = Nothing+ , v1MutatingWebhookReinvocationPolicy = Nothing+ , v1MutatingWebhookRules = Nothing+ , v1MutatingWebhookSideEffects+ , v1MutatingWebhookTimeoutSeconds = Nothing+ }++-- ** V1MutatingWebhookConfiguration+-- | V1MutatingWebhookConfiguration+-- MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.+data V1MutatingWebhookConfiguration = V1MutatingWebhookConfiguration+ { v1MutatingWebhookConfigurationApiVersion :: !(Maybe Text) -- ^ "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+ , v1MutatingWebhookConfigurationKind :: !(Maybe Text) -- ^ "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+ , v1MutatingWebhookConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1MutatingWebhookConfigurationWebhooks :: !(Maybe [V1MutatingWebhook]) -- ^ "webhooks" - Webhooks is a list of webhooks and the affected resources and operations.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1MutatingWebhookConfiguration+instance A.FromJSON V1MutatingWebhookConfiguration where+ parseJSON = A.withObject "V1MutatingWebhookConfiguration" $ \o ->+ V1MutatingWebhookConfiguration+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "webhooks")++-- | ToJSON V1MutatingWebhookConfiguration+instance A.ToJSON V1MutatingWebhookConfiguration where+ toJSON V1MutatingWebhookConfiguration {..} =+ _omitNulls+ [ "apiVersion" .= v1MutatingWebhookConfigurationApiVersion+ , "kind" .= v1MutatingWebhookConfigurationKind+ , "metadata" .= v1MutatingWebhookConfigurationMetadata+ , "webhooks" .= v1MutatingWebhookConfigurationWebhooks+ ]+++-- | Construct a value of type 'V1MutatingWebhookConfiguration' (by applying it's required fields, if any)+mkV1MutatingWebhookConfiguration+ :: V1MutatingWebhookConfiguration+mkV1MutatingWebhookConfiguration =+ V1MutatingWebhookConfiguration+ { v1MutatingWebhookConfigurationApiVersion = Nothing+ , v1MutatingWebhookConfigurationKind = Nothing+ , v1MutatingWebhookConfigurationMetadata = Nothing+ , v1MutatingWebhookConfigurationWebhooks = Nothing+ }++-- ** V1MutatingWebhookConfigurationList+-- | V1MutatingWebhookConfigurationList+-- MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.+data V1MutatingWebhookConfigurationList = V1MutatingWebhookConfigurationList+ { v1MutatingWebhookConfigurationListApiVersion :: !(Maybe Text) -- ^ "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+ , v1MutatingWebhookConfigurationListItems :: !([V1MutatingWebhookConfiguration]) -- ^ /Required/ "items" - List of MutatingWebhookConfiguration.+ , v1MutatingWebhookConfigurationListKind :: !(Maybe Text) -- ^ "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+ , v1MutatingWebhookConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1MutatingWebhookConfigurationList+instance A.FromJSON V1MutatingWebhookConfigurationList where+ parseJSON = A.withObject "V1MutatingWebhookConfigurationList" $ \o ->+ V1MutatingWebhookConfigurationList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1MutatingWebhookConfigurationList+instance A.ToJSON V1MutatingWebhookConfigurationList where+ toJSON V1MutatingWebhookConfigurationList {..} =+ _omitNulls+ [ "apiVersion" .= v1MutatingWebhookConfigurationListApiVersion+ , "items" .= v1MutatingWebhookConfigurationListItems+ , "kind" .= v1MutatingWebhookConfigurationListKind+ , "metadata" .= v1MutatingWebhookConfigurationListMetadata+ ]+++-- | Construct a value of type 'V1MutatingWebhookConfigurationList' (by applying it's required fields, if any)+mkV1MutatingWebhookConfigurationList+ :: [V1MutatingWebhookConfiguration] -- ^ 'v1MutatingWebhookConfigurationListItems': List of MutatingWebhookConfiguration.+ -> V1MutatingWebhookConfigurationList+mkV1MutatingWebhookConfigurationList v1MutatingWebhookConfigurationListItems =+ V1MutatingWebhookConfigurationList+ { v1MutatingWebhookConfigurationListApiVersion = Nothing+ , v1MutatingWebhookConfigurationListItems+ , v1MutatingWebhookConfigurationListKind = Nothing+ , v1MutatingWebhookConfigurationListMetadata = Nothing+ }++-- ** V1NFSVolumeSource+-- | V1NFSVolumeSource+-- Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.+data V1NFSVolumeSource = V1NFSVolumeSource+ { v1NFSVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs+ , v1NFSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs+ , v1NFSVolumeSourceServer :: !(Text) -- ^ /Required/ "server" - server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NFSVolumeSource+instance A.FromJSON V1NFSVolumeSource where+ parseJSON = A.withObject "V1NFSVolumeSource" $ \o ->+ V1NFSVolumeSource+ <$> (o .: "path")+ <*> (o .:? "readOnly")+ <*> (o .: "server")++-- | ToJSON V1NFSVolumeSource+instance A.ToJSON V1NFSVolumeSource where+ toJSON V1NFSVolumeSource {..} =+ _omitNulls+ [ "path" .= v1NFSVolumeSourcePath+ , "readOnly" .= v1NFSVolumeSourceReadOnly+ , "server" .= v1NFSVolumeSourceServer+ ]+++-- | Construct a value of type 'V1NFSVolumeSource' (by applying it's required fields, if any)+mkV1NFSVolumeSource+ :: Text -- ^ 'v1NFSVolumeSourcePath': path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs+ -> Text -- ^ 'v1NFSVolumeSourceServer': server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs+ -> V1NFSVolumeSource+mkV1NFSVolumeSource v1NFSVolumeSourcePath v1NFSVolumeSourceServer =+ V1NFSVolumeSource+ { v1NFSVolumeSourcePath+ , v1NFSVolumeSourceReadOnly = Nothing+ , v1NFSVolumeSourceServer+ }++-- ** V1NamedRuleWithOperations+-- | V1NamedRuleWithOperations+-- NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.+data V1NamedRuleWithOperations = V1NamedRuleWithOperations+ { v1NamedRuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.+ , v1NamedRuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.+ , v1NamedRuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - 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.+ , v1NamedRuleWithOperationsResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.+ , v1NamedRuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - 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.+ , v1NamedRuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - 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 \"*\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NamedRuleWithOperations+instance A.FromJSON V1NamedRuleWithOperations where+ parseJSON = A.withObject "V1NamedRuleWithOperations" $ \o ->+ V1NamedRuleWithOperations+ <$> (o .:? "apiGroups")+ <*> (o .:? "apiVersions")+ <*> (o .:? "operations")+ <*> (o .:? "resourceNames")+ <*> (o .:? "resources")+ <*> (o .:? "scope")++-- | ToJSON V1NamedRuleWithOperations+instance A.ToJSON V1NamedRuleWithOperations where+ toJSON V1NamedRuleWithOperations {..} =+ _omitNulls+ [ "apiGroups" .= v1NamedRuleWithOperationsApiGroups+ , "apiVersions" .= v1NamedRuleWithOperationsApiVersions+ , "operations" .= v1NamedRuleWithOperationsOperations+ , "resourceNames" .= v1NamedRuleWithOperationsResourceNames+ , "resources" .= v1NamedRuleWithOperationsResources+ , "scope" .= v1NamedRuleWithOperationsScope+ ]+++-- | Construct a value of type 'V1NamedRuleWithOperations' (by applying it's required fields, if any)+mkV1NamedRuleWithOperations+ :: V1NamedRuleWithOperations+mkV1NamedRuleWithOperations =+ V1NamedRuleWithOperations+ { v1NamedRuleWithOperationsApiGroups = Nothing+ , v1NamedRuleWithOperationsApiVersions = Nothing+ , v1NamedRuleWithOperationsOperations = Nothing+ , v1NamedRuleWithOperationsResourceNames = Nothing+ , v1NamedRuleWithOperationsResources = Nothing+ , v1NamedRuleWithOperationsScope = Nothing+ }++-- ** V1Namespace+-- | V1Namespace+-- Namespace provides a scope for Names. Use of multiple namespaces is optional.+data V1Namespace = V1Namespace+ { v1NamespaceApiVersion :: !(Maybe Text) -- ^ "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+ , v1NamespaceKind :: !(Maybe Text) -- ^ "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+ , v1NamespaceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1NamespaceSpec :: !(Maybe V1NamespaceSpec) -- ^ "spec"+ , v1NamespaceStatus :: !(Maybe V1NamespaceStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Namespace+instance A.FromJSON V1Namespace where+ parseJSON = A.withObject "V1Namespace" $ \o ->+ V1Namespace+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1Namespace+instance A.ToJSON V1Namespace where+ toJSON V1Namespace {..} =+ _omitNulls+ [ "apiVersion" .= v1NamespaceApiVersion+ , "kind" .= v1NamespaceKind+ , "metadata" .= v1NamespaceMetadata+ , "spec" .= v1NamespaceSpec+ , "status" .= v1NamespaceStatus+ ]+++-- | Construct a value of type 'V1Namespace' (by applying it's required fields, if any)+mkV1Namespace+ :: V1Namespace+mkV1Namespace =+ V1Namespace+ { v1NamespaceApiVersion = Nothing+ , v1NamespaceKind = Nothing+ , v1NamespaceMetadata = Nothing+ , v1NamespaceSpec = Nothing+ , v1NamespaceStatus = Nothing+ }++-- ** V1NamespaceCondition+-- | V1NamespaceCondition+-- NamespaceCondition contains details about state of namespace.+data V1NamespaceCondition = V1NamespaceCondition+ { v1NamespaceConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.+ , v1NamespaceConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.+ , v1NamespaceConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition's last transition.+ , v1NamespaceConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1NamespaceConditionType :: !(Text) -- ^ /Required/ "type" - Type of namespace controller condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NamespaceCondition+instance A.FromJSON V1NamespaceCondition where+ parseJSON = A.withObject "V1NamespaceCondition" $ \o ->+ V1NamespaceCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1NamespaceCondition+instance A.ToJSON V1NamespaceCondition where+ toJSON V1NamespaceCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1NamespaceConditionLastTransitionTime+ , "message" .= v1NamespaceConditionMessage+ , "reason" .= v1NamespaceConditionReason+ , "status" .= v1NamespaceConditionStatus+ , "type" .= v1NamespaceConditionType+ ]+++-- | Construct a value of type 'V1NamespaceCondition' (by applying it's required fields, if any)+mkV1NamespaceCondition+ :: Text -- ^ 'v1NamespaceConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1NamespaceConditionType': Type of namespace controller condition.+ -> V1NamespaceCondition+mkV1NamespaceCondition v1NamespaceConditionStatus v1NamespaceConditionType =+ V1NamespaceCondition+ { v1NamespaceConditionLastTransitionTime = Nothing+ , v1NamespaceConditionMessage = Nothing+ , v1NamespaceConditionReason = Nothing+ , v1NamespaceConditionStatus+ , v1NamespaceConditionType+ }++-- ** V1NamespaceList+-- | V1NamespaceList+-- NamespaceList is a list of Namespaces.+data V1NamespaceList = V1NamespaceList+ { v1NamespaceListApiVersion :: !(Maybe Text) -- ^ "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+ , v1NamespaceListItems :: !([V1Namespace]) -- ^ /Required/ "items" - Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/+ , v1NamespaceListKind :: !(Maybe Text) -- ^ "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+ , v1NamespaceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NamespaceList+instance A.FromJSON V1NamespaceList where+ parseJSON = A.withObject "V1NamespaceList" $ \o ->+ V1NamespaceList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1NamespaceList+instance A.ToJSON V1NamespaceList where+ toJSON V1NamespaceList {..} =+ _omitNulls+ [ "apiVersion" .= v1NamespaceListApiVersion+ , "items" .= v1NamespaceListItems+ , "kind" .= v1NamespaceListKind+ , "metadata" .= v1NamespaceListMetadata+ ]+++-- | Construct a value of type 'V1NamespaceList' (by applying it's required fields, if any)+mkV1NamespaceList+ :: [V1Namespace] -- ^ 'v1NamespaceListItems': Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/+ -> V1NamespaceList+mkV1NamespaceList v1NamespaceListItems =+ V1NamespaceList+ { v1NamespaceListApiVersion = Nothing+ , v1NamespaceListItems+ , v1NamespaceListKind = Nothing+ , v1NamespaceListMetadata = Nothing+ }++-- ** V1NamespaceSpec+-- | V1NamespaceSpec+-- NamespaceSpec describes the attributes on a Namespace.+data V1NamespaceSpec = V1NamespaceSpec+ { v1NamespaceSpecFinalizers :: !(Maybe [Text]) -- ^ "finalizers" - Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NamespaceSpec+instance A.FromJSON V1NamespaceSpec where+ parseJSON = A.withObject "V1NamespaceSpec" $ \o ->+ V1NamespaceSpec+ <$> (o .:? "finalizers")++-- | ToJSON V1NamespaceSpec+instance A.ToJSON V1NamespaceSpec where+ toJSON V1NamespaceSpec {..} =+ _omitNulls+ [ "finalizers" .= v1NamespaceSpecFinalizers+ ]+++-- | Construct a value of type 'V1NamespaceSpec' (by applying it's required fields, if any)+mkV1NamespaceSpec+ :: V1NamespaceSpec+mkV1NamespaceSpec =+ V1NamespaceSpec+ { v1NamespaceSpecFinalizers = Nothing+ }++-- ** V1NamespaceStatus+-- | V1NamespaceStatus+-- NamespaceStatus is information about the current status of a Namespace.+data V1NamespaceStatus = V1NamespaceStatus+ { v1NamespaceStatusConditions :: !(Maybe [V1NamespaceCondition]) -- ^ "conditions" - Represents the latest available observations of a namespace's current state.+ , v1NamespaceStatusPhase :: !(Maybe Text) -- ^ "phase" - Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NamespaceStatus+instance A.FromJSON V1NamespaceStatus where+ parseJSON = A.withObject "V1NamespaceStatus" $ \o ->+ V1NamespaceStatus+ <$> (o .:? "conditions")+ <*> (o .:? "phase")++-- | ToJSON V1NamespaceStatus+instance A.ToJSON V1NamespaceStatus where+ toJSON V1NamespaceStatus {..} =+ _omitNulls+ [ "conditions" .= v1NamespaceStatusConditions+ , "phase" .= v1NamespaceStatusPhase+ ]+++-- | Construct a value of type 'V1NamespaceStatus' (by applying it's required fields, if any)+mkV1NamespaceStatus+ :: V1NamespaceStatus+mkV1NamespaceStatus =+ V1NamespaceStatus+ { v1NamespaceStatusConditions = Nothing+ , v1NamespaceStatusPhase = Nothing+ }++-- ** V1NetworkDeviceData+-- | V1NetworkDeviceData+-- 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.+data V1NetworkDeviceData = V1NetworkDeviceData+ { v1NetworkDeviceDataHardwareAddress :: !(Maybe Text) -- ^ "hardwareAddress" - HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. Must not be longer than 128 characters.+ , v1NetworkDeviceDataInterfaceName :: !(Maybe Text) -- ^ "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.+ , v1NetworkDeviceDataIps :: !(Maybe [Text]) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NetworkDeviceData+instance A.FromJSON V1NetworkDeviceData where+ parseJSON = A.withObject "V1NetworkDeviceData" $ \o ->+ V1NetworkDeviceData+ <$> (o .:? "hardwareAddress")+ <*> (o .:? "interfaceName")+ <*> (o .:? "ips")++-- | ToJSON V1NetworkDeviceData+instance A.ToJSON V1NetworkDeviceData where+ toJSON V1NetworkDeviceData {..} =+ _omitNulls+ [ "hardwareAddress" .= v1NetworkDeviceDataHardwareAddress+ , "interfaceName" .= v1NetworkDeviceDataInterfaceName+ , "ips" .= v1NetworkDeviceDataIps+ ]+++-- | Construct a value of type 'V1NetworkDeviceData' (by applying it's required fields, if any)+mkV1NetworkDeviceData+ :: V1NetworkDeviceData+mkV1NetworkDeviceData =+ V1NetworkDeviceData+ { v1NetworkDeviceDataHardwareAddress = Nothing+ , v1NetworkDeviceDataInterfaceName = Nothing+ , v1NetworkDeviceDataIps = Nothing+ }++-- ** V1NetworkPolicy+-- | V1NetworkPolicy+-- NetworkPolicy describes what network traffic is allowed for a set of Pods+data V1NetworkPolicy = V1NetworkPolicy+ { v1NetworkPolicyApiVersion :: !(Maybe Text) -- ^ "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+ , v1NetworkPolicyKind :: !(Maybe Text) -- ^ "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+ , v1NetworkPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1NetworkPolicySpec :: !(Maybe V1NetworkPolicySpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NetworkPolicy+instance A.FromJSON V1NetworkPolicy where+ parseJSON = A.withObject "V1NetworkPolicy" $ \o ->+ V1NetworkPolicy+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1NetworkPolicy+instance A.ToJSON V1NetworkPolicy where+ toJSON V1NetworkPolicy {..} =+ _omitNulls+ [ "apiVersion" .= v1NetworkPolicyApiVersion+ , "kind" .= v1NetworkPolicyKind+ , "metadata" .= v1NetworkPolicyMetadata+ , "spec" .= v1NetworkPolicySpec+ ]+++-- | Construct a value of type 'V1NetworkPolicy' (by applying it's required fields, if any)+mkV1NetworkPolicy+ :: V1NetworkPolicy+mkV1NetworkPolicy =+ V1NetworkPolicy+ { v1NetworkPolicyApiVersion = Nothing+ , v1NetworkPolicyKind = Nothing+ , v1NetworkPolicyMetadata = Nothing+ , v1NetworkPolicySpec = Nothing+ }++-- ** V1NetworkPolicyEgressRule+-- | V1NetworkPolicyEgressRule+-- NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8+data V1NetworkPolicyEgressRule = V1NetworkPolicyEgressRule+ { v1NetworkPolicyEgressRulePorts :: !(Maybe [V1NetworkPolicyPort]) -- ^ "ports" - ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.+ , v1NetworkPolicyEgressRuleTo :: !(Maybe [V1NetworkPolicyPeer]) -- ^ "to" - to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NetworkPolicyEgressRule+instance A.FromJSON V1NetworkPolicyEgressRule where+ parseJSON = A.withObject "V1NetworkPolicyEgressRule" $ \o ->+ V1NetworkPolicyEgressRule+ <$> (o .:? "ports")+ <*> (o .:? "to")++-- | ToJSON V1NetworkPolicyEgressRule+instance A.ToJSON V1NetworkPolicyEgressRule where+ toJSON V1NetworkPolicyEgressRule {..} =+ _omitNulls+ [ "ports" .= v1NetworkPolicyEgressRulePorts+ , "to" .= v1NetworkPolicyEgressRuleTo+ ]+++-- | Construct a value of type 'V1NetworkPolicyEgressRule' (by applying it's required fields, if any)+mkV1NetworkPolicyEgressRule+ :: V1NetworkPolicyEgressRule+mkV1NetworkPolicyEgressRule =+ V1NetworkPolicyEgressRule+ { v1NetworkPolicyEgressRulePorts = Nothing+ , v1NetworkPolicyEgressRuleTo = Nothing+ }++-- ** V1NetworkPolicyIngressRule+-- | V1NetworkPolicyIngressRule+-- NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.+data V1NetworkPolicyIngressRule = V1NetworkPolicyIngressRule+ { v1NetworkPolicyIngressRuleFrom :: !(Maybe [V1NetworkPolicyPeer]) -- ^ "from" - from is a list of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.+ , v1NetworkPolicyIngressRulePorts :: !(Maybe [V1NetworkPolicyPort]) -- ^ "ports" - ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NetworkPolicyIngressRule+instance A.FromJSON V1NetworkPolicyIngressRule where+ parseJSON = A.withObject "V1NetworkPolicyIngressRule" $ \o ->+ V1NetworkPolicyIngressRule+ <$> (o .:? "from")+ <*> (o .:? "ports")++-- | ToJSON V1NetworkPolicyIngressRule+instance A.ToJSON V1NetworkPolicyIngressRule where+ toJSON V1NetworkPolicyIngressRule {..} =+ _omitNulls+ [ "from" .= v1NetworkPolicyIngressRuleFrom+ , "ports" .= v1NetworkPolicyIngressRulePorts+ ]+++-- | Construct a value of type 'V1NetworkPolicyIngressRule' (by applying it's required fields, if any)+mkV1NetworkPolicyIngressRule+ :: V1NetworkPolicyIngressRule+mkV1NetworkPolicyIngressRule =+ V1NetworkPolicyIngressRule+ { v1NetworkPolicyIngressRuleFrom = Nothing+ , v1NetworkPolicyIngressRulePorts = Nothing+ }++-- ** V1NetworkPolicyList+-- | V1NetworkPolicyList+-- NetworkPolicyList is a list of NetworkPolicy objects.+data V1NetworkPolicyList = V1NetworkPolicyList+ { v1NetworkPolicyListApiVersion :: !(Maybe Text) -- ^ "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+ , v1NetworkPolicyListItems :: !([V1NetworkPolicy]) -- ^ /Required/ "items" - items is a list of schema objects.+ , v1NetworkPolicyListKind :: !(Maybe Text) -- ^ "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+ , v1NetworkPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NetworkPolicyList+instance A.FromJSON V1NetworkPolicyList where+ parseJSON = A.withObject "V1NetworkPolicyList" $ \o ->+ V1NetworkPolicyList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1NetworkPolicyList+instance A.ToJSON V1NetworkPolicyList where+ toJSON V1NetworkPolicyList {..} =+ _omitNulls+ [ "apiVersion" .= v1NetworkPolicyListApiVersion+ , "items" .= v1NetworkPolicyListItems+ , "kind" .= v1NetworkPolicyListKind+ , "metadata" .= v1NetworkPolicyListMetadata+ ]+++-- | Construct a value of type 'V1NetworkPolicyList' (by applying it's required fields, if any)+mkV1NetworkPolicyList+ :: [V1NetworkPolicy] -- ^ 'v1NetworkPolicyListItems': items is a list of schema objects.+ -> V1NetworkPolicyList+mkV1NetworkPolicyList v1NetworkPolicyListItems =+ V1NetworkPolicyList+ { v1NetworkPolicyListApiVersion = Nothing+ , v1NetworkPolicyListItems+ , v1NetworkPolicyListKind = Nothing+ , v1NetworkPolicyListMetadata = Nothing+ }++-- ** V1NetworkPolicyPeer+-- | V1NetworkPolicyPeer+-- NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed+data V1NetworkPolicyPeer = V1NetworkPolicyPeer+ { v1NetworkPolicyPeerIpBlock :: !(Maybe V1IPBlock) -- ^ "ipBlock"+ , v1NetworkPolicyPeerNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"+ , v1NetworkPolicyPeerPodSelector :: !(Maybe V1LabelSelector) -- ^ "podSelector"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NetworkPolicyPeer+instance A.FromJSON V1NetworkPolicyPeer where+ parseJSON = A.withObject "V1NetworkPolicyPeer" $ \o ->+ V1NetworkPolicyPeer+ <$> (o .:? "ipBlock")+ <*> (o .:? "namespaceSelector")+ <*> (o .:? "podSelector")++-- | ToJSON V1NetworkPolicyPeer+instance A.ToJSON V1NetworkPolicyPeer where+ toJSON V1NetworkPolicyPeer {..} =+ _omitNulls+ [ "ipBlock" .= v1NetworkPolicyPeerIpBlock+ , "namespaceSelector" .= v1NetworkPolicyPeerNamespaceSelector+ , "podSelector" .= v1NetworkPolicyPeerPodSelector+ ]+++-- | Construct a value of type 'V1NetworkPolicyPeer' (by applying it's required fields, if any)+mkV1NetworkPolicyPeer+ :: V1NetworkPolicyPeer+mkV1NetworkPolicyPeer =+ V1NetworkPolicyPeer+ { v1NetworkPolicyPeerIpBlock = Nothing+ , v1NetworkPolicyPeerNamespaceSelector = Nothing+ , v1NetworkPolicyPeerPodSelector = Nothing+ }++-- ** V1NetworkPolicyPort+-- | V1NetworkPolicyPort+-- NetworkPolicyPort describes a port to allow traffic on+data V1NetworkPolicyPort = V1NetworkPolicyPort+ { v1NetworkPolicyPortEndPort :: !(Maybe Int) -- ^ "endPort" - endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.+ , v1NetworkPolicyPortPort :: !(Maybe IntOrString) -- ^ "port"+ , v1NetworkPolicyPortProtocol :: !(Maybe Text) -- ^ "protocol" - protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NetworkPolicyPort+instance A.FromJSON V1NetworkPolicyPort where+ parseJSON = A.withObject "V1NetworkPolicyPort" $ \o ->+ V1NetworkPolicyPort+ <$> (o .:? "endPort")+ <*> (o .:? "port")+ <*> (o .:? "protocol")++-- | ToJSON V1NetworkPolicyPort+instance A.ToJSON V1NetworkPolicyPort where+ toJSON V1NetworkPolicyPort {..} =+ _omitNulls+ [ "endPort" .= v1NetworkPolicyPortEndPort+ , "port" .= v1NetworkPolicyPortPort+ , "protocol" .= v1NetworkPolicyPortProtocol+ ]+++-- | Construct a value of type 'V1NetworkPolicyPort' (by applying it's required fields, if any)+mkV1NetworkPolicyPort+ :: V1NetworkPolicyPort+mkV1NetworkPolicyPort =+ V1NetworkPolicyPort+ { v1NetworkPolicyPortEndPort = Nothing+ , v1NetworkPolicyPortPort = Nothing+ , v1NetworkPolicyPortProtocol = Nothing+ }++-- ** V1NetworkPolicySpec+-- | V1NetworkPolicySpec+-- NetworkPolicySpec provides the specification of a NetworkPolicy+data V1NetworkPolicySpec = V1NetworkPolicySpec+ { v1NetworkPolicySpecEgress :: !(Maybe [V1NetworkPolicyEgressRule]) -- ^ "egress" - egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8+ , v1NetworkPolicySpecIngress :: !(Maybe [V1NetworkPolicyIngressRule]) -- ^ "ingress" - ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)+ , v1NetworkPolicySpecPodSelector :: !(Maybe V1LabelSelector) -- ^ "podSelector"+ , v1NetworkPolicySpecPolicyTypes :: !(Maybe [Text]) -- ^ "policyTypes" - policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NetworkPolicySpec+instance A.FromJSON V1NetworkPolicySpec where+ parseJSON = A.withObject "V1NetworkPolicySpec" $ \o ->+ V1NetworkPolicySpec+ <$> (o .:? "egress")+ <*> (o .:? "ingress")+ <*> (o .:? "podSelector")+ <*> (o .:? "policyTypes")++-- | ToJSON V1NetworkPolicySpec+instance A.ToJSON V1NetworkPolicySpec where+ toJSON V1NetworkPolicySpec {..} =+ _omitNulls+ [ "egress" .= v1NetworkPolicySpecEgress+ , "ingress" .= v1NetworkPolicySpecIngress+ , "podSelector" .= v1NetworkPolicySpecPodSelector+ , "policyTypes" .= v1NetworkPolicySpecPolicyTypes+ ]+++-- | Construct a value of type 'V1NetworkPolicySpec' (by applying it's required fields, if any)+mkV1NetworkPolicySpec+ :: V1NetworkPolicySpec+mkV1NetworkPolicySpec =+ V1NetworkPolicySpec+ { v1NetworkPolicySpecEgress = Nothing+ , v1NetworkPolicySpecIngress = Nothing+ , v1NetworkPolicySpecPodSelector = Nothing+ , v1NetworkPolicySpecPolicyTypes = Nothing+ }++-- ** V1Node+-- | V1Node+-- Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).+data V1Node = V1Node+ { v1NodeApiVersion :: !(Maybe Text) -- ^ "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+ , v1NodeKind :: !(Maybe Text) -- ^ "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+ , v1NodeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1NodeSpec :: !(Maybe V1NodeSpec) -- ^ "spec"+ , v1NodeStatus :: !(Maybe V1NodeStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Node+instance A.FromJSON V1Node where+ parseJSON = A.withObject "V1Node" $ \o ->+ V1Node+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1Node+instance A.ToJSON V1Node where+ toJSON V1Node {..} =+ _omitNulls+ [ "apiVersion" .= v1NodeApiVersion+ , "kind" .= v1NodeKind+ , "metadata" .= v1NodeMetadata+ , "spec" .= v1NodeSpec+ , "status" .= v1NodeStatus+ ]+++-- | Construct a value of type 'V1Node' (by applying it's required fields, if any)+mkV1Node+ :: V1Node+mkV1Node =+ V1Node+ { v1NodeApiVersion = Nothing+ , v1NodeKind = Nothing+ , v1NodeMetadata = Nothing+ , v1NodeSpec = Nothing+ , v1NodeStatus = Nothing+ }++-- ** V1NodeAddress+-- | V1NodeAddress+-- NodeAddress contains information for the node's address.+data V1NodeAddress = V1NodeAddress+ { v1NodeAddressAddress :: !(Text) -- ^ /Required/ "address" - The node address.+ , v1NodeAddressType :: !(Text) -- ^ /Required/ "type" - Node address type, one of Hostname, ExternalIP or InternalIP.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeAddress+instance A.FromJSON V1NodeAddress where+ parseJSON = A.withObject "V1NodeAddress" $ \o ->+ V1NodeAddress+ <$> (o .: "address")+ <*> (o .: "type")++-- | ToJSON V1NodeAddress+instance A.ToJSON V1NodeAddress where+ toJSON V1NodeAddress {..} =+ _omitNulls+ [ "address" .= v1NodeAddressAddress+ , "type" .= v1NodeAddressType+ ]+++-- | Construct a value of type 'V1NodeAddress' (by applying it's required fields, if any)+mkV1NodeAddress+ :: Text -- ^ 'v1NodeAddressAddress': The node address.+ -> Text -- ^ 'v1NodeAddressType': Node address type, one of Hostname, ExternalIP or InternalIP.+ -> V1NodeAddress+mkV1NodeAddress v1NodeAddressAddress v1NodeAddressType =+ V1NodeAddress+ { v1NodeAddressAddress+ , v1NodeAddressType+ }++-- ** V1NodeAffinity+-- | V1NodeAffinity+-- Node affinity is a group of node affinity scheduling rules.+data V1NodeAffinity = V1NodeAffinity+ { v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PreferredSchedulingTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.+ , v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe V1NodeSelector) -- ^ "requiredDuringSchedulingIgnoredDuringExecution"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeAffinity+instance A.FromJSON V1NodeAffinity where+ parseJSON = A.withObject "V1NodeAffinity" $ \o ->+ V1NodeAffinity+ <$> (o .:? "preferredDuringSchedulingIgnoredDuringExecution")+ <*> (o .:? "requiredDuringSchedulingIgnoredDuringExecution")++-- | ToJSON V1NodeAffinity+instance A.ToJSON V1NodeAffinity where+ toJSON V1NodeAffinity {..} =+ _omitNulls+ [ "preferredDuringSchedulingIgnoredDuringExecution" .= v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution+ , "requiredDuringSchedulingIgnoredDuringExecution" .= v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution+ ]+++-- | Construct a value of type 'V1NodeAffinity' (by applying it's required fields, if any)+mkV1NodeAffinity+ :: V1NodeAffinity+mkV1NodeAffinity =+ V1NodeAffinity+ { v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution = Nothing+ , v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution = Nothing+ }++-- ** V1NodeCondition+-- | V1NodeCondition+-- NodeCondition contains condition information for a node.+data V1NodeCondition = V1NodeCondition+ { v1NodeConditionLastHeartbeatTime :: !(Maybe DateTime) -- ^ "lastHeartbeatTime" - Last time we got an update on a given condition.+ , v1NodeConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transit from one status to another.+ , v1NodeConditionMessage :: !(Maybe Text) -- ^ "message" - Human readable message indicating details about last transition.+ , v1NodeConditionReason :: !(Maybe Text) -- ^ "reason" - (brief) reason for the condition's last transition.+ , v1NodeConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1NodeConditionType :: !(Text) -- ^ /Required/ "type" - Type of node condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeCondition+instance A.FromJSON V1NodeCondition where+ parseJSON = A.withObject "V1NodeCondition" $ \o ->+ V1NodeCondition+ <$> (o .:? "lastHeartbeatTime")+ <*> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1NodeCondition+instance A.ToJSON V1NodeCondition where+ toJSON V1NodeCondition {..} =+ _omitNulls+ [ "lastHeartbeatTime" .= v1NodeConditionLastHeartbeatTime+ , "lastTransitionTime" .= v1NodeConditionLastTransitionTime+ , "message" .= v1NodeConditionMessage+ , "reason" .= v1NodeConditionReason+ , "status" .= v1NodeConditionStatus+ , "type" .= v1NodeConditionType+ ]+++-- | Construct a value of type 'V1NodeCondition' (by applying it's required fields, if any)+mkV1NodeCondition+ :: Text -- ^ 'v1NodeConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1NodeConditionType': Type of node condition.+ -> V1NodeCondition+mkV1NodeCondition v1NodeConditionStatus v1NodeConditionType =+ V1NodeCondition+ { v1NodeConditionLastHeartbeatTime = Nothing+ , v1NodeConditionLastTransitionTime = Nothing+ , v1NodeConditionMessage = Nothing+ , v1NodeConditionReason = Nothing+ , v1NodeConditionStatus+ , v1NodeConditionType+ }++-- ** V1NodeConfigSource+-- | V1NodeConfigSource+-- NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22+data V1NodeConfigSource = V1NodeConfigSource+ { v1NodeConfigSourceConfigMap :: !(Maybe V1ConfigMapNodeConfigSource) -- ^ "configMap"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeConfigSource+instance A.FromJSON V1NodeConfigSource where+ parseJSON = A.withObject "V1NodeConfigSource" $ \o ->+ V1NodeConfigSource+ <$> (o .:? "configMap")++-- | ToJSON V1NodeConfigSource+instance A.ToJSON V1NodeConfigSource where+ toJSON V1NodeConfigSource {..} =+ _omitNulls+ [ "configMap" .= v1NodeConfigSourceConfigMap+ ]+++-- | Construct a value of type 'V1NodeConfigSource' (by applying it's required fields, if any)+mkV1NodeConfigSource+ :: V1NodeConfigSource+mkV1NodeConfigSource =+ V1NodeConfigSource+ { v1NodeConfigSourceConfigMap = Nothing+ }++-- ** V1NodeConfigStatus+-- | V1NodeConfigStatus+-- NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.+data V1NodeConfigStatus = V1NodeConfigStatus+ { v1NodeConfigStatusActive :: !(Maybe V1NodeConfigSource) -- ^ "active"+ , v1NodeConfigStatusAssigned :: !(Maybe V1NodeConfigSource) -- ^ "assigned"+ , v1NodeConfigStatusError :: !(Maybe Text) -- ^ "error" - Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.+ , v1NodeConfigStatusLastKnownGood :: !(Maybe V1NodeConfigSource) -- ^ "lastKnownGood"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeConfigStatus+instance A.FromJSON V1NodeConfigStatus where+ parseJSON = A.withObject "V1NodeConfigStatus" $ \o ->+ V1NodeConfigStatus+ <$> (o .:? "active")+ <*> (o .:? "assigned")+ <*> (o .:? "error")+ <*> (o .:? "lastKnownGood")++-- | ToJSON V1NodeConfigStatus+instance A.ToJSON V1NodeConfigStatus where+ toJSON V1NodeConfigStatus {..} =+ _omitNulls+ [ "active" .= v1NodeConfigStatusActive+ , "assigned" .= v1NodeConfigStatusAssigned+ , "error" .= v1NodeConfigStatusError+ , "lastKnownGood" .= v1NodeConfigStatusLastKnownGood+ ]+++-- | Construct a value of type 'V1NodeConfigStatus' (by applying it's required fields, if any)+mkV1NodeConfigStatus+ :: V1NodeConfigStatus+mkV1NodeConfigStatus =+ V1NodeConfigStatus+ { v1NodeConfigStatusActive = Nothing+ , v1NodeConfigStatusAssigned = Nothing+ , v1NodeConfigStatusError = Nothing+ , v1NodeConfigStatusLastKnownGood = Nothing+ }++-- ** V1NodeDaemonEndpoints+-- | V1NodeDaemonEndpoints+-- NodeDaemonEndpoints lists ports opened by daemons running on the Node.+data V1NodeDaemonEndpoints = V1NodeDaemonEndpoints+ { v1NodeDaemonEndpointsKubeletEndpoint :: !(Maybe V1DaemonEndpoint) -- ^ "kubeletEndpoint"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeDaemonEndpoints+instance A.FromJSON V1NodeDaemonEndpoints where+ parseJSON = A.withObject "V1NodeDaemonEndpoints" $ \o ->+ V1NodeDaemonEndpoints+ <$> (o .:? "kubeletEndpoint")++-- | ToJSON V1NodeDaemonEndpoints+instance A.ToJSON V1NodeDaemonEndpoints where+ toJSON V1NodeDaemonEndpoints {..} =+ _omitNulls+ [ "kubeletEndpoint" .= v1NodeDaemonEndpointsKubeletEndpoint+ ]+++-- | Construct a value of type 'V1NodeDaemonEndpoints' (by applying it's required fields, if any)+mkV1NodeDaemonEndpoints+ :: V1NodeDaemonEndpoints+mkV1NodeDaemonEndpoints =+ V1NodeDaemonEndpoints+ { v1NodeDaemonEndpointsKubeletEndpoint = Nothing+ }++-- ** V1NodeFeatures+-- | V1NodeFeatures+-- NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.+data V1NodeFeatures = V1NodeFeatures+ { v1NodeFeaturesSupplementalGroupsPolicy :: !(Maybe Bool) -- ^ "supplementalGroupsPolicy" - SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeFeatures+instance A.FromJSON V1NodeFeatures where+ parseJSON = A.withObject "V1NodeFeatures" $ \o ->+ V1NodeFeatures+ <$> (o .:? "supplementalGroupsPolicy")++-- | ToJSON V1NodeFeatures+instance A.ToJSON V1NodeFeatures where+ toJSON V1NodeFeatures {..} =+ _omitNulls+ [ "supplementalGroupsPolicy" .= v1NodeFeaturesSupplementalGroupsPolicy+ ]+++-- | Construct a value of type 'V1NodeFeatures' (by applying it's required fields, if any)+mkV1NodeFeatures+ :: V1NodeFeatures+mkV1NodeFeatures =+ V1NodeFeatures+ { v1NodeFeaturesSupplementalGroupsPolicy = Nothing+ }++-- ** V1NodeList+-- | V1NodeList+-- NodeList is the whole list of all Nodes which have been registered with master.+data V1NodeList = V1NodeList+ { v1NodeListApiVersion :: !(Maybe Text) -- ^ "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+ , v1NodeListItems :: !([V1Node]) -- ^ /Required/ "items" - List of nodes+ , v1NodeListKind :: !(Maybe Text) -- ^ "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+ , v1NodeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeList+instance A.FromJSON V1NodeList where+ parseJSON = A.withObject "V1NodeList" $ \o ->+ V1NodeList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1NodeList+instance A.ToJSON V1NodeList where+ toJSON V1NodeList {..} =+ _omitNulls+ [ "apiVersion" .= v1NodeListApiVersion+ , "items" .= v1NodeListItems+ , "kind" .= v1NodeListKind+ , "metadata" .= v1NodeListMetadata+ ]+++-- | Construct a value of type 'V1NodeList' (by applying it's required fields, if any)+mkV1NodeList+ :: [V1Node] -- ^ 'v1NodeListItems': List of nodes+ -> V1NodeList+mkV1NodeList v1NodeListItems =+ V1NodeList+ { v1NodeListApiVersion = Nothing+ , v1NodeListItems+ , v1NodeListKind = Nothing+ , v1NodeListMetadata = Nothing+ }++-- ** V1NodeRuntimeHandler+-- | V1NodeRuntimeHandler+-- NodeRuntimeHandler is a set of runtime handler information.+data V1NodeRuntimeHandler = V1NodeRuntimeHandler+ { v1NodeRuntimeHandlerFeatures :: !(Maybe V1NodeRuntimeHandlerFeatures) -- ^ "features"+ , v1NodeRuntimeHandlerName :: !(Maybe Text) -- ^ "name" - Runtime handler name. Empty for the default runtime handler.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeRuntimeHandler+instance A.FromJSON V1NodeRuntimeHandler where+ parseJSON = A.withObject "V1NodeRuntimeHandler" $ \o ->+ V1NodeRuntimeHandler+ <$> (o .:? "features")+ <*> (o .:? "name")++-- | ToJSON V1NodeRuntimeHandler+instance A.ToJSON V1NodeRuntimeHandler where+ toJSON V1NodeRuntimeHandler {..} =+ _omitNulls+ [ "features" .= v1NodeRuntimeHandlerFeatures+ , "name" .= v1NodeRuntimeHandlerName+ ]+++-- | Construct a value of type 'V1NodeRuntimeHandler' (by applying it's required fields, if any)+mkV1NodeRuntimeHandler+ :: V1NodeRuntimeHandler+mkV1NodeRuntimeHandler =+ V1NodeRuntimeHandler+ { v1NodeRuntimeHandlerFeatures = Nothing+ , v1NodeRuntimeHandlerName = Nothing+ }++-- ** V1NodeRuntimeHandlerFeatures+-- | V1NodeRuntimeHandlerFeatures+-- NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.+data V1NodeRuntimeHandlerFeatures = V1NodeRuntimeHandlerFeatures+ { v1NodeRuntimeHandlerFeaturesRecursiveReadOnlyMounts :: !(Maybe Bool) -- ^ "recursiveReadOnlyMounts" - RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.+ , v1NodeRuntimeHandlerFeaturesUserNamespaces :: !(Maybe Bool) -- ^ "userNamespaces" - UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeRuntimeHandlerFeatures+instance A.FromJSON V1NodeRuntimeHandlerFeatures where+ parseJSON = A.withObject "V1NodeRuntimeHandlerFeatures" $ \o ->+ V1NodeRuntimeHandlerFeatures+ <$> (o .:? "recursiveReadOnlyMounts")+ <*> (o .:? "userNamespaces")++-- | ToJSON V1NodeRuntimeHandlerFeatures+instance A.ToJSON V1NodeRuntimeHandlerFeatures where+ toJSON V1NodeRuntimeHandlerFeatures {..} =+ _omitNulls+ [ "recursiveReadOnlyMounts" .= v1NodeRuntimeHandlerFeaturesRecursiveReadOnlyMounts+ , "userNamespaces" .= v1NodeRuntimeHandlerFeaturesUserNamespaces+ ]+++-- | Construct a value of type 'V1NodeRuntimeHandlerFeatures' (by applying it's required fields, if any)+mkV1NodeRuntimeHandlerFeatures+ :: V1NodeRuntimeHandlerFeatures+mkV1NodeRuntimeHandlerFeatures =+ V1NodeRuntimeHandlerFeatures+ { v1NodeRuntimeHandlerFeaturesRecursiveReadOnlyMounts = Nothing+ , v1NodeRuntimeHandlerFeaturesUserNamespaces = Nothing+ }++-- ** V1NodeSelector+-- | V1NodeSelector+-- A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.+data V1NodeSelector = V1NodeSelector+ { v1NodeSelectorNodeSelectorTerms :: !([V1NodeSelectorTerm]) -- ^ /Required/ "nodeSelectorTerms" - Required. A list of node selector terms. The terms are ORed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeSelector+instance A.FromJSON V1NodeSelector where+ parseJSON = A.withObject "V1NodeSelector" $ \o ->+ V1NodeSelector+ <$> (o .: "nodeSelectorTerms")++-- | ToJSON V1NodeSelector+instance A.ToJSON V1NodeSelector where+ toJSON V1NodeSelector {..} =+ _omitNulls+ [ "nodeSelectorTerms" .= v1NodeSelectorNodeSelectorTerms+ ]+++-- | Construct a value of type 'V1NodeSelector' (by applying it's required fields, if any)+mkV1NodeSelector+ :: [V1NodeSelectorTerm] -- ^ 'v1NodeSelectorNodeSelectorTerms': Required. A list of node selector terms. The terms are ORed.+ -> V1NodeSelector+mkV1NodeSelector v1NodeSelectorNodeSelectorTerms =+ V1NodeSelector+ { v1NodeSelectorNodeSelectorTerms+ }++-- ** V1NodeSelectorRequirement+-- | V1NodeSelectorRequirement+-- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.+data V1NodeSelectorRequirement = V1NodeSelectorRequirement+ { v1NodeSelectorRequirementKey :: !(Text) -- ^ /Required/ "key" - The label key that the selector applies to.+ , v1NodeSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.+ , v1NodeSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeSelectorRequirement+instance A.FromJSON V1NodeSelectorRequirement where+ parseJSON = A.withObject "V1NodeSelectorRequirement" $ \o ->+ V1NodeSelectorRequirement+ <$> (o .: "key")+ <*> (o .: "operator")+ <*> (o .:? "values")++-- | ToJSON V1NodeSelectorRequirement+instance A.ToJSON V1NodeSelectorRequirement where+ toJSON V1NodeSelectorRequirement {..} =+ _omitNulls+ [ "key" .= v1NodeSelectorRequirementKey+ , "operator" .= v1NodeSelectorRequirementOperator+ , "values" .= v1NodeSelectorRequirementValues+ ]+++-- | Construct a value of type 'V1NodeSelectorRequirement' (by applying it's required fields, if any)+mkV1NodeSelectorRequirement+ :: Text -- ^ 'v1NodeSelectorRequirementKey': The label key that the selector applies to.+ -> Text -- ^ 'v1NodeSelectorRequirementOperator': Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.+ -> V1NodeSelectorRequirement+mkV1NodeSelectorRequirement v1NodeSelectorRequirementKey v1NodeSelectorRequirementOperator =+ V1NodeSelectorRequirement+ { v1NodeSelectorRequirementKey+ , v1NodeSelectorRequirementOperator+ , v1NodeSelectorRequirementValues = Nothing+ }++-- ** V1NodeSelectorTerm+-- | V1NodeSelectorTerm+-- A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.+data V1NodeSelectorTerm = V1NodeSelectorTerm+ { v1NodeSelectorTermMatchExpressions :: !(Maybe [V1NodeSelectorRequirement]) -- ^ "matchExpressions" - A list of node selector requirements by node's labels.+ , v1NodeSelectorTermMatchFields :: !(Maybe [V1NodeSelectorRequirement]) -- ^ "matchFields" - A list of node selector requirements by node's fields.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeSelectorTerm+instance A.FromJSON V1NodeSelectorTerm where+ parseJSON = A.withObject "V1NodeSelectorTerm" $ \o ->+ V1NodeSelectorTerm+ <$> (o .:? "matchExpressions")+ <*> (o .:? "matchFields")++-- | ToJSON V1NodeSelectorTerm+instance A.ToJSON V1NodeSelectorTerm where+ toJSON V1NodeSelectorTerm {..} =+ _omitNulls+ [ "matchExpressions" .= v1NodeSelectorTermMatchExpressions+ , "matchFields" .= v1NodeSelectorTermMatchFields+ ]+++-- | Construct a value of type 'V1NodeSelectorTerm' (by applying it's required fields, if any)+mkV1NodeSelectorTerm+ :: V1NodeSelectorTerm+mkV1NodeSelectorTerm =+ V1NodeSelectorTerm+ { v1NodeSelectorTermMatchExpressions = Nothing+ , v1NodeSelectorTermMatchFields = Nothing+ }++-- ** V1NodeSpec+-- | V1NodeSpec+-- NodeSpec describes the attributes that a node is created with.+data V1NodeSpec = V1NodeSpec+ { v1NodeSpecConfigSource :: !(Maybe V1NodeConfigSource) -- ^ "configSource"+ , v1NodeSpecExternalId :: !(Maybe Text) -- ^ "externalID" - Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966+ , v1NodeSpecPodCidr :: !(Maybe Text) -- ^ "podCIDR" - PodCIDR represents the pod IP range assigned to the node.+ , v1NodeSpecPodCidrs :: !(Maybe [Text]) -- ^ "podCIDRs" - podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.+ , v1NodeSpecProviderId :: !(Maybe Text) -- ^ "providerID" - ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID>+ , v1NodeSpecTaints :: !(Maybe [V1Taint]) -- ^ "taints" - If specified, the node's taints.+ , v1NodeSpecUnschedulable :: !(Maybe Bool) -- ^ "unschedulable" - Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeSpec+instance A.FromJSON V1NodeSpec where+ parseJSON = A.withObject "V1NodeSpec" $ \o ->+ V1NodeSpec+ <$> (o .:? "configSource")+ <*> (o .:? "externalID")+ <*> (o .:? "podCIDR")+ <*> (o .:? "podCIDRs")+ <*> (o .:? "providerID")+ <*> (o .:? "taints")+ <*> (o .:? "unschedulable")++-- | ToJSON V1NodeSpec+instance A.ToJSON V1NodeSpec where+ toJSON V1NodeSpec {..} =+ _omitNulls+ [ "configSource" .= v1NodeSpecConfigSource+ , "externalID" .= v1NodeSpecExternalId+ , "podCIDR" .= v1NodeSpecPodCidr+ , "podCIDRs" .= v1NodeSpecPodCidrs+ , "providerID" .= v1NodeSpecProviderId+ , "taints" .= v1NodeSpecTaints+ , "unschedulable" .= v1NodeSpecUnschedulable+ ]+++-- | Construct a value of type 'V1NodeSpec' (by applying it's required fields, if any)+mkV1NodeSpec+ :: V1NodeSpec+mkV1NodeSpec =+ V1NodeSpec+ { v1NodeSpecConfigSource = Nothing+ , v1NodeSpecExternalId = Nothing+ , v1NodeSpecPodCidr = Nothing+ , v1NodeSpecPodCidrs = Nothing+ , v1NodeSpecProviderId = Nothing+ , v1NodeSpecTaints = Nothing+ , v1NodeSpecUnschedulable = Nothing+ }++-- ** V1NodeStatus+-- | V1NodeStatus+-- NodeStatus is information about the current status of a node.+data V1NodeStatus = V1NodeStatus+ { v1NodeStatusAddresses :: !(Maybe [V1NodeAddress]) -- ^ "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).+ , v1NodeStatusAllocatable :: !(Maybe (Map.Map String Quantity)) -- ^ "allocatable" - Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.+ , v1NodeStatusCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity+ , v1NodeStatusConditions :: !(Maybe [V1NodeCondition]) -- ^ "conditions" - Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition+ , v1NodeStatusConfig :: !(Maybe V1NodeConfigStatus) -- ^ "config"+ , v1NodeStatusDaemonEndpoints :: !(Maybe V1NodeDaemonEndpoints) -- ^ "daemonEndpoints"+ , v1NodeStatusDeclaredFeatures :: !(Maybe [Text]) -- ^ "declaredFeatures" - DeclaredFeatures represents the features related to feature gates that are declared by the node.+ , v1NodeStatusFeatures :: !(Maybe V1NodeFeatures) -- ^ "features"+ , v1NodeStatusImages :: !(Maybe [V1ContainerImage]) -- ^ "images" - List of container images on this node+ , v1NodeStatusNodeInfo :: !(Maybe V1NodeSystemInfo) -- ^ "nodeInfo"+ , v1NodeStatusPhase :: !(Maybe Text) -- ^ "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.+ , v1NodeStatusRuntimeHandlers :: !(Maybe [V1NodeRuntimeHandler]) -- ^ "runtimeHandlers" - The available runtime handlers.+ , v1NodeStatusVolumesAttached :: !(Maybe [V1AttachedVolume]) -- ^ "volumesAttached" - List of volumes that are attached to the node.+ , v1NodeStatusVolumesInUse :: !(Maybe [Text]) -- ^ "volumesInUse" - List of attachable volumes in use (mounted) by the node.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeStatus+instance A.FromJSON V1NodeStatus where+ parseJSON = A.withObject "V1NodeStatus" $ \o ->+ V1NodeStatus+ <$> (o .:? "addresses")+ <*> (o .:? "allocatable")+ <*> (o .:? "capacity")+ <*> (o .:? "conditions")+ <*> (o .:? "config")+ <*> (o .:? "daemonEndpoints")+ <*> (o .:? "declaredFeatures")+ <*> (o .:? "features")+ <*> (o .:? "images")+ <*> (o .:? "nodeInfo")+ <*> (o .:? "phase")+ <*> (o .:? "runtimeHandlers")+ <*> (o .:? "volumesAttached")+ <*> (o .:? "volumesInUse")++-- | ToJSON V1NodeStatus+instance A.ToJSON V1NodeStatus where+ toJSON V1NodeStatus {..} =+ _omitNulls+ [ "addresses" .= v1NodeStatusAddresses+ , "allocatable" .= v1NodeStatusAllocatable+ , "capacity" .= v1NodeStatusCapacity+ , "conditions" .= v1NodeStatusConditions+ , "config" .= v1NodeStatusConfig+ , "daemonEndpoints" .= v1NodeStatusDaemonEndpoints+ , "declaredFeatures" .= v1NodeStatusDeclaredFeatures+ , "features" .= v1NodeStatusFeatures+ , "images" .= v1NodeStatusImages+ , "nodeInfo" .= v1NodeStatusNodeInfo+ , "phase" .= v1NodeStatusPhase+ , "runtimeHandlers" .= v1NodeStatusRuntimeHandlers+ , "volumesAttached" .= v1NodeStatusVolumesAttached+ , "volumesInUse" .= v1NodeStatusVolumesInUse+ ]+++-- | Construct a value of type 'V1NodeStatus' (by applying it's required fields, if any)+mkV1NodeStatus+ :: V1NodeStatus+mkV1NodeStatus =+ V1NodeStatus+ { v1NodeStatusAddresses = Nothing+ , v1NodeStatusAllocatable = Nothing+ , v1NodeStatusCapacity = Nothing+ , v1NodeStatusConditions = Nothing+ , v1NodeStatusConfig = Nothing+ , v1NodeStatusDaemonEndpoints = Nothing+ , v1NodeStatusDeclaredFeatures = Nothing+ , v1NodeStatusFeatures = Nothing+ , v1NodeStatusImages = Nothing+ , v1NodeStatusNodeInfo = Nothing+ , v1NodeStatusPhase = Nothing+ , v1NodeStatusRuntimeHandlers = Nothing+ , v1NodeStatusVolumesAttached = Nothing+ , v1NodeStatusVolumesInUse = Nothing+ }++-- ** V1NodeSwapStatus+-- | V1NodeSwapStatus+-- NodeSwapStatus represents swap memory information.+data V1NodeSwapStatus = V1NodeSwapStatus+ { v1NodeSwapStatusCapacity :: !(Maybe Integer) -- ^ "capacity" - Total amount of swap memory in bytes.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeSwapStatus+instance A.FromJSON V1NodeSwapStatus where+ parseJSON = A.withObject "V1NodeSwapStatus" $ \o ->+ V1NodeSwapStatus+ <$> (o .:? "capacity")++-- | ToJSON V1NodeSwapStatus+instance A.ToJSON V1NodeSwapStatus where+ toJSON V1NodeSwapStatus {..} =+ _omitNulls+ [ "capacity" .= v1NodeSwapStatusCapacity+ ]+++-- | Construct a value of type 'V1NodeSwapStatus' (by applying it's required fields, if any)+mkV1NodeSwapStatus+ :: V1NodeSwapStatus+mkV1NodeSwapStatus =+ V1NodeSwapStatus+ { v1NodeSwapStatusCapacity = Nothing+ }++-- ** V1NodeSystemInfo+-- | V1NodeSystemInfo+-- NodeSystemInfo is a set of ids/uuids to uniquely identify the node.+data V1NodeSystemInfo = V1NodeSystemInfo+ { v1NodeSystemInfoArchitecture :: !(Text) -- ^ /Required/ "architecture" - The Architecture reported by the node+ , v1NodeSystemInfoBootId :: !(Text) -- ^ /Required/ "bootID" - Boot ID reported by the node.+ , v1NodeSystemInfoContainerRuntimeVersion :: !(Text) -- ^ /Required/ "containerRuntimeVersion" - ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).+ , v1NodeSystemInfoKernelVersion :: !(Text) -- ^ /Required/ "kernelVersion" - Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).+ , v1NodeSystemInfoKubeProxyVersion :: !(Text) -- ^ /Required/ "kubeProxyVersion" - Deprecated: KubeProxy Version reported by the node.+ , v1NodeSystemInfoKubeletVersion :: !(Text) -- ^ /Required/ "kubeletVersion" - Kubelet Version reported by the node.+ , v1NodeSystemInfoMachineId :: !(Text) -- ^ /Required/ "machineID" - MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html+ , v1NodeSystemInfoOperatingSystem :: !(Text) -- ^ /Required/ "operatingSystem" - The Operating System reported by the node+ , v1NodeSystemInfoOsImage :: !(Text) -- ^ /Required/ "osImage" - OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).+ , v1NodeSystemInfoSwap :: !(Maybe V1NodeSwapStatus) -- ^ "swap"+ , v1NodeSystemInfoSystemUuid :: !(Text) -- ^ /Required/ "systemUUID" - SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NodeSystemInfo+instance A.FromJSON V1NodeSystemInfo where+ parseJSON = A.withObject "V1NodeSystemInfo" $ \o ->+ V1NodeSystemInfo+ <$> (o .: "architecture")+ <*> (o .: "bootID")+ <*> (o .: "containerRuntimeVersion")+ <*> (o .: "kernelVersion")+ <*> (o .: "kubeProxyVersion")+ <*> (o .: "kubeletVersion")+ <*> (o .: "machineID")+ <*> (o .: "operatingSystem")+ <*> (o .: "osImage")+ <*> (o .:? "swap")+ <*> (o .: "systemUUID")++-- | ToJSON V1NodeSystemInfo+instance A.ToJSON V1NodeSystemInfo where+ toJSON V1NodeSystemInfo {..} =+ _omitNulls+ [ "architecture" .= v1NodeSystemInfoArchitecture+ , "bootID" .= v1NodeSystemInfoBootId+ , "containerRuntimeVersion" .= v1NodeSystemInfoContainerRuntimeVersion+ , "kernelVersion" .= v1NodeSystemInfoKernelVersion+ , "kubeProxyVersion" .= v1NodeSystemInfoKubeProxyVersion+ , "kubeletVersion" .= v1NodeSystemInfoKubeletVersion+ , "machineID" .= v1NodeSystemInfoMachineId+ , "operatingSystem" .= v1NodeSystemInfoOperatingSystem+ , "osImage" .= v1NodeSystemInfoOsImage+ , "swap" .= v1NodeSystemInfoSwap+ , "systemUUID" .= v1NodeSystemInfoSystemUuid+ ]+++-- | Construct a value of type 'V1NodeSystemInfo' (by applying it's required fields, if any)+mkV1NodeSystemInfo+ :: Text -- ^ 'v1NodeSystemInfoArchitecture': The Architecture reported by the node+ -> Text -- ^ 'v1NodeSystemInfoBootId': Boot ID reported by the node.+ -> Text -- ^ 'v1NodeSystemInfoContainerRuntimeVersion': ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).+ -> Text -- ^ 'v1NodeSystemInfoKernelVersion': Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).+ -> Text -- ^ 'v1NodeSystemInfoKubeProxyVersion': Deprecated: KubeProxy Version reported by the node.+ -> Text -- ^ 'v1NodeSystemInfoKubeletVersion': Kubelet Version reported by the node.+ -> Text -- ^ 'v1NodeSystemInfoMachineId': MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html+ -> Text -- ^ 'v1NodeSystemInfoOperatingSystem': The Operating System reported by the node+ -> Text -- ^ 'v1NodeSystemInfoOsImage': OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).+ -> Text -- ^ 'v1NodeSystemInfoSystemUuid': SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid+ -> V1NodeSystemInfo+mkV1NodeSystemInfo v1NodeSystemInfoArchitecture v1NodeSystemInfoBootId v1NodeSystemInfoContainerRuntimeVersion v1NodeSystemInfoKernelVersion v1NodeSystemInfoKubeProxyVersion v1NodeSystemInfoKubeletVersion v1NodeSystemInfoMachineId v1NodeSystemInfoOperatingSystem v1NodeSystemInfoOsImage v1NodeSystemInfoSystemUuid =+ V1NodeSystemInfo+ { v1NodeSystemInfoArchitecture+ , v1NodeSystemInfoBootId+ , v1NodeSystemInfoContainerRuntimeVersion+ , v1NodeSystemInfoKernelVersion+ , v1NodeSystemInfoKubeProxyVersion+ , v1NodeSystemInfoKubeletVersion+ , v1NodeSystemInfoMachineId+ , v1NodeSystemInfoOperatingSystem+ , v1NodeSystemInfoOsImage+ , v1NodeSystemInfoSwap = Nothing+ , v1NodeSystemInfoSystemUuid+ }++-- ** V1NonResourceAttributes+-- | V1NonResourceAttributes+-- NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface+data V1NonResourceAttributes = V1NonResourceAttributes+ { v1NonResourceAttributesPath :: !(Maybe Text) -- ^ "path" - Path is the URL path of the request+ , v1NonResourceAttributesVerb :: !(Maybe Text) -- ^ "verb" - Verb is the standard HTTP verb+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NonResourceAttributes+instance A.FromJSON V1NonResourceAttributes where+ parseJSON = A.withObject "V1NonResourceAttributes" $ \o ->+ V1NonResourceAttributes+ <$> (o .:? "path")+ <*> (o .:? "verb")++-- | ToJSON V1NonResourceAttributes+instance A.ToJSON V1NonResourceAttributes where+ toJSON V1NonResourceAttributes {..} =+ _omitNulls+ [ "path" .= v1NonResourceAttributesPath+ , "verb" .= v1NonResourceAttributesVerb+ ]+++-- | Construct a value of type 'V1NonResourceAttributes' (by applying it's required fields, if any)+mkV1NonResourceAttributes+ :: V1NonResourceAttributes+mkV1NonResourceAttributes =+ V1NonResourceAttributes+ { v1NonResourceAttributesPath = Nothing+ , v1NonResourceAttributesVerb = Nothing+ }++-- ** V1NonResourcePolicyRule+-- | V1NonResourcePolicyRule+-- NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.+data V1NonResourcePolicyRule = V1NonResourcePolicyRule+ { v1NonResourcePolicyRuleNonResourceUrls :: !([Text]) -- ^ /Required/ "nonResourceURLs" - `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example: - \"/healthz\" is legal - \"/hea*\" is illegal - \"/hea\" is legal but matches nothing - \"/hea/*\" also matches nothing - \"/healthz/*\" matches all per-component health checks. \"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.+ , v1NonResourcePolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - `verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NonResourcePolicyRule+instance A.FromJSON V1NonResourcePolicyRule where+ parseJSON = A.withObject "V1NonResourcePolicyRule" $ \o ->+ V1NonResourcePolicyRule+ <$> (o .: "nonResourceURLs")+ <*> (o .: "verbs")++-- | ToJSON V1NonResourcePolicyRule+instance A.ToJSON V1NonResourcePolicyRule where+ toJSON V1NonResourcePolicyRule {..} =+ _omitNulls+ [ "nonResourceURLs" .= v1NonResourcePolicyRuleNonResourceUrls+ , "verbs" .= v1NonResourcePolicyRuleVerbs+ ]+++-- | Construct a value of type 'V1NonResourcePolicyRule' (by applying it's required fields, if any)+mkV1NonResourcePolicyRule+ :: [Text] -- ^ 'v1NonResourcePolicyRuleNonResourceUrls': `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example: - \"/healthz\" is legal - \"/hea*\" is illegal - \"/hea\" is legal but matches nothing - \"/hea/*\" also matches nothing - \"/healthz/*\" matches all per-component health checks. \"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.+ -> [Text] -- ^ 'v1NonResourcePolicyRuleVerbs': `verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.+ -> V1NonResourcePolicyRule+mkV1NonResourcePolicyRule v1NonResourcePolicyRuleNonResourceUrls v1NonResourcePolicyRuleVerbs =+ V1NonResourcePolicyRule+ { v1NonResourcePolicyRuleNonResourceUrls+ , v1NonResourcePolicyRuleVerbs+ }++-- ** V1NonResourceRule+-- | V1NonResourceRule+-- NonResourceRule holds information that describes a rule for the non-resource+data V1NonResourceRule = V1NonResourceRule+ { v1NonResourceRuleNonResourceUrls :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.+ , v1NonResourceRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1NonResourceRule+instance A.FromJSON V1NonResourceRule where+ parseJSON = A.withObject "V1NonResourceRule" $ \o ->+ V1NonResourceRule+ <$> (o .:? "nonResourceURLs")+ <*> (o .: "verbs")++-- | ToJSON V1NonResourceRule+instance A.ToJSON V1NonResourceRule where+ toJSON V1NonResourceRule {..} =+ _omitNulls+ [ "nonResourceURLs" .= v1NonResourceRuleNonResourceUrls+ , "verbs" .= v1NonResourceRuleVerbs+ ]+++-- | Construct a value of type 'V1NonResourceRule' (by applying it's required fields, if any)+mkV1NonResourceRule+ :: [Text] -- ^ 'v1NonResourceRuleVerbs': Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.+ -> V1NonResourceRule+mkV1NonResourceRule v1NonResourceRuleVerbs =+ V1NonResourceRule+ { v1NonResourceRuleNonResourceUrls = Nothing+ , v1NonResourceRuleVerbs+ }++-- ** V1ObjectFieldSelector+-- | V1ObjectFieldSelector+-- ObjectFieldSelector selects an APIVersioned field of an object.+data V1ObjectFieldSelector = V1ObjectFieldSelector+ { v1ObjectFieldSelectorApiVersion :: !(Maybe Text) -- ^ "apiVersion" - Version of the schema the FieldPath is written in terms of, defaults to \"v1\".+ , v1ObjectFieldSelectorFieldPath :: !(Text) -- ^ /Required/ "fieldPath" - Path of the field to select in the specified API version.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ObjectFieldSelector+instance A.FromJSON V1ObjectFieldSelector where+ parseJSON = A.withObject "V1ObjectFieldSelector" $ \o ->+ V1ObjectFieldSelector+ <$> (o .:? "apiVersion")+ <*> (o .: "fieldPath")++-- | ToJSON V1ObjectFieldSelector+instance A.ToJSON V1ObjectFieldSelector where+ toJSON V1ObjectFieldSelector {..} =+ _omitNulls+ [ "apiVersion" .= v1ObjectFieldSelectorApiVersion+ , "fieldPath" .= v1ObjectFieldSelectorFieldPath+ ]+++-- | Construct a value of type 'V1ObjectFieldSelector' (by applying it's required fields, if any)+mkV1ObjectFieldSelector+ :: Text -- ^ 'v1ObjectFieldSelectorFieldPath': Path of the field to select in the specified API version.+ -> V1ObjectFieldSelector+mkV1ObjectFieldSelector v1ObjectFieldSelectorFieldPath =+ V1ObjectFieldSelector+ { v1ObjectFieldSelectorApiVersion = Nothing+ , v1ObjectFieldSelectorFieldPath+ }++-- ** V1ObjectMeta+-- | V1ObjectMeta+-- ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.+data V1ObjectMeta = V1ObjectMeta+ { v1ObjectMetaAnnotations :: !(Maybe (Map.Map String Text)) -- ^ "annotations" - Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations+ , v1ObjectMetaCreationTimestamp :: !(Maybe DateTime) -- ^ "creationTimestamp" - CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata+ , v1ObjectMetaDeletionGracePeriodSeconds :: !(Maybe Integer) -- ^ "deletionGracePeriodSeconds" - Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.+ , v1ObjectMetaDeletionTimestamp :: !(Maybe DateTime) -- ^ "deletionTimestamp" - DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata+ , v1ObjectMetaFinalizers :: !(Maybe [Text]) -- ^ "finalizers" - Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.+ , v1ObjectMetaGenerateName :: !(Maybe Text) -- ^ "generateName" - GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will return a 409. Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency+ , v1ObjectMetaGeneration :: !(Maybe Integer) -- ^ "generation" - A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.+ , v1ObjectMetaLabels :: !(Maybe (Map.Map String Text)) -- ^ "labels" - Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels+ , v1ObjectMetaManagedFields :: !(Maybe [V1ManagedFieldsEntry]) -- ^ "managedFields" - ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.+ , v1ObjectMetaName :: !(Maybe Text) -- ^ "name" - Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names+ , v1ObjectMetaNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces+ , v1ObjectMetaOwnerReferences :: !(Maybe [V1OwnerReference]) -- ^ "ownerReferences" - List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.+ , v1ObjectMetaResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency+ , v1ObjectMetaSelfLink :: !(Maybe Text) -- ^ "selfLink" - Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.+ , v1ObjectMetaUid :: !(Maybe Text) -- ^ "uid" - UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ObjectMeta+instance A.FromJSON V1ObjectMeta where+ parseJSON = A.withObject "V1ObjectMeta" $ \o ->+ V1ObjectMeta+ <$> (o .:? "annotations")+ <*> (o .:? "creationTimestamp")+ <*> (o .:? "deletionGracePeriodSeconds")+ <*> (o .:? "deletionTimestamp")+ <*> (o .:? "finalizers")+ <*> (o .:? "generateName")+ <*> (o .:? "generation")+ <*> (o .:? "labels")+ <*> (o .:? "managedFields")+ <*> (o .:? "name")+ <*> (o .:? "namespace")+ <*> (o .:? "ownerReferences")+ <*> (o .:? "resourceVersion")+ <*> (o .:? "selfLink")+ <*> (o .:? "uid")++-- | ToJSON V1ObjectMeta+instance A.ToJSON V1ObjectMeta where+ toJSON V1ObjectMeta {..} =+ _omitNulls+ [ "annotations" .= v1ObjectMetaAnnotations+ , "creationTimestamp" .= v1ObjectMetaCreationTimestamp+ , "deletionGracePeriodSeconds" .= v1ObjectMetaDeletionGracePeriodSeconds+ , "deletionTimestamp" .= v1ObjectMetaDeletionTimestamp+ , "finalizers" .= v1ObjectMetaFinalizers+ , "generateName" .= v1ObjectMetaGenerateName+ , "generation" .= v1ObjectMetaGeneration+ , "labels" .= v1ObjectMetaLabels+ , "managedFields" .= v1ObjectMetaManagedFields+ , "name" .= v1ObjectMetaName+ , "namespace" .= v1ObjectMetaNamespace+ , "ownerReferences" .= v1ObjectMetaOwnerReferences+ , "resourceVersion" .= v1ObjectMetaResourceVersion+ , "selfLink" .= v1ObjectMetaSelfLink+ , "uid" .= v1ObjectMetaUid+ ]+++-- | Construct a value of type 'V1ObjectMeta' (by applying it's required fields, if any)+mkV1ObjectMeta+ :: V1ObjectMeta+mkV1ObjectMeta =+ V1ObjectMeta+ { v1ObjectMetaAnnotations = Nothing+ , v1ObjectMetaCreationTimestamp = Nothing+ , v1ObjectMetaDeletionGracePeriodSeconds = Nothing+ , v1ObjectMetaDeletionTimestamp = Nothing+ , v1ObjectMetaFinalizers = Nothing+ , v1ObjectMetaGenerateName = Nothing+ , v1ObjectMetaGeneration = Nothing+ , v1ObjectMetaLabels = Nothing+ , v1ObjectMetaManagedFields = Nothing+ , v1ObjectMetaName = Nothing+ , v1ObjectMetaNamespace = Nothing+ , v1ObjectMetaOwnerReferences = Nothing+ , v1ObjectMetaResourceVersion = Nothing+ , v1ObjectMetaSelfLink = Nothing+ , v1ObjectMetaUid = Nothing+ }++-- ** V1ObjectReference+-- | V1ObjectReference+-- ObjectReference contains enough information to let you inspect or modify the referred object.+data V1ObjectReference = V1ObjectReference+ { v1ObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent.+ , v1ObjectReferenceFieldPath :: !(Maybe Text) -- ^ "fieldPath" - If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.+ , v1ObjectReferenceKind :: !(Maybe Text) -- ^ "kind" - Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds+ , v1ObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ , v1ObjectReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/+ , v1ObjectReferenceResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency+ , v1ObjectReferenceUid :: !(Maybe Text) -- ^ "uid" - UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ObjectReference+instance A.FromJSON V1ObjectReference where+ parseJSON = A.withObject "V1ObjectReference" $ \o ->+ V1ObjectReference+ <$> (o .:? "apiVersion")+ <*> (o .:? "fieldPath")+ <*> (o .:? "kind")+ <*> (o .:? "name")+ <*> (o .:? "namespace")+ <*> (o .:? "resourceVersion")+ <*> (o .:? "uid")++-- | ToJSON V1ObjectReference+instance A.ToJSON V1ObjectReference where+ toJSON V1ObjectReference {..} =+ _omitNulls+ [ "apiVersion" .= v1ObjectReferenceApiVersion+ , "fieldPath" .= v1ObjectReferenceFieldPath+ , "kind" .= v1ObjectReferenceKind+ , "name" .= v1ObjectReferenceName+ , "namespace" .= v1ObjectReferenceNamespace+ , "resourceVersion" .= v1ObjectReferenceResourceVersion+ , "uid" .= v1ObjectReferenceUid+ ]+++-- | Construct a value of type 'V1ObjectReference' (by applying it's required fields, if any)+mkV1ObjectReference+ :: V1ObjectReference+mkV1ObjectReference =+ V1ObjectReference+ { v1ObjectReferenceApiVersion = Nothing+ , v1ObjectReferenceFieldPath = Nothing+ , v1ObjectReferenceKind = Nothing+ , v1ObjectReferenceName = Nothing+ , v1ObjectReferenceNamespace = Nothing+ , v1ObjectReferenceResourceVersion = Nothing+ , v1ObjectReferenceUid = Nothing+ }++-- ** V1OpaqueDeviceConfiguration+-- | V1OpaqueDeviceConfiguration+-- OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.+data V1OpaqueDeviceConfiguration = V1OpaqueDeviceConfiguration+ { v1OpaqueDeviceConfigurationDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1OpaqueDeviceConfigurationParameters :: !(A.Value) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1OpaqueDeviceConfiguration+instance A.FromJSON V1OpaqueDeviceConfiguration where+ parseJSON = A.withObject "V1OpaqueDeviceConfiguration" $ \o ->+ V1OpaqueDeviceConfiguration+ <$> (o .: "driver")+ <*> (o .: "parameters")++-- | ToJSON V1OpaqueDeviceConfiguration+instance A.ToJSON V1OpaqueDeviceConfiguration where+ toJSON V1OpaqueDeviceConfiguration {..} =+ _omitNulls+ [ "driver" .= v1OpaqueDeviceConfigurationDriver+ , "parameters" .= v1OpaqueDeviceConfigurationParameters+ ]+++-- | Construct a value of type 'V1OpaqueDeviceConfiguration' (by applying it's required fields, if any)+mkV1OpaqueDeviceConfiguration+ :: Text -- ^ 'v1OpaqueDeviceConfigurationDriver': 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. It should use only lower case characters.+ -> A.Value -- ^ 'v1OpaqueDeviceConfigurationParameters': 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.+ -> V1OpaqueDeviceConfiguration+mkV1OpaqueDeviceConfiguration v1OpaqueDeviceConfigurationDriver v1OpaqueDeviceConfigurationParameters =+ V1OpaqueDeviceConfiguration+ { v1OpaqueDeviceConfigurationDriver+ , v1OpaqueDeviceConfigurationParameters+ }++-- ** V1Overhead+-- | V1Overhead+-- Overhead structure represents the resource overhead associated with running a pod.+data V1Overhead = V1Overhead+ { v1OverheadPodFixed :: !(Maybe (Map.Map String Quantity)) -- ^ "podFixed" - podFixed represents the fixed resource overhead associated with running a pod.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Overhead+instance A.FromJSON V1Overhead where+ parseJSON = A.withObject "V1Overhead" $ \o ->+ V1Overhead+ <$> (o .:? "podFixed")++-- | ToJSON V1Overhead+instance A.ToJSON V1Overhead where+ toJSON V1Overhead {..} =+ _omitNulls+ [ "podFixed" .= v1OverheadPodFixed+ ]+++-- | Construct a value of type 'V1Overhead' (by applying it's required fields, if any)+mkV1Overhead+ :: V1Overhead+mkV1Overhead =+ V1Overhead+ { v1OverheadPodFixed = Nothing+ }++-- ** V1OwnerReference+-- | V1OwnerReference+-- OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.+data V1OwnerReference = V1OwnerReference+ { v1OwnerReferenceApiVersion :: !(Text) -- ^ /Required/ "apiVersion" - API version of the referent.+ , v1OwnerReferenceBlockOwnerDeletion :: !(Maybe Bool) -- ^ "blockOwnerDeletion" - If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.+ , v1OwnerReferenceController :: !(Maybe Bool) -- ^ "controller" - If true, this reference points to the managing controller.+ , v1OwnerReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds+ , v1OwnerReferenceName :: !(Text) -- ^ /Required/ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names+ , v1OwnerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1OwnerReference+instance A.FromJSON V1OwnerReference where+ parseJSON = A.withObject "V1OwnerReference" $ \o ->+ V1OwnerReference+ <$> (o .: "apiVersion")+ <*> (o .:? "blockOwnerDeletion")+ <*> (o .:? "controller")+ <*> (o .: "kind")+ <*> (o .: "name")+ <*> (o .: "uid")++-- | ToJSON V1OwnerReference+instance A.ToJSON V1OwnerReference where+ toJSON V1OwnerReference {..} =+ _omitNulls+ [ "apiVersion" .= v1OwnerReferenceApiVersion+ , "blockOwnerDeletion" .= v1OwnerReferenceBlockOwnerDeletion+ , "controller" .= v1OwnerReferenceController+ , "kind" .= v1OwnerReferenceKind+ , "name" .= v1OwnerReferenceName+ , "uid" .= v1OwnerReferenceUid+ ]+++-- | Construct a value of type 'V1OwnerReference' (by applying it's required fields, if any)+mkV1OwnerReference+ :: Text -- ^ 'v1OwnerReferenceApiVersion': API version of the referent.+ -> Text -- ^ 'v1OwnerReferenceKind': Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds+ -> Text -- ^ 'v1OwnerReferenceName': Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names+ -> Text -- ^ 'v1OwnerReferenceUid': UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids+ -> V1OwnerReference+mkV1OwnerReference v1OwnerReferenceApiVersion v1OwnerReferenceKind v1OwnerReferenceName v1OwnerReferenceUid =+ V1OwnerReference+ { v1OwnerReferenceApiVersion+ , v1OwnerReferenceBlockOwnerDeletion = Nothing+ , v1OwnerReferenceController = Nothing+ , v1OwnerReferenceKind+ , v1OwnerReferenceName+ , v1OwnerReferenceUid+ }++-- ** V1ParamKind+-- | V1ParamKind+-- ParamKind is a tuple of Group Kind and Version.+data V1ParamKind = V1ParamKind+ { v1ParamKindApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.+ , v1ParamKindKind :: !(Maybe Text) -- ^ "kind" - Kind is the API kind the resources belong to. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ParamKind+instance A.FromJSON V1ParamKind where+ parseJSON = A.withObject "V1ParamKind" $ \o ->+ V1ParamKind+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")++-- | ToJSON V1ParamKind+instance A.ToJSON V1ParamKind where+ toJSON V1ParamKind {..} =+ _omitNulls+ [ "apiVersion" .= v1ParamKindApiVersion+ , "kind" .= v1ParamKindKind+ ]+++-- | Construct a value of type 'V1ParamKind' (by applying it's required fields, if any)+mkV1ParamKind+ :: V1ParamKind+mkV1ParamKind =+ V1ParamKind+ { v1ParamKindApiVersion = Nothing+ , v1ParamKindKind = Nothing+ }++-- ** V1ParamRef+-- | V1ParamRef+-- ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.+data V1ParamRef = V1ParamRef+ { v1ParamRefName :: !(Maybe Text) -- ^ "name" - name is the name of the resource being referenced. 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. A single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.+ , v1ParamRefNamespace :: !(Maybe Text) -- ^ "namespace" - 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.+ , v1ParamRefParameterNotFoundAction :: !(Maybe Text) -- ^ "parameterNotFoundAction" - `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` Required+ , v1ParamRefSelector :: !(Maybe V1LabelSelector) -- ^ "selector"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ParamRef+instance A.FromJSON V1ParamRef where+ parseJSON = A.withObject "V1ParamRef" $ \o ->+ V1ParamRef+ <$> (o .:? "name")+ <*> (o .:? "namespace")+ <*> (o .:? "parameterNotFoundAction")+ <*> (o .:? "selector")++-- | ToJSON V1ParamRef+instance A.ToJSON V1ParamRef where+ toJSON V1ParamRef {..} =+ _omitNulls+ [ "name" .= v1ParamRefName+ , "namespace" .= v1ParamRefNamespace+ , "parameterNotFoundAction" .= v1ParamRefParameterNotFoundAction+ , "selector" .= v1ParamRefSelector+ ]+++-- | Construct a value of type 'V1ParamRef' (by applying it's required fields, if any)+mkV1ParamRef+ :: V1ParamRef+mkV1ParamRef =+ V1ParamRef+ { v1ParamRefName = Nothing+ , v1ParamRefNamespace = Nothing+ , v1ParamRefParameterNotFoundAction = Nothing+ , v1ParamRefSelector = Nothing+ }++-- ** V1ParentReference+-- | V1ParentReference+-- ParentReference describes a reference to a parent object.+data V1ParentReference = V1ParentReference+ { v1ParentReferenceGroup :: !(Maybe Text) -- ^ "group" - Group is the group of the object being referenced.+ , v1ParentReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of the object being referenced.+ , v1ParentReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the object being referenced.+ , v1ParentReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the resource of the object being referenced.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ParentReference+instance A.FromJSON V1ParentReference where+ parseJSON = A.withObject "V1ParentReference" $ \o ->+ V1ParentReference+ <$> (o .:? "group")+ <*> (o .: "name")+ <*> (o .:? "namespace")+ <*> (o .: "resource")++-- | ToJSON V1ParentReference+instance A.ToJSON V1ParentReference where+ toJSON V1ParentReference {..} =+ _omitNulls+ [ "group" .= v1ParentReferenceGroup+ , "name" .= v1ParentReferenceName+ , "namespace" .= v1ParentReferenceNamespace+ , "resource" .= v1ParentReferenceResource+ ]+++-- | Construct a value of type 'V1ParentReference' (by applying it's required fields, if any)+mkV1ParentReference+ :: Text -- ^ 'v1ParentReferenceName': Name is the name of the object being referenced.+ -> Text -- ^ 'v1ParentReferenceResource': Resource is the resource of the object being referenced.+ -> V1ParentReference+mkV1ParentReference v1ParentReferenceName v1ParentReferenceResource =+ V1ParentReference+ { v1ParentReferenceGroup = Nothing+ , v1ParentReferenceName+ , v1ParentReferenceNamespace = Nothing+ , v1ParentReferenceResource+ }++-- ** V1PersistentVolume+-- | V1PersistentVolume+-- PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes+data V1PersistentVolume = V1PersistentVolume+ { v1PersistentVolumeApiVersion :: !(Maybe Text) -- ^ "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+ , v1PersistentVolumeKind :: !(Maybe Text) -- ^ "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+ , v1PersistentVolumeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PersistentVolumeSpec :: !(Maybe V1PersistentVolumeSpec) -- ^ "spec"+ , v1PersistentVolumeStatus :: !(Maybe V1PersistentVolumeStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolume+instance A.FromJSON V1PersistentVolume where+ parseJSON = A.withObject "V1PersistentVolume" $ \o ->+ V1PersistentVolume+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1PersistentVolume+instance A.ToJSON V1PersistentVolume where+ toJSON V1PersistentVolume {..} =+ _omitNulls+ [ "apiVersion" .= v1PersistentVolumeApiVersion+ , "kind" .= v1PersistentVolumeKind+ , "metadata" .= v1PersistentVolumeMetadata+ , "spec" .= v1PersistentVolumeSpec+ , "status" .= v1PersistentVolumeStatus+ ]+++-- | Construct a value of type 'V1PersistentVolume' (by applying it's required fields, if any)+mkV1PersistentVolume+ :: V1PersistentVolume+mkV1PersistentVolume =+ V1PersistentVolume+ { v1PersistentVolumeApiVersion = Nothing+ , v1PersistentVolumeKind = Nothing+ , v1PersistentVolumeMetadata = Nothing+ , v1PersistentVolumeSpec = Nothing+ , v1PersistentVolumeStatus = Nothing+ }++-- ** V1PersistentVolumeClaim+-- | V1PersistentVolumeClaim+-- PersistentVolumeClaim is a user's request for and claim to a persistent volume+data V1PersistentVolumeClaim = V1PersistentVolumeClaim+ { v1PersistentVolumeClaimApiVersion :: !(Maybe Text) -- ^ "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+ , v1PersistentVolumeClaimKind :: !(Maybe Text) -- ^ "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+ , v1PersistentVolumeClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PersistentVolumeClaimSpec :: !(Maybe V1PersistentVolumeClaimSpec) -- ^ "spec"+ , v1PersistentVolumeClaimStatus :: !(Maybe V1PersistentVolumeClaimStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeClaim+instance A.FromJSON V1PersistentVolumeClaim where+ parseJSON = A.withObject "V1PersistentVolumeClaim" $ \o ->+ V1PersistentVolumeClaim+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1PersistentVolumeClaim+instance A.ToJSON V1PersistentVolumeClaim where+ toJSON V1PersistentVolumeClaim {..} =+ _omitNulls+ [ "apiVersion" .= v1PersistentVolumeClaimApiVersion+ , "kind" .= v1PersistentVolumeClaimKind+ , "metadata" .= v1PersistentVolumeClaimMetadata+ , "spec" .= v1PersistentVolumeClaimSpec+ , "status" .= v1PersistentVolumeClaimStatus+ ]+++-- | Construct a value of type 'V1PersistentVolumeClaim' (by applying it's required fields, if any)+mkV1PersistentVolumeClaim+ :: V1PersistentVolumeClaim+mkV1PersistentVolumeClaim =+ V1PersistentVolumeClaim+ { v1PersistentVolumeClaimApiVersion = Nothing+ , v1PersistentVolumeClaimKind = Nothing+ , v1PersistentVolumeClaimMetadata = Nothing+ , v1PersistentVolumeClaimSpec = Nothing+ , v1PersistentVolumeClaimStatus = Nothing+ }++-- ** V1PersistentVolumeClaimCondition+-- | V1PersistentVolumeClaimCondition+-- PersistentVolumeClaimCondition contains details about state of pvc+data V1PersistentVolumeClaimCondition = V1PersistentVolumeClaimCondition+ { v1PersistentVolumeClaimConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - lastProbeTime is the time we probed the condition.+ , v1PersistentVolumeClaimConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime is the time the condition transitioned from one status to another.+ , v1PersistentVolumeClaimConditionMessage :: !(Maybe Text) -- ^ "message" - message is the human-readable message indicating details about last transition.+ , v1PersistentVolumeClaimConditionReason :: !(Maybe Text) -- ^ "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.+ , v1PersistentVolumeClaimConditionStatus :: !(Text) -- ^ /Required/ "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+ , v1PersistentVolumeClaimConditionType :: !(Text) -- ^ /Required/ "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+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeClaimCondition+instance A.FromJSON V1PersistentVolumeClaimCondition where+ parseJSON = A.withObject "V1PersistentVolumeClaimCondition" $ \o ->+ V1PersistentVolumeClaimCondition+ <$> (o .:? "lastProbeTime")+ <*> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1PersistentVolumeClaimCondition+instance A.ToJSON V1PersistentVolumeClaimCondition where+ toJSON V1PersistentVolumeClaimCondition {..} =+ _omitNulls+ [ "lastProbeTime" .= v1PersistentVolumeClaimConditionLastProbeTime+ , "lastTransitionTime" .= v1PersistentVolumeClaimConditionLastTransitionTime+ , "message" .= v1PersistentVolumeClaimConditionMessage+ , "reason" .= v1PersistentVolumeClaimConditionReason+ , "status" .= v1PersistentVolumeClaimConditionStatus+ , "type" .= v1PersistentVolumeClaimConditionType+ ]+++-- | Construct a value of type 'V1PersistentVolumeClaimCondition' (by applying it's required fields, if any)+mkV1PersistentVolumeClaimCondition+ :: Text -- ^ 'v1PersistentVolumeClaimConditionStatus': 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+ -> Text -- ^ 'v1PersistentVolumeClaimConditionType': 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+ -> V1PersistentVolumeClaimCondition+mkV1PersistentVolumeClaimCondition v1PersistentVolumeClaimConditionStatus v1PersistentVolumeClaimConditionType =+ V1PersistentVolumeClaimCondition+ { v1PersistentVolumeClaimConditionLastProbeTime = Nothing+ , v1PersistentVolumeClaimConditionLastTransitionTime = Nothing+ , v1PersistentVolumeClaimConditionMessage = Nothing+ , v1PersistentVolumeClaimConditionReason = Nothing+ , v1PersistentVolumeClaimConditionStatus+ , v1PersistentVolumeClaimConditionType+ }++-- ** V1PersistentVolumeClaimList+-- | V1PersistentVolumeClaimList+-- PersistentVolumeClaimList is a list of PersistentVolumeClaim items.+data V1PersistentVolumeClaimList = V1PersistentVolumeClaimList+ { v1PersistentVolumeClaimListApiVersion :: !(Maybe Text) -- ^ "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+ , v1PersistentVolumeClaimListItems :: !([V1PersistentVolumeClaim]) -- ^ /Required/ "items" - items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims+ , v1PersistentVolumeClaimListKind :: !(Maybe Text) -- ^ "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+ , v1PersistentVolumeClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeClaimList+instance A.FromJSON V1PersistentVolumeClaimList where+ parseJSON = A.withObject "V1PersistentVolumeClaimList" $ \o ->+ V1PersistentVolumeClaimList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1PersistentVolumeClaimList+instance A.ToJSON V1PersistentVolumeClaimList where+ toJSON V1PersistentVolumeClaimList {..} =+ _omitNulls+ [ "apiVersion" .= v1PersistentVolumeClaimListApiVersion+ , "items" .= v1PersistentVolumeClaimListItems+ , "kind" .= v1PersistentVolumeClaimListKind+ , "metadata" .= v1PersistentVolumeClaimListMetadata+ ]+++-- | Construct a value of type 'V1PersistentVolumeClaimList' (by applying it's required fields, if any)+mkV1PersistentVolumeClaimList+ :: [V1PersistentVolumeClaim] -- ^ 'v1PersistentVolumeClaimListItems': items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims+ -> V1PersistentVolumeClaimList+mkV1PersistentVolumeClaimList v1PersistentVolumeClaimListItems =+ V1PersistentVolumeClaimList+ { v1PersistentVolumeClaimListApiVersion = Nothing+ , v1PersistentVolumeClaimListItems+ , v1PersistentVolumeClaimListKind = Nothing+ , v1PersistentVolumeClaimListMetadata = Nothing+ }++-- ** V1PersistentVolumeClaimSpec+-- | V1PersistentVolumeClaimSpec+-- PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes+data V1PersistentVolumeClaimSpec = V1PersistentVolumeClaimSpec+ { v1PersistentVolumeClaimSpecAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1+ , v1PersistentVolumeClaimSpecDataSource :: !(Maybe V1TypedLocalObjectReference) -- ^ "dataSource"+ , v1PersistentVolumeClaimSpecDataSourceRef :: !(Maybe V1TypedObjectReference) -- ^ "dataSourceRef"+ , v1PersistentVolumeClaimSpecResources :: !(Maybe V1VolumeResourceRequirements) -- ^ "resources"+ , v1PersistentVolumeClaimSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"+ , v1PersistentVolumeClaimSpecStorageClassName :: !(Maybe Text) -- ^ "storageClassName" - storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1+ , v1PersistentVolumeClaimSpecVolumeAttributesClassName :: !(Maybe Text) -- ^ "volumeAttributesClassName" - volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/+ , v1PersistentVolumeClaimSpecVolumeMode :: !(Maybe Text) -- ^ "volumeMode" - volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.+ , v1PersistentVolumeClaimSpecVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the binding reference to the PersistentVolume backing this claim.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeClaimSpec+instance A.FromJSON V1PersistentVolumeClaimSpec where+ parseJSON = A.withObject "V1PersistentVolumeClaimSpec" $ \o ->+ V1PersistentVolumeClaimSpec+ <$> (o .:? "accessModes")+ <*> (o .:? "dataSource")+ <*> (o .:? "dataSourceRef")+ <*> (o .:? "resources")+ <*> (o .:? "selector")+ <*> (o .:? "storageClassName")+ <*> (o .:? "volumeAttributesClassName")+ <*> (o .:? "volumeMode")+ <*> (o .:? "volumeName")++-- | ToJSON V1PersistentVolumeClaimSpec+instance A.ToJSON V1PersistentVolumeClaimSpec where+ toJSON V1PersistentVolumeClaimSpec {..} =+ _omitNulls+ [ "accessModes" .= v1PersistentVolumeClaimSpecAccessModes+ , "dataSource" .= v1PersistentVolumeClaimSpecDataSource+ , "dataSourceRef" .= v1PersistentVolumeClaimSpecDataSourceRef+ , "resources" .= v1PersistentVolumeClaimSpecResources+ , "selector" .= v1PersistentVolumeClaimSpecSelector+ , "storageClassName" .= v1PersistentVolumeClaimSpecStorageClassName+ , "volumeAttributesClassName" .= v1PersistentVolumeClaimSpecVolumeAttributesClassName+ , "volumeMode" .= v1PersistentVolumeClaimSpecVolumeMode+ , "volumeName" .= v1PersistentVolumeClaimSpecVolumeName+ ]+++-- | Construct a value of type 'V1PersistentVolumeClaimSpec' (by applying it's required fields, if any)+mkV1PersistentVolumeClaimSpec+ :: V1PersistentVolumeClaimSpec+mkV1PersistentVolumeClaimSpec =+ V1PersistentVolumeClaimSpec+ { v1PersistentVolumeClaimSpecAccessModes = Nothing+ , v1PersistentVolumeClaimSpecDataSource = Nothing+ , v1PersistentVolumeClaimSpecDataSourceRef = Nothing+ , v1PersistentVolumeClaimSpecResources = Nothing+ , v1PersistentVolumeClaimSpecSelector = Nothing+ , v1PersistentVolumeClaimSpecStorageClassName = Nothing+ , v1PersistentVolumeClaimSpecVolumeAttributesClassName = Nothing+ , v1PersistentVolumeClaimSpecVolumeMode = Nothing+ , v1PersistentVolumeClaimSpecVolumeName = Nothing+ }++-- ** V1PersistentVolumeClaimStatus+-- | V1PersistentVolumeClaimStatus+-- PersistentVolumeClaimStatus is the current status of a persistent volume claim.+data V1PersistentVolumeClaimStatus = V1PersistentVolumeClaimStatus+ { v1PersistentVolumeClaimStatusAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1+ , v1PersistentVolumeClaimStatusAllocatedResourceStatuses :: !(Maybe (Map.Map String Text)) -- ^ "allocatedResourceStatuses" - allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.+ , v1PersistentVolumeClaimStatusAllocatedResources :: !(Maybe (Map.Map String Quantity)) -- ^ "allocatedResources" - allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.+ , v1PersistentVolumeClaimStatusCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - capacity represents the actual resources of the underlying volume.+ , v1PersistentVolumeClaimStatusConditions :: !(Maybe [V1PersistentVolumeClaimCondition]) -- ^ "conditions" - conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.+ , v1PersistentVolumeClaimStatusCurrentVolumeAttributesClassName :: !(Maybe Text) -- ^ "currentVolumeAttributesClassName" - currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim+ , v1PersistentVolumeClaimStatusModifyVolumeStatus :: !(Maybe V1ModifyVolumeStatus) -- ^ "modifyVolumeStatus"+ , v1PersistentVolumeClaimStatusPhase :: !(Maybe Text) -- ^ "phase" - phase represents the current phase of PersistentVolumeClaim.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeClaimStatus+instance A.FromJSON V1PersistentVolumeClaimStatus where+ parseJSON = A.withObject "V1PersistentVolumeClaimStatus" $ \o ->+ V1PersistentVolumeClaimStatus+ <$> (o .:? "accessModes")+ <*> (o .:? "allocatedResourceStatuses")+ <*> (o .:? "allocatedResources")+ <*> (o .:? "capacity")+ <*> (o .:? "conditions")+ <*> (o .:? "currentVolumeAttributesClassName")+ <*> (o .:? "modifyVolumeStatus")+ <*> (o .:? "phase")++-- | ToJSON V1PersistentVolumeClaimStatus+instance A.ToJSON V1PersistentVolumeClaimStatus where+ toJSON V1PersistentVolumeClaimStatus {..} =+ _omitNulls+ [ "accessModes" .= v1PersistentVolumeClaimStatusAccessModes+ , "allocatedResourceStatuses" .= v1PersistentVolumeClaimStatusAllocatedResourceStatuses+ , "allocatedResources" .= v1PersistentVolumeClaimStatusAllocatedResources+ , "capacity" .= v1PersistentVolumeClaimStatusCapacity+ , "conditions" .= v1PersistentVolumeClaimStatusConditions+ , "currentVolumeAttributesClassName" .= v1PersistentVolumeClaimStatusCurrentVolumeAttributesClassName+ , "modifyVolumeStatus" .= v1PersistentVolumeClaimStatusModifyVolumeStatus+ , "phase" .= v1PersistentVolumeClaimStatusPhase+ ]+++-- | Construct a value of type 'V1PersistentVolumeClaimStatus' (by applying it's required fields, if any)+mkV1PersistentVolumeClaimStatus+ :: V1PersistentVolumeClaimStatus+mkV1PersistentVolumeClaimStatus =+ V1PersistentVolumeClaimStatus+ { v1PersistentVolumeClaimStatusAccessModes = Nothing+ , v1PersistentVolumeClaimStatusAllocatedResourceStatuses = Nothing+ , v1PersistentVolumeClaimStatusAllocatedResources = Nothing+ , v1PersistentVolumeClaimStatusCapacity = Nothing+ , v1PersistentVolumeClaimStatusConditions = Nothing+ , v1PersistentVolumeClaimStatusCurrentVolumeAttributesClassName = Nothing+ , v1PersistentVolumeClaimStatusModifyVolumeStatus = Nothing+ , v1PersistentVolumeClaimStatusPhase = Nothing+ }++-- ** V1PersistentVolumeClaimTemplate+-- | V1PersistentVolumeClaimTemplate+-- PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.+data V1PersistentVolumeClaimTemplate = V1PersistentVolumeClaimTemplate+ { v1PersistentVolumeClaimTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PersistentVolumeClaimTemplateSpec :: !(V1PersistentVolumeClaimSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeClaimTemplate+instance A.FromJSON V1PersistentVolumeClaimTemplate where+ parseJSON = A.withObject "V1PersistentVolumeClaimTemplate" $ \o ->+ V1PersistentVolumeClaimTemplate+ <$> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1PersistentVolumeClaimTemplate+instance A.ToJSON V1PersistentVolumeClaimTemplate where+ toJSON V1PersistentVolumeClaimTemplate {..} =+ _omitNulls+ [ "metadata" .= v1PersistentVolumeClaimTemplateMetadata+ , "spec" .= v1PersistentVolumeClaimTemplateSpec+ ]+++-- | Construct a value of type 'V1PersistentVolumeClaimTemplate' (by applying it's required fields, if any)+mkV1PersistentVolumeClaimTemplate+ :: V1PersistentVolumeClaimSpec -- ^ 'v1PersistentVolumeClaimTemplateSpec' + -> V1PersistentVolumeClaimTemplate+mkV1PersistentVolumeClaimTemplate v1PersistentVolumeClaimTemplateSpec =+ V1PersistentVolumeClaimTemplate+ { v1PersistentVolumeClaimTemplateMetadata = Nothing+ , v1PersistentVolumeClaimTemplateSpec+ }++-- ** V1PersistentVolumeClaimVolumeSource+-- | V1PersistentVolumeClaimVolumeSource+-- PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).+data V1PersistentVolumeClaimVolumeSource = V1PersistentVolumeClaimVolumeSource+ { v1PersistentVolumeClaimVolumeSourceClaimName :: !(Text) -- ^ /Required/ "claimName" - claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims+ , v1PersistentVolumeClaimVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly Will force the ReadOnly setting in VolumeMounts. Default false.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeClaimVolumeSource+instance A.FromJSON V1PersistentVolumeClaimVolumeSource where+ parseJSON = A.withObject "V1PersistentVolumeClaimVolumeSource" $ \o ->+ V1PersistentVolumeClaimVolumeSource+ <$> (o .: "claimName")+ <*> (o .:? "readOnly")++-- | ToJSON V1PersistentVolumeClaimVolumeSource+instance A.ToJSON V1PersistentVolumeClaimVolumeSource where+ toJSON V1PersistentVolumeClaimVolumeSource {..} =+ _omitNulls+ [ "claimName" .= v1PersistentVolumeClaimVolumeSourceClaimName+ , "readOnly" .= v1PersistentVolumeClaimVolumeSourceReadOnly+ ]+++-- | Construct a value of type 'V1PersistentVolumeClaimVolumeSource' (by applying it's required fields, if any)+mkV1PersistentVolumeClaimVolumeSource+ :: Text -- ^ 'v1PersistentVolumeClaimVolumeSourceClaimName': claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims+ -> V1PersistentVolumeClaimVolumeSource+mkV1PersistentVolumeClaimVolumeSource v1PersistentVolumeClaimVolumeSourceClaimName =+ V1PersistentVolumeClaimVolumeSource+ { v1PersistentVolumeClaimVolumeSourceClaimName+ , v1PersistentVolumeClaimVolumeSourceReadOnly = Nothing+ }++-- ** V1PersistentVolumeList+-- | V1PersistentVolumeList+-- PersistentVolumeList is a list of PersistentVolume items.+data V1PersistentVolumeList = V1PersistentVolumeList+ { v1PersistentVolumeListApiVersion :: !(Maybe Text) -- ^ "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+ , v1PersistentVolumeListItems :: !([V1PersistentVolume]) -- ^ /Required/ "items" - items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes+ , v1PersistentVolumeListKind :: !(Maybe Text) -- ^ "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+ , v1PersistentVolumeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeList+instance A.FromJSON V1PersistentVolumeList where+ parseJSON = A.withObject "V1PersistentVolumeList" $ \o ->+ V1PersistentVolumeList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1PersistentVolumeList+instance A.ToJSON V1PersistentVolumeList where+ toJSON V1PersistentVolumeList {..} =+ _omitNulls+ [ "apiVersion" .= v1PersistentVolumeListApiVersion+ , "items" .= v1PersistentVolumeListItems+ , "kind" .= v1PersistentVolumeListKind+ , "metadata" .= v1PersistentVolumeListMetadata+ ]+++-- | Construct a value of type 'V1PersistentVolumeList' (by applying it's required fields, if any)+mkV1PersistentVolumeList+ :: [V1PersistentVolume] -- ^ 'v1PersistentVolumeListItems': items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes+ -> V1PersistentVolumeList+mkV1PersistentVolumeList v1PersistentVolumeListItems =+ V1PersistentVolumeList+ { v1PersistentVolumeListApiVersion = Nothing+ , v1PersistentVolumeListItems+ , v1PersistentVolumeListKind = Nothing+ , v1PersistentVolumeListMetadata = Nothing+ }++-- ** V1PersistentVolumeSpec+-- | V1PersistentVolumeSpec+-- PersistentVolumeSpec is the specification of a persistent volume.+data V1PersistentVolumeSpec = V1PersistentVolumeSpec+ { v1PersistentVolumeSpecAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes+ , v1PersistentVolumeSpecAwsElasticBlockStore :: !(Maybe V1AWSElasticBlockStoreVolumeSource) -- ^ "awsElasticBlockStore"+ , v1PersistentVolumeSpecAzureDisk :: !(Maybe V1AzureDiskVolumeSource) -- ^ "azureDisk"+ , v1PersistentVolumeSpecAzureFile :: !(Maybe V1AzureFilePersistentVolumeSource) -- ^ "azureFile"+ , v1PersistentVolumeSpecCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity+ , v1PersistentVolumeSpecCephfs :: !(Maybe V1CephFSPersistentVolumeSource) -- ^ "cephfs"+ , v1PersistentVolumeSpecCinder :: !(Maybe V1CinderPersistentVolumeSource) -- ^ "cinder"+ , v1PersistentVolumeSpecClaimRef :: !(Maybe V1ObjectReference) -- ^ "claimRef"+ , v1PersistentVolumeSpecCsi :: !(Maybe V1CSIPersistentVolumeSource) -- ^ "csi"+ , v1PersistentVolumeSpecFc :: !(Maybe V1FCVolumeSource) -- ^ "fc"+ , v1PersistentVolumeSpecFlexVolume :: !(Maybe V1FlexPersistentVolumeSource) -- ^ "flexVolume"+ , v1PersistentVolumeSpecFlocker :: !(Maybe V1FlockerVolumeSource) -- ^ "flocker"+ , v1PersistentVolumeSpecGcePersistentDisk :: !(Maybe V1GCEPersistentDiskVolumeSource) -- ^ "gcePersistentDisk"+ , v1PersistentVolumeSpecGlusterfs :: !(Maybe V1GlusterfsPersistentVolumeSource) -- ^ "glusterfs"+ , v1PersistentVolumeSpecHostPath :: !(Maybe V1HostPathVolumeSource) -- ^ "hostPath"+ , v1PersistentVolumeSpecIscsi :: !(Maybe V1ISCSIPersistentVolumeSource) -- ^ "iscsi"+ , v1PersistentVolumeSpecLocal :: !(Maybe V1LocalVolumeSource) -- ^ "local"+ , v1PersistentVolumeSpecMountOptions :: !(Maybe [Text]) -- ^ "mountOptions" - mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options+ , v1PersistentVolumeSpecNfs :: !(Maybe V1NFSVolumeSource) -- ^ "nfs"+ , v1PersistentVolumeSpecNodeAffinity :: !(Maybe V1VolumeNodeAffinity) -- ^ "nodeAffinity"+ , v1PersistentVolumeSpecPersistentVolumeReclaimPolicy :: !(Maybe Text) -- ^ "persistentVolumeReclaimPolicy" - 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+ , v1PersistentVolumeSpecPhotonPersistentDisk :: !(Maybe V1PhotonPersistentDiskVolumeSource) -- ^ "photonPersistentDisk"+ , v1PersistentVolumeSpecPortworxVolume :: !(Maybe V1PortworxVolumeSource) -- ^ "portworxVolume"+ , v1PersistentVolumeSpecQuobyte :: !(Maybe V1QuobyteVolumeSource) -- ^ "quobyte"+ , v1PersistentVolumeSpecRbd :: !(Maybe V1RBDPersistentVolumeSource) -- ^ "rbd"+ , v1PersistentVolumeSpecScaleIo :: !(Maybe V1ScaleIOPersistentVolumeSource) -- ^ "scaleIO"+ , v1PersistentVolumeSpecStorageClassName :: !(Maybe Text) -- ^ "storageClassName" - storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.+ , v1PersistentVolumeSpecStorageos :: !(Maybe V1StorageOSPersistentVolumeSource) -- ^ "storageos"+ , v1PersistentVolumeSpecVolumeAttributesClassName :: !(Maybe Text) -- ^ "volumeAttributesClassName" - 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.+ , v1PersistentVolumeSpecVolumeMode :: !(Maybe Text) -- ^ "volumeMode" - 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.+ , v1PersistentVolumeSpecVsphereVolume :: !(Maybe V1VsphereVirtualDiskVolumeSource) -- ^ "vsphereVolume"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeSpec+instance A.FromJSON V1PersistentVolumeSpec where+ parseJSON = A.withObject "V1PersistentVolumeSpec" $ \o ->+ V1PersistentVolumeSpec+ <$> (o .:? "accessModes")+ <*> (o .:? "awsElasticBlockStore")+ <*> (o .:? "azureDisk")+ <*> (o .:? "azureFile")+ <*> (o .:? "capacity")+ <*> (o .:? "cephfs")+ <*> (o .:? "cinder")+ <*> (o .:? "claimRef")+ <*> (o .:? "csi")+ <*> (o .:? "fc")+ <*> (o .:? "flexVolume")+ <*> (o .:? "flocker")+ <*> (o .:? "gcePersistentDisk")+ <*> (o .:? "glusterfs")+ <*> (o .:? "hostPath")+ <*> (o .:? "iscsi")+ <*> (o .:? "local")+ <*> (o .:? "mountOptions")+ <*> (o .:? "nfs")+ <*> (o .:? "nodeAffinity")+ <*> (o .:? "persistentVolumeReclaimPolicy")+ <*> (o .:? "photonPersistentDisk")+ <*> (o .:? "portworxVolume")+ <*> (o .:? "quobyte")+ <*> (o .:? "rbd")+ <*> (o .:? "scaleIO")+ <*> (o .:? "storageClassName")+ <*> (o .:? "storageos")+ <*> (o .:? "volumeAttributesClassName")+ <*> (o .:? "volumeMode")+ <*> (o .:? "vsphereVolume")++-- | ToJSON V1PersistentVolumeSpec+instance A.ToJSON V1PersistentVolumeSpec where+ toJSON V1PersistentVolumeSpec {..} =+ _omitNulls+ [ "accessModes" .= v1PersistentVolumeSpecAccessModes+ , "awsElasticBlockStore" .= v1PersistentVolumeSpecAwsElasticBlockStore+ , "azureDisk" .= v1PersistentVolumeSpecAzureDisk+ , "azureFile" .= v1PersistentVolumeSpecAzureFile+ , "capacity" .= v1PersistentVolumeSpecCapacity+ , "cephfs" .= v1PersistentVolumeSpecCephfs+ , "cinder" .= v1PersistentVolumeSpecCinder+ , "claimRef" .= v1PersistentVolumeSpecClaimRef+ , "csi" .= v1PersistentVolumeSpecCsi+ , "fc" .= v1PersistentVolumeSpecFc+ , "flexVolume" .= v1PersistentVolumeSpecFlexVolume+ , "flocker" .= v1PersistentVolumeSpecFlocker+ , "gcePersistentDisk" .= v1PersistentVolumeSpecGcePersistentDisk+ , "glusterfs" .= v1PersistentVolumeSpecGlusterfs+ , "hostPath" .= v1PersistentVolumeSpecHostPath+ , "iscsi" .= v1PersistentVolumeSpecIscsi+ , "local" .= v1PersistentVolumeSpecLocal+ , "mountOptions" .= v1PersistentVolumeSpecMountOptions+ , "nfs" .= v1PersistentVolumeSpecNfs+ , "nodeAffinity" .= v1PersistentVolumeSpecNodeAffinity+ , "persistentVolumeReclaimPolicy" .= v1PersistentVolumeSpecPersistentVolumeReclaimPolicy+ , "photonPersistentDisk" .= v1PersistentVolumeSpecPhotonPersistentDisk+ , "portworxVolume" .= v1PersistentVolumeSpecPortworxVolume+ , "quobyte" .= v1PersistentVolumeSpecQuobyte+ , "rbd" .= v1PersistentVolumeSpecRbd+ , "scaleIO" .= v1PersistentVolumeSpecScaleIo+ , "storageClassName" .= v1PersistentVolumeSpecStorageClassName+ , "storageos" .= v1PersistentVolumeSpecStorageos+ , "volumeAttributesClassName" .= v1PersistentVolumeSpecVolumeAttributesClassName+ , "volumeMode" .= v1PersistentVolumeSpecVolumeMode+ , "vsphereVolume" .= v1PersistentVolumeSpecVsphereVolume+ ]+++-- | Construct a value of type 'V1PersistentVolumeSpec' (by applying it's required fields, if any)+mkV1PersistentVolumeSpec+ :: V1PersistentVolumeSpec+mkV1PersistentVolumeSpec =+ V1PersistentVolumeSpec+ { v1PersistentVolumeSpecAccessModes = Nothing+ , v1PersistentVolumeSpecAwsElasticBlockStore = Nothing+ , v1PersistentVolumeSpecAzureDisk = Nothing+ , v1PersistentVolumeSpecAzureFile = Nothing+ , v1PersistentVolumeSpecCapacity = Nothing+ , v1PersistentVolumeSpecCephfs = Nothing+ , v1PersistentVolumeSpecCinder = Nothing+ , v1PersistentVolumeSpecClaimRef = Nothing+ , v1PersistentVolumeSpecCsi = Nothing+ , v1PersistentVolumeSpecFc = Nothing+ , v1PersistentVolumeSpecFlexVolume = Nothing+ , v1PersistentVolumeSpecFlocker = Nothing+ , v1PersistentVolumeSpecGcePersistentDisk = Nothing+ , v1PersistentVolumeSpecGlusterfs = Nothing+ , v1PersistentVolumeSpecHostPath = Nothing+ , v1PersistentVolumeSpecIscsi = Nothing+ , v1PersistentVolumeSpecLocal = Nothing+ , v1PersistentVolumeSpecMountOptions = Nothing+ , v1PersistentVolumeSpecNfs = Nothing+ , v1PersistentVolumeSpecNodeAffinity = Nothing+ , v1PersistentVolumeSpecPersistentVolumeReclaimPolicy = Nothing+ , v1PersistentVolumeSpecPhotonPersistentDisk = Nothing+ , v1PersistentVolumeSpecPortworxVolume = Nothing+ , v1PersistentVolumeSpecQuobyte = Nothing+ , v1PersistentVolumeSpecRbd = Nothing+ , v1PersistentVolumeSpecScaleIo = Nothing+ , v1PersistentVolumeSpecStorageClassName = Nothing+ , v1PersistentVolumeSpecStorageos = Nothing+ , v1PersistentVolumeSpecVolumeAttributesClassName = Nothing+ , v1PersistentVolumeSpecVolumeMode = Nothing+ , v1PersistentVolumeSpecVsphereVolume = Nothing+ }++-- ** V1PersistentVolumeStatus+-- | V1PersistentVolumeStatus+-- PersistentVolumeStatus is the current status of a persistent volume.+data V1PersistentVolumeStatus = V1PersistentVolumeStatus+ { v1PersistentVolumeStatusLastPhaseTransitionTime :: !(Maybe DateTime) -- ^ "lastPhaseTransitionTime" - lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions.+ , v1PersistentVolumeStatusMessage :: !(Maybe Text) -- ^ "message" - message is a human-readable message indicating details about why the volume is in this state.+ , v1PersistentVolumeStatusPhase :: !(Maybe Text) -- ^ "phase" - phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase+ , v1PersistentVolumeStatusReason :: !(Maybe Text) -- ^ "reason" - reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PersistentVolumeStatus+instance A.FromJSON V1PersistentVolumeStatus where+ parseJSON = A.withObject "V1PersistentVolumeStatus" $ \o ->+ V1PersistentVolumeStatus+ <$> (o .:? "lastPhaseTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "phase")+ <*> (o .:? "reason")++-- | ToJSON V1PersistentVolumeStatus+instance A.ToJSON V1PersistentVolumeStatus where+ toJSON V1PersistentVolumeStatus {..} =+ _omitNulls+ [ "lastPhaseTransitionTime" .= v1PersistentVolumeStatusLastPhaseTransitionTime+ , "message" .= v1PersistentVolumeStatusMessage+ , "phase" .= v1PersistentVolumeStatusPhase+ , "reason" .= v1PersistentVolumeStatusReason+ ]+++-- | Construct a value of type 'V1PersistentVolumeStatus' (by applying it's required fields, if any)+mkV1PersistentVolumeStatus+ :: V1PersistentVolumeStatus+mkV1PersistentVolumeStatus =+ V1PersistentVolumeStatus+ { v1PersistentVolumeStatusLastPhaseTransitionTime = Nothing+ , v1PersistentVolumeStatusMessage = Nothing+ , v1PersistentVolumeStatusPhase = Nothing+ , v1PersistentVolumeStatusReason = Nothing+ }++-- ** V1PhotonPersistentDiskVolumeSource+-- | V1PhotonPersistentDiskVolumeSource+-- Represents a Photon Controller persistent disk resource.+data V1PhotonPersistentDiskVolumeSource = V1PhotonPersistentDiskVolumeSource+ { v1PhotonPersistentDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.+ , v1PhotonPersistentDiskVolumeSourcePdId :: !(Text) -- ^ /Required/ "pdID" - pdID is the ID that identifies Photon Controller persistent disk+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PhotonPersistentDiskVolumeSource+instance A.FromJSON V1PhotonPersistentDiskVolumeSource where+ parseJSON = A.withObject "V1PhotonPersistentDiskVolumeSource" $ \o ->+ V1PhotonPersistentDiskVolumeSource+ <$> (o .:? "fsType")+ <*> (o .: "pdID")++-- | ToJSON V1PhotonPersistentDiskVolumeSource+instance A.ToJSON V1PhotonPersistentDiskVolumeSource where+ toJSON V1PhotonPersistentDiskVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1PhotonPersistentDiskVolumeSourceFsType+ , "pdID" .= v1PhotonPersistentDiskVolumeSourcePdId+ ]+++-- | Construct a value of type 'V1PhotonPersistentDiskVolumeSource' (by applying it's required fields, if any)+mkV1PhotonPersistentDiskVolumeSource+ :: Text -- ^ 'v1PhotonPersistentDiskVolumeSourcePdId': pdID is the ID that identifies Photon Controller persistent disk+ -> V1PhotonPersistentDiskVolumeSource+mkV1PhotonPersistentDiskVolumeSource v1PhotonPersistentDiskVolumeSourcePdId =+ V1PhotonPersistentDiskVolumeSource+ { v1PhotonPersistentDiskVolumeSourceFsType = Nothing+ , v1PhotonPersistentDiskVolumeSourcePdId+ }++-- ** V1Pod+-- | V1Pod+-- Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.+data V1Pod = V1Pod+ { v1PodApiVersion :: !(Maybe Text) -- ^ "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+ , v1PodKind :: !(Maybe Text) -- ^ "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+ , v1PodMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PodSpec :: !(Maybe V1PodSpec) -- ^ "spec"+ , v1PodStatus :: !(Maybe V1PodStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Pod+instance A.FromJSON V1Pod where+ parseJSON = A.withObject "V1Pod" $ \o ->+ V1Pod+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1Pod+instance A.ToJSON V1Pod where+ toJSON V1Pod {..} =+ _omitNulls+ [ "apiVersion" .= v1PodApiVersion+ , "kind" .= v1PodKind+ , "metadata" .= v1PodMetadata+ , "spec" .= v1PodSpec+ , "status" .= v1PodStatus+ ]+++-- | Construct a value of type 'V1Pod' (by applying it's required fields, if any)+mkV1Pod+ :: V1Pod+mkV1Pod =+ V1Pod+ { v1PodApiVersion = Nothing+ , v1PodKind = Nothing+ , v1PodMetadata = Nothing+ , v1PodSpec = Nothing+ , v1PodStatus = Nothing+ }++-- ** V1PodAffinity+-- | V1PodAffinity+-- Pod affinity is a group of inter pod affinity scheduling rules.+data V1PodAffinity = V1PodAffinity+ { v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1WeightedPodAffinityTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.+ , v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PodAffinityTerm]) -- ^ "requiredDuringSchedulingIgnoredDuringExecution" - If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodAffinity+instance A.FromJSON V1PodAffinity where+ parseJSON = A.withObject "V1PodAffinity" $ \o ->+ V1PodAffinity+ <$> (o .:? "preferredDuringSchedulingIgnoredDuringExecution")+ <*> (o .:? "requiredDuringSchedulingIgnoredDuringExecution")++-- | ToJSON V1PodAffinity+instance A.ToJSON V1PodAffinity where+ toJSON V1PodAffinity {..} =+ _omitNulls+ [ "preferredDuringSchedulingIgnoredDuringExecution" .= v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution+ , "requiredDuringSchedulingIgnoredDuringExecution" .= v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution+ ]+++-- | Construct a value of type 'V1PodAffinity' (by applying it's required fields, if any)+mkV1PodAffinity+ :: V1PodAffinity+mkV1PodAffinity =+ V1PodAffinity+ { v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution = Nothing+ , v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution = Nothing+ }++-- ** V1PodAffinityTerm+-- | V1PodAffinityTerm+-- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running+data V1PodAffinityTerm = V1PodAffinityTerm+ { v1PodAffinityTermLabelSelector :: !(Maybe V1LabelSelector) -- ^ "labelSelector"+ , v1PodAffinityTermMatchLabelKeys :: !(Maybe [Text]) -- ^ "matchLabelKeys" - MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.+ , v1PodAffinityTermMismatchLabelKeys :: !(Maybe [Text]) -- ^ "mismatchLabelKeys" - MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.+ , v1PodAffinityTermNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"+ , v1PodAffinityTermNamespaces :: !(Maybe [Text]) -- ^ "namespaces" - namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".+ , v1PodAffinityTermTopologyKey :: !(Text) -- ^ /Required/ "topologyKey" - This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodAffinityTerm+instance A.FromJSON V1PodAffinityTerm where+ parseJSON = A.withObject "V1PodAffinityTerm" $ \o ->+ V1PodAffinityTerm+ <$> (o .:? "labelSelector")+ <*> (o .:? "matchLabelKeys")+ <*> (o .:? "mismatchLabelKeys")+ <*> (o .:? "namespaceSelector")+ <*> (o .:? "namespaces")+ <*> (o .: "topologyKey")++-- | ToJSON V1PodAffinityTerm+instance A.ToJSON V1PodAffinityTerm where+ toJSON V1PodAffinityTerm {..} =+ _omitNulls+ [ "labelSelector" .= v1PodAffinityTermLabelSelector+ , "matchLabelKeys" .= v1PodAffinityTermMatchLabelKeys+ , "mismatchLabelKeys" .= v1PodAffinityTermMismatchLabelKeys+ , "namespaceSelector" .= v1PodAffinityTermNamespaceSelector+ , "namespaces" .= v1PodAffinityTermNamespaces+ , "topologyKey" .= v1PodAffinityTermTopologyKey+ ]+++-- | Construct a value of type 'V1PodAffinityTerm' (by applying it's required fields, if any)+mkV1PodAffinityTerm+ :: Text -- ^ 'v1PodAffinityTermTopologyKey': This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.+ -> V1PodAffinityTerm+mkV1PodAffinityTerm v1PodAffinityTermTopologyKey =+ V1PodAffinityTerm+ { v1PodAffinityTermLabelSelector = Nothing+ , v1PodAffinityTermMatchLabelKeys = Nothing+ , v1PodAffinityTermMismatchLabelKeys = Nothing+ , v1PodAffinityTermNamespaceSelector = Nothing+ , v1PodAffinityTermNamespaces = Nothing+ , v1PodAffinityTermTopologyKey+ }++-- ** V1PodAntiAffinity+-- | V1PodAntiAffinity+-- Pod anti affinity is a group of inter pod anti affinity scheduling rules.+data V1PodAntiAffinity = V1PodAntiAffinity+ { v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1WeightedPodAffinityTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting \"weight\" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.+ , v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PodAffinityTerm]) -- ^ "requiredDuringSchedulingIgnoredDuringExecution" - If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodAntiAffinity+instance A.FromJSON V1PodAntiAffinity where+ parseJSON = A.withObject "V1PodAntiAffinity" $ \o ->+ V1PodAntiAffinity+ <$> (o .:? "preferredDuringSchedulingIgnoredDuringExecution")+ <*> (o .:? "requiredDuringSchedulingIgnoredDuringExecution")++-- | ToJSON V1PodAntiAffinity+instance A.ToJSON V1PodAntiAffinity where+ toJSON V1PodAntiAffinity {..} =+ _omitNulls+ [ "preferredDuringSchedulingIgnoredDuringExecution" .= v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution+ , "requiredDuringSchedulingIgnoredDuringExecution" .= v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution+ ]+++-- | Construct a value of type 'V1PodAntiAffinity' (by applying it's required fields, if any)+mkV1PodAntiAffinity+ :: V1PodAntiAffinity+mkV1PodAntiAffinity =+ V1PodAntiAffinity+ { v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution = Nothing+ , v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution = Nothing+ }++-- ** V1PodCertificateProjection+-- | V1PodCertificateProjection+-- PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem.+data V1PodCertificateProjection = V1PodCertificateProjection+ { v1PodCertificateProjectionCertificateChainPath :: !(Maybe Text) -- ^ "certificateChainPath" - Write the certificate chain at this path in the projected volume. Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.+ , v1PodCertificateProjectionCredentialBundlePath :: !(Maybe Text) -- ^ "credentialBundlePath" - Write the credential bundle at this path in the projected volume. The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key.+ , v1PodCertificateProjectionKeyPath :: !(Maybe Text) -- ^ "keyPath" - Write the key at this path in the projected volume. Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.+ , v1PodCertificateProjectionKeyType :: !(Text) -- ^ /Required/ "keyType" - The type of keypair Kubelet will generate for the pod. Valid values are \"RSA3072\", \"RSA4096\", \"ECDSAP256\", \"ECDSAP384\", \"ECDSAP521\", and \"ED25519\".+ , v1PodCertificateProjectionMaxExpirationSeconds :: !(Maybe Int) -- ^ "maxExpirationSeconds" - maxExpirationSeconds is the maximum lifetime permitted for the certificate. Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.+ , v1PodCertificateProjectionSignerName :: !(Text) -- ^ /Required/ "signerName" - Kubelet's generated CSRs will be addressed to this signer.+ , v1PodCertificateProjectionUserAnnotations :: !(Maybe (Map.Map String Text)) -- ^ "userAnnotations" - userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodCertificateProjection+instance A.FromJSON V1PodCertificateProjection where+ parseJSON = A.withObject "V1PodCertificateProjection" $ \o ->+ V1PodCertificateProjection+ <$> (o .:? "certificateChainPath")+ <*> (o .:? "credentialBundlePath")+ <*> (o .:? "keyPath")+ <*> (o .: "keyType")+ <*> (o .:? "maxExpirationSeconds")+ <*> (o .: "signerName")+ <*> (o .:? "userAnnotations")++-- | ToJSON V1PodCertificateProjection+instance A.ToJSON V1PodCertificateProjection where+ toJSON V1PodCertificateProjection {..} =+ _omitNulls+ [ "certificateChainPath" .= v1PodCertificateProjectionCertificateChainPath+ , "credentialBundlePath" .= v1PodCertificateProjectionCredentialBundlePath+ , "keyPath" .= v1PodCertificateProjectionKeyPath+ , "keyType" .= v1PodCertificateProjectionKeyType+ , "maxExpirationSeconds" .= v1PodCertificateProjectionMaxExpirationSeconds+ , "signerName" .= v1PodCertificateProjectionSignerName+ , "userAnnotations" .= v1PodCertificateProjectionUserAnnotations+ ]+++-- | Construct a value of type 'V1PodCertificateProjection' (by applying it's required fields, if any)+mkV1PodCertificateProjection+ :: Text -- ^ 'v1PodCertificateProjectionKeyType': The type of keypair Kubelet will generate for the pod. Valid values are \"RSA3072\", \"RSA4096\", \"ECDSAP256\", \"ECDSAP384\", \"ECDSAP521\", and \"ED25519\".+ -> Text -- ^ 'v1PodCertificateProjectionSignerName': Kubelet's generated CSRs will be addressed to this signer.+ -> V1PodCertificateProjection+mkV1PodCertificateProjection v1PodCertificateProjectionKeyType v1PodCertificateProjectionSignerName =+ V1PodCertificateProjection+ { v1PodCertificateProjectionCertificateChainPath = Nothing+ , v1PodCertificateProjectionCredentialBundlePath = Nothing+ , v1PodCertificateProjectionKeyPath = Nothing+ , v1PodCertificateProjectionKeyType+ , v1PodCertificateProjectionMaxExpirationSeconds = Nothing+ , v1PodCertificateProjectionSignerName+ , v1PodCertificateProjectionUserAnnotations = Nothing+ }++-- ** V1PodCondition+-- | V1PodCondition+-- PodCondition contains details for the current condition of this pod.+data V1PodCondition = V1PodCondition+ { v1PodConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - Last time we probed the condition.+ , v1PodConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.+ , v1PodConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.+ , v1PodConditionObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field.+ , v1PodConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition's last transition.+ , v1PodConditionStatus :: !(Text) -- ^ /Required/ "status" - Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions+ , v1PodConditionType :: !(Text) -- ^ /Required/ "type" - Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodCondition+instance A.FromJSON V1PodCondition where+ parseJSON = A.withObject "V1PodCondition" $ \o ->+ V1PodCondition+ <$> (o .:? "lastProbeTime")+ <*> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1PodCondition+instance A.ToJSON V1PodCondition where+ toJSON V1PodCondition {..} =+ _omitNulls+ [ "lastProbeTime" .= v1PodConditionLastProbeTime+ , "lastTransitionTime" .= v1PodConditionLastTransitionTime+ , "message" .= v1PodConditionMessage+ , "observedGeneration" .= v1PodConditionObservedGeneration+ , "reason" .= v1PodConditionReason+ , "status" .= v1PodConditionStatus+ , "type" .= v1PodConditionType+ ]+++-- | Construct a value of type 'V1PodCondition' (by applying it's required fields, if any)+mkV1PodCondition+ :: Text -- ^ 'v1PodConditionStatus': Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions+ -> Text -- ^ 'v1PodConditionType': Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions+ -> V1PodCondition+mkV1PodCondition v1PodConditionStatus v1PodConditionType =+ V1PodCondition+ { v1PodConditionLastProbeTime = Nothing+ , v1PodConditionLastTransitionTime = Nothing+ , v1PodConditionMessage = Nothing+ , v1PodConditionObservedGeneration = Nothing+ , v1PodConditionReason = Nothing+ , v1PodConditionStatus+ , v1PodConditionType+ }++-- ** V1PodDNSConfig+-- | V1PodDNSConfig+-- PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.+data V1PodDNSConfig = V1PodDNSConfig+ { v1PodDNSConfigNameservers :: !(Maybe [Text]) -- ^ "nameservers" - A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.+ , v1PodDNSConfigOptions :: !(Maybe [V1PodDNSConfigOption]) -- ^ "options" - A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.+ , v1PodDNSConfigSearches :: !(Maybe [Text]) -- ^ "searches" - A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodDNSConfig+instance A.FromJSON V1PodDNSConfig where+ parseJSON = A.withObject "V1PodDNSConfig" $ \o ->+ V1PodDNSConfig+ <$> (o .:? "nameservers")+ <*> (o .:? "options")+ <*> (o .:? "searches")++-- | ToJSON V1PodDNSConfig+instance A.ToJSON V1PodDNSConfig where+ toJSON V1PodDNSConfig {..} =+ _omitNulls+ [ "nameservers" .= v1PodDNSConfigNameservers+ , "options" .= v1PodDNSConfigOptions+ , "searches" .= v1PodDNSConfigSearches+ ]+++-- | Construct a value of type 'V1PodDNSConfig' (by applying it's required fields, if any)+mkV1PodDNSConfig+ :: V1PodDNSConfig+mkV1PodDNSConfig =+ V1PodDNSConfig+ { v1PodDNSConfigNameservers = Nothing+ , v1PodDNSConfigOptions = Nothing+ , v1PodDNSConfigSearches = Nothing+ }++-- ** V1PodDNSConfigOption+-- | V1PodDNSConfigOption+-- PodDNSConfigOption defines DNS resolver options of a pod.+data V1PodDNSConfigOption = V1PodDNSConfigOption+ { v1PodDNSConfigOptionName :: !(Maybe Text) -- ^ "name" - Name is this DNS resolver option's name. Required.+ , v1PodDNSConfigOptionValue :: !(Maybe Text) -- ^ "value" - Value is this DNS resolver option's value.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodDNSConfigOption+instance A.FromJSON V1PodDNSConfigOption where+ parseJSON = A.withObject "V1PodDNSConfigOption" $ \o ->+ V1PodDNSConfigOption+ <$> (o .:? "name")+ <*> (o .:? "value")++-- | ToJSON V1PodDNSConfigOption+instance A.ToJSON V1PodDNSConfigOption where+ toJSON V1PodDNSConfigOption {..} =+ _omitNulls+ [ "name" .= v1PodDNSConfigOptionName+ , "value" .= v1PodDNSConfigOptionValue+ ]+++-- | Construct a value of type 'V1PodDNSConfigOption' (by applying it's required fields, if any)+mkV1PodDNSConfigOption+ :: V1PodDNSConfigOption+mkV1PodDNSConfigOption =+ V1PodDNSConfigOption+ { v1PodDNSConfigOptionName = Nothing+ , v1PodDNSConfigOptionValue = Nothing+ }++-- ** V1PodDisruptionBudget+-- | V1PodDisruptionBudget+-- PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods+data V1PodDisruptionBudget = V1PodDisruptionBudget+ { v1PodDisruptionBudgetApiVersion :: !(Maybe Text) -- ^ "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+ , v1PodDisruptionBudgetKind :: !(Maybe Text) -- ^ "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+ , v1PodDisruptionBudgetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PodDisruptionBudgetSpec :: !(Maybe V1PodDisruptionBudgetSpec) -- ^ "spec"+ , v1PodDisruptionBudgetStatus :: !(Maybe V1PodDisruptionBudgetStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodDisruptionBudget+instance A.FromJSON V1PodDisruptionBudget where+ parseJSON = A.withObject "V1PodDisruptionBudget" $ \o ->+ V1PodDisruptionBudget+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1PodDisruptionBudget+instance A.ToJSON V1PodDisruptionBudget where+ toJSON V1PodDisruptionBudget {..} =+ _omitNulls+ [ "apiVersion" .= v1PodDisruptionBudgetApiVersion+ , "kind" .= v1PodDisruptionBudgetKind+ , "metadata" .= v1PodDisruptionBudgetMetadata+ , "spec" .= v1PodDisruptionBudgetSpec+ , "status" .= v1PodDisruptionBudgetStatus+ ]+++-- | Construct a value of type 'V1PodDisruptionBudget' (by applying it's required fields, if any)+mkV1PodDisruptionBudget+ :: V1PodDisruptionBudget+mkV1PodDisruptionBudget =+ V1PodDisruptionBudget+ { v1PodDisruptionBudgetApiVersion = Nothing+ , v1PodDisruptionBudgetKind = Nothing+ , v1PodDisruptionBudgetMetadata = Nothing+ , v1PodDisruptionBudgetSpec = Nothing+ , v1PodDisruptionBudgetStatus = Nothing+ }++-- ** V1PodDisruptionBudgetList+-- | V1PodDisruptionBudgetList+-- PodDisruptionBudgetList is a collection of PodDisruptionBudgets.+data V1PodDisruptionBudgetList = V1PodDisruptionBudgetList+ { v1PodDisruptionBudgetListApiVersion :: !(Maybe Text) -- ^ "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+ , v1PodDisruptionBudgetListItems :: !([V1PodDisruptionBudget]) -- ^ /Required/ "items" - Items is a list of PodDisruptionBudgets+ , v1PodDisruptionBudgetListKind :: !(Maybe Text) -- ^ "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+ , v1PodDisruptionBudgetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodDisruptionBudgetList+instance A.FromJSON V1PodDisruptionBudgetList where+ parseJSON = A.withObject "V1PodDisruptionBudgetList" $ \o ->+ V1PodDisruptionBudgetList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1PodDisruptionBudgetList+instance A.ToJSON V1PodDisruptionBudgetList where+ toJSON V1PodDisruptionBudgetList {..} =+ _omitNulls+ [ "apiVersion" .= v1PodDisruptionBudgetListApiVersion+ , "items" .= v1PodDisruptionBudgetListItems+ , "kind" .= v1PodDisruptionBudgetListKind+ , "metadata" .= v1PodDisruptionBudgetListMetadata+ ]+++-- | Construct a value of type 'V1PodDisruptionBudgetList' (by applying it's required fields, if any)+mkV1PodDisruptionBudgetList+ :: [V1PodDisruptionBudget] -- ^ 'v1PodDisruptionBudgetListItems': Items is a list of PodDisruptionBudgets+ -> V1PodDisruptionBudgetList+mkV1PodDisruptionBudgetList v1PodDisruptionBudgetListItems =+ V1PodDisruptionBudgetList+ { v1PodDisruptionBudgetListApiVersion = Nothing+ , v1PodDisruptionBudgetListItems+ , v1PodDisruptionBudgetListKind = Nothing+ , v1PodDisruptionBudgetListMetadata = Nothing+ }++-- ** V1PodDisruptionBudgetSpec+-- | V1PodDisruptionBudgetSpec+-- PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.+data V1PodDisruptionBudgetSpec = V1PodDisruptionBudgetSpec+ { v1PodDisruptionBudgetSpecMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"+ , v1PodDisruptionBudgetSpecMinAvailable :: !(Maybe IntOrString) -- ^ "minAvailable"+ , v1PodDisruptionBudgetSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"+ , v1PodDisruptionBudgetSpecUnhealthyPodEvictionPolicy :: !(Maybe Text) -- ^ "unhealthyPodEvictionPolicy" - UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\"Ready\",status=\"True\". Valid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy. IfHealthyBudget policy means that running pods (status.phase=\"Running\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction. AlwaysAllow policy means that all running pods (status.phase=\"Running\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction. Additional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodDisruptionBudgetSpec+instance A.FromJSON V1PodDisruptionBudgetSpec where+ parseJSON = A.withObject "V1PodDisruptionBudgetSpec" $ \o ->+ V1PodDisruptionBudgetSpec+ <$> (o .:? "maxUnavailable")+ <*> (o .:? "minAvailable")+ <*> (o .:? "selector")+ <*> (o .:? "unhealthyPodEvictionPolicy")++-- | ToJSON V1PodDisruptionBudgetSpec+instance A.ToJSON V1PodDisruptionBudgetSpec where+ toJSON V1PodDisruptionBudgetSpec {..} =+ _omitNulls+ [ "maxUnavailable" .= v1PodDisruptionBudgetSpecMaxUnavailable+ , "minAvailable" .= v1PodDisruptionBudgetSpecMinAvailable+ , "selector" .= v1PodDisruptionBudgetSpecSelector+ , "unhealthyPodEvictionPolicy" .= v1PodDisruptionBudgetSpecUnhealthyPodEvictionPolicy+ ]+++-- | Construct a value of type 'V1PodDisruptionBudgetSpec' (by applying it's required fields, if any)+mkV1PodDisruptionBudgetSpec+ :: V1PodDisruptionBudgetSpec+mkV1PodDisruptionBudgetSpec =+ V1PodDisruptionBudgetSpec+ { v1PodDisruptionBudgetSpecMaxUnavailable = Nothing+ , v1PodDisruptionBudgetSpecMinAvailable = Nothing+ , v1PodDisruptionBudgetSpecSelector = Nothing+ , v1PodDisruptionBudgetSpecUnhealthyPodEvictionPolicy = Nothing+ }++-- ** V1PodDisruptionBudgetStatus+-- | V1PodDisruptionBudgetStatus+-- PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.+data V1PodDisruptionBudgetStatus = V1PodDisruptionBudgetStatus+ { v1PodDisruptionBudgetStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute the number of allowed disruptions. Therefore no disruptions are allowed and the status of the condition will be False. - InsufficientPods: The number of pods are either at or below the number required by the PodDisruptionBudget. No disruptions are allowed and the status of the condition will be False. - SufficientPods: There are more pods than required by the PodDisruptionBudget. The condition will be True, and the number of allowed disruptions are provided by the disruptionsAllowed property.+ , v1PodDisruptionBudgetStatusCurrentHealthy :: !(Int) -- ^ /Required/ "currentHealthy" - current number of healthy pods+ , v1PodDisruptionBudgetStatusDesiredHealthy :: !(Int) -- ^ /Required/ "desiredHealthy" - minimum desired number of healthy pods+ , v1PodDisruptionBudgetStatusDisruptedPods :: !(Maybe (Map.Map String DateTime)) -- ^ "disruptedPods" - DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.+ , v1PodDisruptionBudgetStatusDisruptionsAllowed :: !(Int) -- ^ /Required/ "disruptionsAllowed" - Number of pod disruptions that are currently allowed.+ , v1PodDisruptionBudgetStatusExpectedPods :: !(Int) -- ^ /Required/ "expectedPods" - total number of pods counted by this disruption budget+ , v1PodDisruptionBudgetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodDisruptionBudgetStatus+instance A.FromJSON V1PodDisruptionBudgetStatus where+ parseJSON = A.withObject "V1PodDisruptionBudgetStatus" $ \o ->+ V1PodDisruptionBudgetStatus+ <$> (o .:? "conditions")+ <*> (o .: "currentHealthy")+ <*> (o .: "desiredHealthy")+ <*> (o .:? "disruptedPods")+ <*> (o .: "disruptionsAllowed")+ <*> (o .: "expectedPods")+ <*> (o .:? "observedGeneration")++-- | ToJSON V1PodDisruptionBudgetStatus+instance A.ToJSON V1PodDisruptionBudgetStatus where+ toJSON V1PodDisruptionBudgetStatus {..} =+ _omitNulls+ [ "conditions" .= v1PodDisruptionBudgetStatusConditions+ , "currentHealthy" .= v1PodDisruptionBudgetStatusCurrentHealthy+ , "desiredHealthy" .= v1PodDisruptionBudgetStatusDesiredHealthy+ , "disruptedPods" .= v1PodDisruptionBudgetStatusDisruptedPods+ , "disruptionsAllowed" .= v1PodDisruptionBudgetStatusDisruptionsAllowed+ , "expectedPods" .= v1PodDisruptionBudgetStatusExpectedPods+ , "observedGeneration" .= v1PodDisruptionBudgetStatusObservedGeneration+ ]+++-- | Construct a value of type 'V1PodDisruptionBudgetStatus' (by applying it's required fields, if any)+mkV1PodDisruptionBudgetStatus+ :: Int -- ^ 'v1PodDisruptionBudgetStatusCurrentHealthy': current number of healthy pods+ -> Int -- ^ 'v1PodDisruptionBudgetStatusDesiredHealthy': minimum desired number of healthy pods+ -> Int -- ^ 'v1PodDisruptionBudgetStatusDisruptionsAllowed': Number of pod disruptions that are currently allowed.+ -> Int -- ^ 'v1PodDisruptionBudgetStatusExpectedPods': total number of pods counted by this disruption budget+ -> V1PodDisruptionBudgetStatus+mkV1PodDisruptionBudgetStatus v1PodDisruptionBudgetStatusCurrentHealthy v1PodDisruptionBudgetStatusDesiredHealthy v1PodDisruptionBudgetStatusDisruptionsAllowed v1PodDisruptionBudgetStatusExpectedPods =+ V1PodDisruptionBudgetStatus+ { v1PodDisruptionBudgetStatusConditions = Nothing+ , v1PodDisruptionBudgetStatusCurrentHealthy+ , v1PodDisruptionBudgetStatusDesiredHealthy+ , v1PodDisruptionBudgetStatusDisruptedPods = Nothing+ , v1PodDisruptionBudgetStatusDisruptionsAllowed+ , v1PodDisruptionBudgetStatusExpectedPods+ , v1PodDisruptionBudgetStatusObservedGeneration = Nothing+ }++-- ** V1PodExtendedResourceClaimStatus+-- | V1PodExtendedResourceClaimStatus+-- PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler.+data V1PodExtendedResourceClaimStatus = V1PodExtendedResourceClaimStatus+ { v1PodExtendedResourceClaimStatusRequestMappings :: !([V1ContainerExtendedResourceRequest]) -- ^ /Required/ "requestMappings" - RequestMappings identifies the mapping of <container, extended resource backed by DRA> to device request in the generated ResourceClaim.+ , v1PodExtendedResourceClaimStatusResourceClaimName :: !(Text) -- ^ /Required/ "resourceClaimName" - ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodExtendedResourceClaimStatus+instance A.FromJSON V1PodExtendedResourceClaimStatus where+ parseJSON = A.withObject "V1PodExtendedResourceClaimStatus" $ \o ->+ V1PodExtendedResourceClaimStatus+ <$> (o .: "requestMappings")+ <*> (o .: "resourceClaimName")++-- | ToJSON V1PodExtendedResourceClaimStatus+instance A.ToJSON V1PodExtendedResourceClaimStatus where+ toJSON V1PodExtendedResourceClaimStatus {..} =+ _omitNulls+ [ "requestMappings" .= v1PodExtendedResourceClaimStatusRequestMappings+ , "resourceClaimName" .= v1PodExtendedResourceClaimStatusResourceClaimName+ ]+++-- | Construct a value of type 'V1PodExtendedResourceClaimStatus' (by applying it's required fields, if any)+mkV1PodExtendedResourceClaimStatus+ :: [V1ContainerExtendedResourceRequest] -- ^ 'v1PodExtendedResourceClaimStatusRequestMappings': RequestMappings identifies the mapping of <container, extended resource backed by DRA> to device request in the generated ResourceClaim.+ -> Text -- ^ 'v1PodExtendedResourceClaimStatusResourceClaimName': ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod.+ -> V1PodExtendedResourceClaimStatus+mkV1PodExtendedResourceClaimStatus v1PodExtendedResourceClaimStatusRequestMappings v1PodExtendedResourceClaimStatusResourceClaimName =+ V1PodExtendedResourceClaimStatus+ { v1PodExtendedResourceClaimStatusRequestMappings+ , v1PodExtendedResourceClaimStatusResourceClaimName+ }++-- ** V1PodFailurePolicy+-- | V1PodFailurePolicy+-- PodFailurePolicy describes how failed pods influence the backoffLimit.+data V1PodFailurePolicy = V1PodFailurePolicy+ { v1PodFailurePolicyRules :: !([V1PodFailurePolicyRule]) -- ^ /Required/ "rules" - A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodFailurePolicy+instance A.FromJSON V1PodFailurePolicy where+ parseJSON = A.withObject "V1PodFailurePolicy" $ \o ->+ V1PodFailurePolicy+ <$> (o .: "rules")++-- | ToJSON V1PodFailurePolicy+instance A.ToJSON V1PodFailurePolicy where+ toJSON V1PodFailurePolicy {..} =+ _omitNulls+ [ "rules" .= v1PodFailurePolicyRules+ ]+++-- | Construct a value of type 'V1PodFailurePolicy' (by applying it's required fields, if any)+mkV1PodFailurePolicy+ :: [V1PodFailurePolicyRule] -- ^ 'v1PodFailurePolicyRules': A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.+ -> V1PodFailurePolicy+mkV1PodFailurePolicy v1PodFailurePolicyRules =+ V1PodFailurePolicy+ { v1PodFailurePolicyRules+ }++-- ** V1PodFailurePolicyOnExitCodesRequirement+-- | V1PodFailurePolicyOnExitCodesRequirement+-- PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.+data V1PodFailurePolicyOnExitCodesRequirement = V1PodFailurePolicyOnExitCodesRequirement+ { v1PodFailurePolicyOnExitCodesRequirementContainerName :: !(Maybe Text) -- ^ "containerName" - Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template.+ , v1PodFailurePolicyOnExitCodesRequirementOperator :: !(Text) -- ^ /Required/ "operator" - Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. - NotIn: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is not in the set of specified values. Additional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.+ , v1PodFailurePolicyOnExitCodesRequirementValues :: !([Int]) -- ^ /Required/ "values" - Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodFailurePolicyOnExitCodesRequirement+instance A.FromJSON V1PodFailurePolicyOnExitCodesRequirement where+ parseJSON = A.withObject "V1PodFailurePolicyOnExitCodesRequirement" $ \o ->+ V1PodFailurePolicyOnExitCodesRequirement+ <$> (o .:? "containerName")+ <*> (o .: "operator")+ <*> (o .: "values")++-- | ToJSON V1PodFailurePolicyOnExitCodesRequirement+instance A.ToJSON V1PodFailurePolicyOnExitCodesRequirement where+ toJSON V1PodFailurePolicyOnExitCodesRequirement {..} =+ _omitNulls+ [ "containerName" .= v1PodFailurePolicyOnExitCodesRequirementContainerName+ , "operator" .= v1PodFailurePolicyOnExitCodesRequirementOperator+ , "values" .= v1PodFailurePolicyOnExitCodesRequirementValues+ ]+++-- | Construct a value of type 'V1PodFailurePolicyOnExitCodesRequirement' (by applying it's required fields, if any)+mkV1PodFailurePolicyOnExitCodesRequirement+ :: Text -- ^ 'v1PodFailurePolicyOnExitCodesRequirementOperator': Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. - NotIn: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is not in the set of specified values. Additional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.+ -> [Int] -- ^ 'v1PodFailurePolicyOnExitCodesRequirementValues': Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.+ -> V1PodFailurePolicyOnExitCodesRequirement+mkV1PodFailurePolicyOnExitCodesRequirement v1PodFailurePolicyOnExitCodesRequirementOperator v1PodFailurePolicyOnExitCodesRequirementValues =+ V1PodFailurePolicyOnExitCodesRequirement+ { v1PodFailurePolicyOnExitCodesRequirementContainerName = Nothing+ , v1PodFailurePolicyOnExitCodesRequirementOperator+ , v1PodFailurePolicyOnExitCodesRequirementValues+ }++-- ** V1PodFailurePolicyOnPodConditionsPattern+-- | V1PodFailurePolicyOnPodConditionsPattern+-- PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.+data V1PodFailurePolicyOnPodConditionsPattern = V1PodFailurePolicyOnPodConditionsPattern+ { v1PodFailurePolicyOnPodConditionsPatternStatus :: !(Maybe Text) -- ^ "status" - Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.+ , v1PodFailurePolicyOnPodConditionsPatternType :: !(Text) -- ^ /Required/ "type" - Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodFailurePolicyOnPodConditionsPattern+instance A.FromJSON V1PodFailurePolicyOnPodConditionsPattern where+ parseJSON = A.withObject "V1PodFailurePolicyOnPodConditionsPattern" $ \o ->+ V1PodFailurePolicyOnPodConditionsPattern+ <$> (o .:? "status")+ <*> (o .: "type")++-- | ToJSON V1PodFailurePolicyOnPodConditionsPattern+instance A.ToJSON V1PodFailurePolicyOnPodConditionsPattern where+ toJSON V1PodFailurePolicyOnPodConditionsPattern {..} =+ _omitNulls+ [ "status" .= v1PodFailurePolicyOnPodConditionsPatternStatus+ , "type" .= v1PodFailurePolicyOnPodConditionsPatternType+ ]+++-- | Construct a value of type 'V1PodFailurePolicyOnPodConditionsPattern' (by applying it's required fields, if any)+mkV1PodFailurePolicyOnPodConditionsPattern+ :: Text -- ^ 'v1PodFailurePolicyOnPodConditionsPatternType': Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.+ -> V1PodFailurePolicyOnPodConditionsPattern+mkV1PodFailurePolicyOnPodConditionsPattern v1PodFailurePolicyOnPodConditionsPatternType =+ V1PodFailurePolicyOnPodConditionsPattern+ { v1PodFailurePolicyOnPodConditionsPatternStatus = Nothing+ , v1PodFailurePolicyOnPodConditionsPatternType+ }++-- ** V1PodFailurePolicyRule+-- | V1PodFailurePolicyRule+-- PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of onExitCodes and onPodConditions, but not both, can be used in each rule.+data V1PodFailurePolicyRule = V1PodFailurePolicyRule+ { v1PodFailurePolicyRuleAction :: !(Text) -- ^ /Required/ "action" - Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will not be restarted. - Ignore: indicates that the counter towards the .backoffLimit is not incremented and a replacement pod is created. - Count: indicates that the pod is handled in the default way - the counter towards the .backoffLimit is incremented. Additional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.+ , v1PodFailurePolicyRuleOnExitCodes :: !(Maybe V1PodFailurePolicyOnExitCodesRequirement) -- ^ "onExitCodes"+ , v1PodFailurePolicyRuleOnPodConditions :: !(Maybe [V1PodFailurePolicyOnPodConditionsPattern]) -- ^ "onPodConditions" - Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodFailurePolicyRule+instance A.FromJSON V1PodFailurePolicyRule where+ parseJSON = A.withObject "V1PodFailurePolicyRule" $ \o ->+ V1PodFailurePolicyRule+ <$> (o .: "action")+ <*> (o .:? "onExitCodes")+ <*> (o .:? "onPodConditions")++-- | ToJSON V1PodFailurePolicyRule+instance A.ToJSON V1PodFailurePolicyRule where+ toJSON V1PodFailurePolicyRule {..} =+ _omitNulls+ [ "action" .= v1PodFailurePolicyRuleAction+ , "onExitCodes" .= v1PodFailurePolicyRuleOnExitCodes+ , "onPodConditions" .= v1PodFailurePolicyRuleOnPodConditions+ ]+++-- | Construct a value of type 'V1PodFailurePolicyRule' (by applying it's required fields, if any)+mkV1PodFailurePolicyRule+ :: Text -- ^ 'v1PodFailurePolicyRuleAction': Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will not be restarted. - Ignore: indicates that the counter towards the .backoffLimit is not incremented and a replacement pod is created. - Count: indicates that the pod is handled in the default way - the counter towards the .backoffLimit is incremented. Additional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.+ -> V1PodFailurePolicyRule+mkV1PodFailurePolicyRule v1PodFailurePolicyRuleAction =+ V1PodFailurePolicyRule+ { v1PodFailurePolicyRuleAction+ , v1PodFailurePolicyRuleOnExitCodes = Nothing+ , v1PodFailurePolicyRuleOnPodConditions = Nothing+ }++-- ** V1PodIP+-- | V1PodIP+-- PodIP represents a single IP address allocated to the pod.+data V1PodIP = V1PodIP+ { v1PodIPIp :: !(Text) -- ^ /Required/ "ip" - IP is the IP address assigned to the pod+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodIP+instance A.FromJSON V1PodIP where+ parseJSON = A.withObject "V1PodIP" $ \o ->+ V1PodIP+ <$> (o .: "ip")++-- | ToJSON V1PodIP+instance A.ToJSON V1PodIP where+ toJSON V1PodIP {..} =+ _omitNulls+ [ "ip" .= v1PodIPIp+ ]+++-- | Construct a value of type 'V1PodIP' (by applying it's required fields, if any)+mkV1PodIP+ :: Text -- ^ 'v1PodIPIp': IP is the IP address assigned to the pod+ -> V1PodIP+mkV1PodIP v1PodIPIp =+ V1PodIP+ { v1PodIPIp+ }++-- ** V1PodList+-- | V1PodList+-- PodList is a list of Pods.+data V1PodList = V1PodList+ { v1PodListApiVersion :: !(Maybe Text) -- ^ "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+ , v1PodListItems :: !([V1Pod]) -- ^ /Required/ "items" - List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md+ , v1PodListKind :: !(Maybe Text) -- ^ "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+ , v1PodListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodList+instance A.FromJSON V1PodList where+ parseJSON = A.withObject "V1PodList" $ \o ->+ V1PodList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1PodList+instance A.ToJSON V1PodList where+ toJSON V1PodList {..} =+ _omitNulls+ [ "apiVersion" .= v1PodListApiVersion+ , "items" .= v1PodListItems+ , "kind" .= v1PodListKind+ , "metadata" .= v1PodListMetadata+ ]+++-- | Construct a value of type 'V1PodList' (by applying it's required fields, if any)+mkV1PodList+ :: [V1Pod] -- ^ 'v1PodListItems': List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md+ -> V1PodList+mkV1PodList v1PodListItems =+ V1PodList+ { v1PodListApiVersion = Nothing+ , v1PodListItems+ , v1PodListKind = Nothing+ , v1PodListMetadata = Nothing+ }++-- ** V1PodOS+-- | V1PodOS+-- PodOS defines the OS parameters of a pod.+data V1PodOS = V1PodOS+ { v1PodOSName :: !(Text) -- ^ /Required/ "name" - Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodOS+instance A.FromJSON V1PodOS where+ parseJSON = A.withObject "V1PodOS" $ \o ->+ V1PodOS+ <$> (o .: "name")++-- | ToJSON V1PodOS+instance A.ToJSON V1PodOS where+ toJSON V1PodOS {..} =+ _omitNulls+ [ "name" .= v1PodOSName+ ]+++-- | Construct a value of type 'V1PodOS' (by applying it's required fields, if any)+mkV1PodOS+ :: Text -- ^ 'v1PodOSName': Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null+ -> V1PodOS+mkV1PodOS v1PodOSName =+ V1PodOS+ { v1PodOSName+ }++-- ** V1PodReadinessGate+-- | V1PodReadinessGate+-- PodReadinessGate contains the reference to a pod condition+data V1PodReadinessGate = V1PodReadinessGate+ { v1PodReadinessGateConditionType :: !(Text) -- ^ /Required/ "conditionType" - ConditionType refers to a condition in the pod's condition list with matching type.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodReadinessGate+instance A.FromJSON V1PodReadinessGate where+ parseJSON = A.withObject "V1PodReadinessGate" $ \o ->+ V1PodReadinessGate+ <$> (o .: "conditionType")++-- | ToJSON V1PodReadinessGate+instance A.ToJSON V1PodReadinessGate where+ toJSON V1PodReadinessGate {..} =+ _omitNulls+ [ "conditionType" .= v1PodReadinessGateConditionType+ ]+++-- | Construct a value of type 'V1PodReadinessGate' (by applying it's required fields, if any)+mkV1PodReadinessGate+ :: Text -- ^ 'v1PodReadinessGateConditionType': ConditionType refers to a condition in the pod's condition list with matching type.+ -> V1PodReadinessGate+mkV1PodReadinessGate v1PodReadinessGateConditionType =+ V1PodReadinessGate+ { v1PodReadinessGateConditionType+ }++-- ** V1PodResourceClaim+-- | V1PodResourceClaim+-- PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod. It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.+data V1PodResourceClaim = V1PodResourceClaim+ { v1PodResourceClaimName :: !(Text) -- ^ /Required/ "name" - Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.+ , v1PodResourceClaimResourceClaimName :: !(Maybe Text) -- ^ "resourceClaimName" - ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod. Exactly one of ResourceClaimName and ResourceClaimTemplateName must be set.+ , v1PodResourceClaimResourceClaimTemplateName :: !(Maybe Text) -- ^ "resourceClaimTemplateName" - ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. Exactly one of ResourceClaimName and ResourceClaimTemplateName must be set.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodResourceClaim+instance A.FromJSON V1PodResourceClaim where+ parseJSON = A.withObject "V1PodResourceClaim" $ \o ->+ V1PodResourceClaim+ <$> (o .: "name")+ <*> (o .:? "resourceClaimName")+ <*> (o .:? "resourceClaimTemplateName")++-- | ToJSON V1PodResourceClaim+instance A.ToJSON V1PodResourceClaim where+ toJSON V1PodResourceClaim {..} =+ _omitNulls+ [ "name" .= v1PodResourceClaimName+ , "resourceClaimName" .= v1PodResourceClaimResourceClaimName+ , "resourceClaimTemplateName" .= v1PodResourceClaimResourceClaimTemplateName+ ]+++-- | Construct a value of type 'V1PodResourceClaim' (by applying it's required fields, if any)+mkV1PodResourceClaim+ :: Text -- ^ 'v1PodResourceClaimName': Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.+ -> V1PodResourceClaim+mkV1PodResourceClaim v1PodResourceClaimName =+ V1PodResourceClaim+ { v1PodResourceClaimName+ , v1PodResourceClaimResourceClaimName = Nothing+ , v1PodResourceClaimResourceClaimTemplateName = Nothing+ }++-- ** V1PodResourceClaimStatus+-- | V1PodResourceClaimStatus+-- PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim.+data V1PodResourceClaimStatus = V1PodResourceClaimStatus+ { v1PodResourceClaimStatusName :: !(Text) -- ^ /Required/ "name" - Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.+ , v1PodResourceClaimStatusResourceClaimName :: !(Maybe Text) -- ^ "resourceClaimName" - ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. If this is unset, then generating a ResourceClaim was not necessary. The pod.spec.resourceClaims entry can be ignored in this case.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodResourceClaimStatus+instance A.FromJSON V1PodResourceClaimStatus where+ parseJSON = A.withObject "V1PodResourceClaimStatus" $ \o ->+ V1PodResourceClaimStatus+ <$> (o .: "name")+ <*> (o .:? "resourceClaimName")++-- | ToJSON V1PodResourceClaimStatus+instance A.ToJSON V1PodResourceClaimStatus where+ toJSON V1PodResourceClaimStatus {..} =+ _omitNulls+ [ "name" .= v1PodResourceClaimStatusName+ , "resourceClaimName" .= v1PodResourceClaimStatusResourceClaimName+ ]+++-- | Construct a value of type 'V1PodResourceClaimStatus' (by applying it's required fields, if any)+mkV1PodResourceClaimStatus+ :: Text -- ^ 'v1PodResourceClaimStatusName': Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.+ -> V1PodResourceClaimStatus+mkV1PodResourceClaimStatus v1PodResourceClaimStatusName =+ V1PodResourceClaimStatus+ { v1PodResourceClaimStatusName+ , v1PodResourceClaimStatusResourceClaimName = Nothing+ }++-- ** V1PodSchedulingGate+-- | V1PodSchedulingGate+-- PodSchedulingGate is associated to a Pod to guard its scheduling.+data V1PodSchedulingGate = V1PodSchedulingGate+ { v1PodSchedulingGateName :: !(Text) -- ^ /Required/ "name" - Name of the scheduling gate. Each scheduling gate must have a unique name field.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodSchedulingGate+instance A.FromJSON V1PodSchedulingGate where+ parseJSON = A.withObject "V1PodSchedulingGate" $ \o ->+ V1PodSchedulingGate+ <$> (o .: "name")++-- | ToJSON V1PodSchedulingGate+instance A.ToJSON V1PodSchedulingGate where+ toJSON V1PodSchedulingGate {..} =+ _omitNulls+ [ "name" .= v1PodSchedulingGateName+ ]+++-- | Construct a value of type 'V1PodSchedulingGate' (by applying it's required fields, if any)+mkV1PodSchedulingGate+ :: Text -- ^ 'v1PodSchedulingGateName': Name of the scheduling gate. Each scheduling gate must have a unique name field.+ -> V1PodSchedulingGate+mkV1PodSchedulingGate v1PodSchedulingGateName =+ V1PodSchedulingGate+ { v1PodSchedulingGateName+ }++-- ** V1PodSecurityContext+-- | V1PodSecurityContext+-- PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.+data V1PodSecurityContext = V1PodSecurityContext+ { v1PodSecurityContextAppArmorProfile :: !(Maybe V1AppArmorProfile) -- ^ "appArmorProfile"+ , v1PodSecurityContextFsGroup :: !(Maybe Integer) -- ^ "fsGroup" - A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.+ , v1PodSecurityContextFsGroupChangePolicy :: !(Maybe Text) -- ^ "fsGroupChangePolicy" - fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.+ , v1PodSecurityContextRunAsGroup :: !(Maybe Integer) -- ^ "runAsGroup" - 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.+ , v1PodSecurityContextRunAsNonRoot :: !(Maybe Bool) -- ^ "runAsNonRoot" - 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.+ , v1PodSecurityContextRunAsUser :: !(Maybe Integer) -- ^ "runAsUser" - 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.+ , v1PodSecurityContextSeLinuxChangePolicy :: !(Maybe Text) -- ^ "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.+ , v1PodSecurityContextSeLinuxOptions :: !(Maybe V1SELinuxOptions) -- ^ "seLinuxOptions"+ , v1PodSecurityContextSeccompProfile :: !(Maybe V1SeccompProfile) -- ^ "seccompProfile"+ , v1PodSecurityContextSupplementalGroups :: !(Maybe [Integer]) -- ^ "supplementalGroups" - 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.+ , v1PodSecurityContextSupplementalGroupsPolicy :: !(Maybe Text) -- ^ "supplementalGroupsPolicy" - Defines how supplemental groups of the first container processes are calculated. Valid values are \"Merge\" and \"Strict\". If not specified, \"Merge\" is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.+ , v1PodSecurityContextSysctls :: !(Maybe [V1Sysctl]) -- ^ "sysctls" - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.+ , v1PodSecurityContextWindowsOptions :: !(Maybe V1WindowsSecurityContextOptions) -- ^ "windowsOptions"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodSecurityContext+instance A.FromJSON V1PodSecurityContext where+ parseJSON = A.withObject "V1PodSecurityContext" $ \o ->+ V1PodSecurityContext+ <$> (o .:? "appArmorProfile")+ <*> (o .:? "fsGroup")+ <*> (o .:? "fsGroupChangePolicy")+ <*> (o .:? "runAsGroup")+ <*> (o .:? "runAsNonRoot")+ <*> (o .:? "runAsUser")+ <*> (o .:? "seLinuxChangePolicy")+ <*> (o .:? "seLinuxOptions")+ <*> (o .:? "seccompProfile")+ <*> (o .:? "supplementalGroups")+ <*> (o .:? "supplementalGroupsPolicy")+ <*> (o .:? "sysctls")+ <*> (o .:? "windowsOptions")++-- | ToJSON V1PodSecurityContext+instance A.ToJSON V1PodSecurityContext where+ toJSON V1PodSecurityContext {..} =+ _omitNulls+ [ "appArmorProfile" .= v1PodSecurityContextAppArmorProfile+ , "fsGroup" .= v1PodSecurityContextFsGroup+ , "fsGroupChangePolicy" .= v1PodSecurityContextFsGroupChangePolicy+ , "runAsGroup" .= v1PodSecurityContextRunAsGroup+ , "runAsNonRoot" .= v1PodSecurityContextRunAsNonRoot+ , "runAsUser" .= v1PodSecurityContextRunAsUser+ , "seLinuxChangePolicy" .= v1PodSecurityContextSeLinuxChangePolicy+ , "seLinuxOptions" .= v1PodSecurityContextSeLinuxOptions+ , "seccompProfile" .= v1PodSecurityContextSeccompProfile+ , "supplementalGroups" .= v1PodSecurityContextSupplementalGroups+ , "supplementalGroupsPolicy" .= v1PodSecurityContextSupplementalGroupsPolicy+ , "sysctls" .= v1PodSecurityContextSysctls+ , "windowsOptions" .= v1PodSecurityContextWindowsOptions+ ]+++-- | Construct a value of type 'V1PodSecurityContext' (by applying it's required fields, if any)+mkV1PodSecurityContext+ :: V1PodSecurityContext+mkV1PodSecurityContext =+ V1PodSecurityContext+ { v1PodSecurityContextAppArmorProfile = Nothing+ , v1PodSecurityContextFsGroup = Nothing+ , v1PodSecurityContextFsGroupChangePolicy = Nothing+ , v1PodSecurityContextRunAsGroup = Nothing+ , v1PodSecurityContextRunAsNonRoot = Nothing+ , v1PodSecurityContextRunAsUser = Nothing+ , v1PodSecurityContextSeLinuxChangePolicy = Nothing+ , v1PodSecurityContextSeLinuxOptions = Nothing+ , v1PodSecurityContextSeccompProfile = Nothing+ , v1PodSecurityContextSupplementalGroups = Nothing+ , v1PodSecurityContextSupplementalGroupsPolicy = Nothing+ , v1PodSecurityContextSysctls = Nothing+ , v1PodSecurityContextWindowsOptions = Nothing+ }++-- ** V1PodSpec+-- | V1PodSpec+-- PodSpec is a description of a pod.+data V1PodSpec = V1PodSpec+ { v1PodSpecActiveDeadlineSeconds :: !(Maybe Integer) -- ^ "activeDeadlineSeconds" - 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.+ , v1PodSpecAffinity :: !(Maybe V1Affinity) -- ^ "affinity"+ , v1PodSpecAutomountServiceAccountToken :: !(Maybe Bool) -- ^ "automountServiceAccountToken" - AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.+ , v1PodSpecContainers :: !([V1Container]) -- ^ /Required/ "containers" - 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.+ , v1PodSpecDnsConfig :: !(Maybe V1PodDNSConfig) -- ^ "dnsConfig"+ , v1PodSpecDnsPolicy :: !(Maybe Text) -- ^ "dnsPolicy" - 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'.+ , v1PodSpecEnableServiceLinks :: !(Maybe Bool) -- ^ "enableServiceLinks" - EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.+ , v1PodSpecEphemeralContainers :: !(Maybe [V1EphemeralContainer]) -- ^ "ephemeralContainers" - 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.+ , v1PodSpecHostAliases :: !(Maybe [V1HostAlias]) -- ^ "hostAliases" - HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.+ , v1PodSpecHostIpc :: !(Maybe Bool) -- ^ "hostIPC" - Use the host's ipc namespace. Optional: Default to false.+ , v1PodSpecHostNetwork :: !(Maybe Bool) -- ^ "hostNetwork" - Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.+ , v1PodSpecHostPid :: !(Maybe Bool) -- ^ "hostPID" - Use the host's pid namespace. Optional: Default to false.+ , v1PodSpecHostUsers :: !(Maybe Bool) -- ^ "hostUsers" - 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.+ , v1PodSpecHostname :: !(Maybe Text) -- ^ "hostname" - Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.+ , v1PodSpecHostnameOverride :: !(Maybe Text) -- ^ "hostnameOverride" - HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.+ , v1PodSpecImagePullSecrets :: !(Maybe [V1LocalObjectReference]) -- ^ "imagePullSecrets" - 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+ , v1PodSpecInitContainers :: !(Maybe [V1Container]) -- ^ "initContainers" - 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 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/+ , v1PodSpecNodeName :: !(Maybe Text) -- ^ "nodeName" - 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+ , v1PodSpecNodeSelector :: !(Maybe (Map.Map String Text)) -- ^ "nodeSelector" - 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/+ , v1PodSpecOs :: !(Maybe V1PodOS) -- ^ "os"+ , v1PodSpecOverhead :: !(Maybe (Map.Map String Quantity)) -- ^ "overhead" - 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+ , v1PodSpecPreemptionPolicy :: !(Maybe Text) -- ^ "preemptionPolicy" - PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.+ , v1PodSpecPriority :: !(Maybe Int) -- ^ "priority" - 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.+ , v1PodSpecPriorityClassName :: !(Maybe Text) -- ^ "priorityClassName" - 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.+ , v1PodSpecReadinessGates :: !(Maybe [V1PodReadinessGate]) -- ^ "readinessGates" - 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+ , v1PodSpecResourceClaims :: !(Maybe [V1PodResourceClaim]) -- ^ "resourceClaims" - 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 a stable field but requires that the DynamicResourceAllocation feature gate is enabled. This field is immutable.+ , v1PodSpecResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"+ , v1PodSpecRestartPolicy :: !(Maybe Text) -- ^ "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+ , v1PodSpecRuntimeClassName :: !(Maybe Text) -- ^ "runtimeClassName" - 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+ , v1PodSpecSchedulerName :: !(Maybe Text) -- ^ "schedulerName" - If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.+ , v1PodSpecSchedulingGates :: !(Maybe [V1PodSchedulingGate]) -- ^ "schedulingGates" - 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.+ , v1PodSpecSecurityContext :: !(Maybe V1PodSecurityContext) -- ^ "securityContext"+ , v1PodSpecServiceAccount :: !(Maybe Text) -- ^ "serviceAccount" - DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.+ , v1PodSpecServiceAccountName :: !(Maybe Text) -- ^ "serviceAccountName" - 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/+ , v1PodSpecSetHostnameAsFqdn :: !(Maybe Bool) -- ^ "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.+ , v1PodSpecShareProcessNamespace :: !(Maybe Bool) -- ^ "shareProcessNamespace" - 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.+ , v1PodSpecSubdomain :: !(Maybe Text) -- ^ "subdomain" - If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\". If not specified, the pod will not have a domainname at all.+ , v1PodSpecTerminationGracePeriodSeconds :: !(Maybe Integer) -- ^ "terminationGracePeriodSeconds" - 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.+ , v1PodSpecTolerations :: !(Maybe [V1Toleration]) -- ^ "tolerations" - If specified, the pod's tolerations.+ , v1PodSpecTopologySpreadConstraints :: !(Maybe [V1TopologySpreadConstraint]) -- ^ "topologySpreadConstraints" - 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.+ , v1PodSpecVolumes :: !(Maybe [V1Volume]) -- ^ "volumes" - List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes+ , v1PodSpecWorkloadRef :: !(Maybe V1WorkloadReference) -- ^ "workloadRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodSpec+instance A.FromJSON V1PodSpec where+ parseJSON = A.withObject "V1PodSpec" $ \o ->+ V1PodSpec+ <$> (o .:? "activeDeadlineSeconds")+ <*> (o .:? "affinity")+ <*> (o .:? "automountServiceAccountToken")+ <*> (o .: "containers")+ <*> (o .:? "dnsConfig")+ <*> (o .:? "dnsPolicy")+ <*> (o .:? "enableServiceLinks")+ <*> (o .:? "ephemeralContainers")+ <*> (o .:? "hostAliases")+ <*> (o .:? "hostIPC")+ <*> (o .:? "hostNetwork")+ <*> (o .:? "hostPID")+ <*> (o .:? "hostUsers")+ <*> (o .:? "hostname")+ <*> (o .:? "hostnameOverride")+ <*> (o .:? "imagePullSecrets")+ <*> (o .:? "initContainers")+ <*> (o .:? "nodeName")+ <*> (o .:? "nodeSelector")+ <*> (o .:? "os")+ <*> (o .:? "overhead")+ <*> (o .:? "preemptionPolicy")+ <*> (o .:? "priority")+ <*> (o .:? "priorityClassName")+ <*> (o .:? "readinessGates")+ <*> (o .:? "resourceClaims")+ <*> (o .:? "resources")+ <*> (o .:? "restartPolicy")+ <*> (o .:? "runtimeClassName")+ <*> (o .:? "schedulerName")+ <*> (o .:? "schedulingGates")+ <*> (o .:? "securityContext")+ <*> (o .:? "serviceAccount")+ <*> (o .:? "serviceAccountName")+ <*> (o .:? "setHostnameAsFQDN")+ <*> (o .:? "shareProcessNamespace")+ <*> (o .:? "subdomain")+ <*> (o .:? "terminationGracePeriodSeconds")+ <*> (o .:? "tolerations")+ <*> (o .:? "topologySpreadConstraints")+ <*> (o .:? "volumes")+ <*> (o .:? "workloadRef")++-- | ToJSON V1PodSpec+instance A.ToJSON V1PodSpec where+ toJSON V1PodSpec {..} =+ _omitNulls+ [ "activeDeadlineSeconds" .= v1PodSpecActiveDeadlineSeconds+ , "affinity" .= v1PodSpecAffinity+ , "automountServiceAccountToken" .= v1PodSpecAutomountServiceAccountToken+ , "containers" .= v1PodSpecContainers+ , "dnsConfig" .= v1PodSpecDnsConfig+ , "dnsPolicy" .= v1PodSpecDnsPolicy+ , "enableServiceLinks" .= v1PodSpecEnableServiceLinks+ , "ephemeralContainers" .= v1PodSpecEphemeralContainers+ , "hostAliases" .= v1PodSpecHostAliases+ , "hostIPC" .= v1PodSpecHostIpc+ , "hostNetwork" .= v1PodSpecHostNetwork+ , "hostPID" .= v1PodSpecHostPid+ , "hostUsers" .= v1PodSpecHostUsers+ , "hostname" .= v1PodSpecHostname+ , "hostnameOverride" .= v1PodSpecHostnameOverride+ , "imagePullSecrets" .= v1PodSpecImagePullSecrets+ , "initContainers" .= v1PodSpecInitContainers+ , "nodeName" .= v1PodSpecNodeName+ , "nodeSelector" .= v1PodSpecNodeSelector+ , "os" .= v1PodSpecOs+ , "overhead" .= v1PodSpecOverhead+ , "preemptionPolicy" .= v1PodSpecPreemptionPolicy+ , "priority" .= v1PodSpecPriority+ , "priorityClassName" .= v1PodSpecPriorityClassName+ , "readinessGates" .= v1PodSpecReadinessGates+ , "resourceClaims" .= v1PodSpecResourceClaims+ , "resources" .= v1PodSpecResources+ , "restartPolicy" .= v1PodSpecRestartPolicy+ , "runtimeClassName" .= v1PodSpecRuntimeClassName+ , "schedulerName" .= v1PodSpecSchedulerName+ , "schedulingGates" .= v1PodSpecSchedulingGates+ , "securityContext" .= v1PodSpecSecurityContext+ , "serviceAccount" .= v1PodSpecServiceAccount+ , "serviceAccountName" .= v1PodSpecServiceAccountName+ , "setHostnameAsFQDN" .= v1PodSpecSetHostnameAsFqdn+ , "shareProcessNamespace" .= v1PodSpecShareProcessNamespace+ , "subdomain" .= v1PodSpecSubdomain+ , "terminationGracePeriodSeconds" .= v1PodSpecTerminationGracePeriodSeconds+ , "tolerations" .= v1PodSpecTolerations+ , "topologySpreadConstraints" .= v1PodSpecTopologySpreadConstraints+ , "volumes" .= v1PodSpecVolumes+ , "workloadRef" .= v1PodSpecWorkloadRef+ ]+++-- | Construct a value of type 'V1PodSpec' (by applying it's required fields, if any)+mkV1PodSpec+ :: [V1Container] -- ^ 'v1PodSpecContainers': 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.+ -> V1PodSpec+mkV1PodSpec v1PodSpecContainers =+ V1PodSpec+ { v1PodSpecActiveDeadlineSeconds = Nothing+ , v1PodSpecAffinity = Nothing+ , v1PodSpecAutomountServiceAccountToken = Nothing+ , v1PodSpecContainers+ , v1PodSpecDnsConfig = Nothing+ , v1PodSpecDnsPolicy = Nothing+ , v1PodSpecEnableServiceLinks = Nothing+ , v1PodSpecEphemeralContainers = Nothing+ , v1PodSpecHostAliases = Nothing+ , v1PodSpecHostIpc = Nothing+ , v1PodSpecHostNetwork = Nothing+ , v1PodSpecHostPid = Nothing+ , v1PodSpecHostUsers = Nothing+ , v1PodSpecHostname = Nothing+ , v1PodSpecHostnameOverride = Nothing+ , v1PodSpecImagePullSecrets = Nothing+ , v1PodSpecInitContainers = Nothing+ , v1PodSpecNodeName = Nothing+ , v1PodSpecNodeSelector = Nothing+ , v1PodSpecOs = Nothing+ , v1PodSpecOverhead = Nothing+ , v1PodSpecPreemptionPolicy = Nothing+ , v1PodSpecPriority = Nothing+ , v1PodSpecPriorityClassName = Nothing+ , v1PodSpecReadinessGates = Nothing+ , v1PodSpecResourceClaims = Nothing+ , v1PodSpecResources = Nothing+ , v1PodSpecRestartPolicy = Nothing+ , v1PodSpecRuntimeClassName = Nothing+ , v1PodSpecSchedulerName = Nothing+ , v1PodSpecSchedulingGates = Nothing+ , v1PodSpecSecurityContext = Nothing+ , v1PodSpecServiceAccount = Nothing+ , v1PodSpecServiceAccountName = Nothing+ , v1PodSpecSetHostnameAsFqdn = Nothing+ , v1PodSpecShareProcessNamespace = Nothing+ , v1PodSpecSubdomain = Nothing+ , v1PodSpecTerminationGracePeriodSeconds = Nothing+ , v1PodSpecTolerations = Nothing+ , v1PodSpecTopologySpreadConstraints = Nothing+ , v1PodSpecVolumes = Nothing+ , v1PodSpecWorkloadRef = Nothing+ }++-- ** V1PodStatus+-- | V1PodStatus+-- 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.+data V1PodStatus = V1PodStatus+ { v1PodStatusAllocatedResources :: !(Maybe (Map.Map String Quantity)) -- ^ "allocatedResources" - AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod.+ , v1PodStatusConditions :: !(Maybe [V1PodCondition]) -- ^ "conditions" - Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions+ , v1PodStatusContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "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+ , v1PodStatusEphemeralContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "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+ , v1PodStatusExtendedResourceClaimStatus :: !(Maybe V1PodExtendedResourceClaimStatus) -- ^ "extendedResourceClaimStatus"+ , v1PodStatusHostIp :: !(Maybe Text) -- ^ "hostIP" - 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+ , v1PodStatusHostIps :: !(Maybe [V1HostIP]) -- ^ "hostIPs" - 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.+ , v1PodStatusInitContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "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+ , v1PodStatusMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about why the pod is in this condition.+ , v1PodStatusNominatedNodeName :: !(Maybe Text) -- ^ "nominatedNodeName" - 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.+ , v1PodStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field.+ , v1PodStatusPhase :: !(Maybe Text) -- ^ "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: Pending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase+ , v1PodStatusPodIp :: !(Maybe Text) -- ^ "podIP" - podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.+ , v1PodStatusPodIps :: !(Maybe [V1PodIP]) -- ^ "podIPs" - podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.+ , v1PodStatusQosClass :: !(Maybe Text) -- ^ "qosClass" - The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes+ , v1PodStatusReason :: !(Maybe Text) -- ^ "reason" - A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'+ , v1PodStatusResize :: !(Maybe Text) -- ^ "resize" - Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \"Proposed\" Deprecated: Resize status is moved to two pod conditions PodResizePending and PodResizeInProgress. PodResizePending will track states where the spec has been resized, but the Kubelet has not yet allocated the resources. PodResizeInProgress will track in-progress resizes, and should be present whenever allocated resources != acknowledged resources.+ , v1PodStatusResourceClaimStatuses :: !(Maybe [V1PodResourceClaimStatus]) -- ^ "resourceClaimStatuses" - Status of resource claims.+ , v1PodStatusResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"+ , v1PodStatusStartTime :: !(Maybe DateTime) -- ^ "startTime" - RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodStatus+instance A.FromJSON V1PodStatus where+ parseJSON = A.withObject "V1PodStatus" $ \o ->+ V1PodStatus+ <$> (o .:? "allocatedResources")+ <*> (o .:? "conditions")+ <*> (o .:? "containerStatuses")+ <*> (o .:? "ephemeralContainerStatuses")+ <*> (o .:? "extendedResourceClaimStatus")+ <*> (o .:? "hostIP")+ <*> (o .:? "hostIPs")+ <*> (o .:? "initContainerStatuses")+ <*> (o .:? "message")+ <*> (o .:? "nominatedNodeName")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "phase")+ <*> (o .:? "podIP")+ <*> (o .:? "podIPs")+ <*> (o .:? "qosClass")+ <*> (o .:? "reason")+ <*> (o .:? "resize")+ <*> (o .:? "resourceClaimStatuses")+ <*> (o .:? "resources")+ <*> (o .:? "startTime")++-- | ToJSON V1PodStatus+instance A.ToJSON V1PodStatus where+ toJSON V1PodStatus {..} =+ _omitNulls+ [ "allocatedResources" .= v1PodStatusAllocatedResources+ , "conditions" .= v1PodStatusConditions+ , "containerStatuses" .= v1PodStatusContainerStatuses+ , "ephemeralContainerStatuses" .= v1PodStatusEphemeralContainerStatuses+ , "extendedResourceClaimStatus" .= v1PodStatusExtendedResourceClaimStatus+ , "hostIP" .= v1PodStatusHostIp+ , "hostIPs" .= v1PodStatusHostIps+ , "initContainerStatuses" .= v1PodStatusInitContainerStatuses+ , "message" .= v1PodStatusMessage+ , "nominatedNodeName" .= v1PodStatusNominatedNodeName+ , "observedGeneration" .= v1PodStatusObservedGeneration+ , "phase" .= v1PodStatusPhase+ , "podIP" .= v1PodStatusPodIp+ , "podIPs" .= v1PodStatusPodIps+ , "qosClass" .= v1PodStatusQosClass+ , "reason" .= v1PodStatusReason+ , "resize" .= v1PodStatusResize+ , "resourceClaimStatuses" .= v1PodStatusResourceClaimStatuses+ , "resources" .= v1PodStatusResources+ , "startTime" .= v1PodStatusStartTime+ ]+++-- | Construct a value of type 'V1PodStatus' (by applying it's required fields, if any)+mkV1PodStatus+ :: V1PodStatus+mkV1PodStatus =+ V1PodStatus+ { v1PodStatusAllocatedResources = Nothing+ , v1PodStatusConditions = Nothing+ , v1PodStatusContainerStatuses = Nothing+ , v1PodStatusEphemeralContainerStatuses = Nothing+ , v1PodStatusExtendedResourceClaimStatus = Nothing+ , v1PodStatusHostIp = Nothing+ , v1PodStatusHostIps = Nothing+ , v1PodStatusInitContainerStatuses = Nothing+ , v1PodStatusMessage = Nothing+ , v1PodStatusNominatedNodeName = Nothing+ , v1PodStatusObservedGeneration = Nothing+ , v1PodStatusPhase = Nothing+ , v1PodStatusPodIp = Nothing+ , v1PodStatusPodIps = Nothing+ , v1PodStatusQosClass = Nothing+ , v1PodStatusReason = Nothing+ , v1PodStatusResize = Nothing+ , v1PodStatusResourceClaimStatuses = Nothing+ , v1PodStatusResources = Nothing+ , v1PodStatusStartTime = Nothing+ }++-- ** V1PodTemplate+-- | V1PodTemplate+-- PodTemplate describes a template for creating copies of a predefined pod.+data V1PodTemplate = V1PodTemplate+ { v1PodTemplateApiVersion :: !(Maybe Text) -- ^ "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+ , v1PodTemplateKind :: !(Maybe Text) -- ^ "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+ , v1PodTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PodTemplateTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodTemplate+instance A.FromJSON V1PodTemplate where+ parseJSON = A.withObject "V1PodTemplate" $ \o ->+ V1PodTemplate+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "template")++-- | ToJSON V1PodTemplate+instance A.ToJSON V1PodTemplate where+ toJSON V1PodTemplate {..} =+ _omitNulls+ [ "apiVersion" .= v1PodTemplateApiVersion+ , "kind" .= v1PodTemplateKind+ , "metadata" .= v1PodTemplateMetadata+ , "template" .= v1PodTemplateTemplate+ ]+++-- | Construct a value of type 'V1PodTemplate' (by applying it's required fields, if any)+mkV1PodTemplate+ :: V1PodTemplate+mkV1PodTemplate =+ V1PodTemplate+ { v1PodTemplateApiVersion = Nothing+ , v1PodTemplateKind = Nothing+ , v1PodTemplateMetadata = Nothing+ , v1PodTemplateTemplate = Nothing+ }++-- ** V1PodTemplateList+-- | V1PodTemplateList+-- PodTemplateList is a list of PodTemplates.+data V1PodTemplateList = V1PodTemplateList+ { v1PodTemplateListApiVersion :: !(Maybe Text) -- ^ "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+ , v1PodTemplateListItems :: !([V1PodTemplate]) -- ^ /Required/ "items" - List of pod templates+ , v1PodTemplateListKind :: !(Maybe Text) -- ^ "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+ , v1PodTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodTemplateList+instance A.FromJSON V1PodTemplateList where+ parseJSON = A.withObject "V1PodTemplateList" $ \o ->+ V1PodTemplateList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1PodTemplateList+instance A.ToJSON V1PodTemplateList where+ toJSON V1PodTemplateList {..} =+ _omitNulls+ [ "apiVersion" .= v1PodTemplateListApiVersion+ , "items" .= v1PodTemplateListItems+ , "kind" .= v1PodTemplateListKind+ , "metadata" .= v1PodTemplateListMetadata+ ]+++-- | Construct a value of type 'V1PodTemplateList' (by applying it's required fields, if any)+mkV1PodTemplateList+ :: [V1PodTemplate] -- ^ 'v1PodTemplateListItems': List of pod templates+ -> V1PodTemplateList+mkV1PodTemplateList v1PodTemplateListItems =+ V1PodTemplateList+ { v1PodTemplateListApiVersion = Nothing+ , v1PodTemplateListItems+ , v1PodTemplateListKind = Nothing+ , v1PodTemplateListMetadata = Nothing+ }++-- ** V1PodTemplateSpec+-- | V1PodTemplateSpec+-- PodTemplateSpec describes the data a pod should have when created from a template+data V1PodTemplateSpec = V1PodTemplateSpec+ { v1PodTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PodTemplateSpecSpec :: !(Maybe V1PodSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PodTemplateSpec+instance A.FromJSON V1PodTemplateSpec where+ parseJSON = A.withObject "V1PodTemplateSpec" $ \o ->+ V1PodTemplateSpec+ <$> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1PodTemplateSpec+instance A.ToJSON V1PodTemplateSpec where+ toJSON V1PodTemplateSpec {..} =+ _omitNulls+ [ "metadata" .= v1PodTemplateSpecMetadata+ , "spec" .= v1PodTemplateSpecSpec+ ]+++-- | Construct a value of type 'V1PodTemplateSpec' (by applying it's required fields, if any)+mkV1PodTemplateSpec+ :: V1PodTemplateSpec+mkV1PodTemplateSpec =+ V1PodTemplateSpec+ { v1PodTemplateSpecMetadata = Nothing+ , v1PodTemplateSpecSpec = Nothing+ }++-- ** V1PolicyRule+-- | V1PolicyRule+-- PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.+data V1PolicyRule = V1PolicyRule+ { v1PolicyRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.+ , v1PolicyRuleNonResourceUrls :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.+ , v1PolicyRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.+ , v1PolicyRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to. '*' represents all resources.+ , v1PolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PolicyRule+instance A.FromJSON V1PolicyRule where+ parseJSON = A.withObject "V1PolicyRule" $ \o ->+ V1PolicyRule+ <$> (o .:? "apiGroups")+ <*> (o .:? "nonResourceURLs")+ <*> (o .:? "resourceNames")+ <*> (o .:? "resources")+ <*> (o .: "verbs")++-- | ToJSON V1PolicyRule+instance A.ToJSON V1PolicyRule where+ toJSON V1PolicyRule {..} =+ _omitNulls+ [ "apiGroups" .= v1PolicyRuleApiGroups+ , "nonResourceURLs" .= v1PolicyRuleNonResourceUrls+ , "resourceNames" .= v1PolicyRuleResourceNames+ , "resources" .= v1PolicyRuleResources+ , "verbs" .= v1PolicyRuleVerbs+ ]+++-- | Construct a value of type 'V1PolicyRule' (by applying it's required fields, if any)+mkV1PolicyRule+ :: [Text] -- ^ 'v1PolicyRuleVerbs': Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.+ -> V1PolicyRule+mkV1PolicyRule v1PolicyRuleVerbs =+ V1PolicyRule+ { v1PolicyRuleApiGroups = Nothing+ , v1PolicyRuleNonResourceUrls = Nothing+ , v1PolicyRuleResourceNames = Nothing+ , v1PolicyRuleResources = Nothing+ , v1PolicyRuleVerbs+ }++-- ** V1PolicyRulesWithSubjects+-- | V1PolicyRulesWithSubjects+-- PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.+data V1PolicyRulesWithSubjects = V1PolicyRulesWithSubjects+ { v1PolicyRulesWithSubjectsNonResourceRules :: !(Maybe [V1NonResourcePolicyRule]) -- ^ "nonResourceRules" - `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.+ , v1PolicyRulesWithSubjectsResourceRules :: !(Maybe [V1ResourcePolicyRule]) -- ^ "resourceRules" - `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.+ , v1PolicyRulesWithSubjectsSubjects :: !([FlowcontrolV1Subject]) -- ^ /Required/ "subjects" - subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PolicyRulesWithSubjects+instance A.FromJSON V1PolicyRulesWithSubjects where+ parseJSON = A.withObject "V1PolicyRulesWithSubjects" $ \o ->+ V1PolicyRulesWithSubjects+ <$> (o .:? "nonResourceRules")+ <*> (o .:? "resourceRules")+ <*> (o .: "subjects")++-- | ToJSON V1PolicyRulesWithSubjects+instance A.ToJSON V1PolicyRulesWithSubjects where+ toJSON V1PolicyRulesWithSubjects {..} =+ _omitNulls+ [ "nonResourceRules" .= v1PolicyRulesWithSubjectsNonResourceRules+ , "resourceRules" .= v1PolicyRulesWithSubjectsResourceRules+ , "subjects" .= v1PolicyRulesWithSubjectsSubjects+ ]+++-- | Construct a value of type 'V1PolicyRulesWithSubjects' (by applying it's required fields, if any)+mkV1PolicyRulesWithSubjects+ :: [FlowcontrolV1Subject] -- ^ 'v1PolicyRulesWithSubjectsSubjects': subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.+ -> V1PolicyRulesWithSubjects+mkV1PolicyRulesWithSubjects v1PolicyRulesWithSubjectsSubjects =+ V1PolicyRulesWithSubjects+ { v1PolicyRulesWithSubjectsNonResourceRules = Nothing+ , v1PolicyRulesWithSubjectsResourceRules = Nothing+ , v1PolicyRulesWithSubjectsSubjects+ }++-- ** V1PortStatus+-- | V1PortStatus+-- PortStatus represents the error condition of a service port+data V1PortStatus = V1PortStatus+ { v1PortStatusError :: !(Maybe Text) -- ^ "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 format foo.example.com/CamelCase.+ , v1PortStatusPort :: !(Int) -- ^ /Required/ "port" - Port is the port number of the service port of which status is recorded here+ , v1PortStatusProtocol :: !(Text) -- ^ /Required/ "protocol" - Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PortStatus+instance A.FromJSON V1PortStatus where+ parseJSON = A.withObject "V1PortStatus" $ \o ->+ V1PortStatus+ <$> (o .:? "error")+ <*> (o .: "port")+ <*> (o .: "protocol")++-- | ToJSON V1PortStatus+instance A.ToJSON V1PortStatus where+ toJSON V1PortStatus {..} =+ _omitNulls+ [ "error" .= v1PortStatusError+ , "port" .= v1PortStatusPort+ , "protocol" .= v1PortStatusProtocol+ ]+++-- | Construct a value of type 'V1PortStatus' (by applying it's required fields, if any)+mkV1PortStatus+ :: Int -- ^ 'v1PortStatusPort': Port is the port number of the service port of which status is recorded here+ -> Text -- ^ 'v1PortStatusProtocol': Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"+ -> V1PortStatus+mkV1PortStatus v1PortStatusPort v1PortStatusProtocol =+ V1PortStatus+ { v1PortStatusError = Nothing+ , v1PortStatusPort+ , v1PortStatusProtocol+ }++-- ** V1PortworxVolumeSource+-- | V1PortworxVolumeSource+-- PortworxVolumeSource represents a Portworx volume resource.+data V1PortworxVolumeSource = V1PortworxVolumeSource+ { v1PortworxVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.+ , v1PortworxVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1PortworxVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volumeID uniquely identifies a Portworx volume+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PortworxVolumeSource+instance A.FromJSON V1PortworxVolumeSource where+ parseJSON = A.withObject "V1PortworxVolumeSource" $ \o ->+ V1PortworxVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "readOnly")+ <*> (o .: "volumeID")++-- | ToJSON V1PortworxVolumeSource+instance A.ToJSON V1PortworxVolumeSource where+ toJSON V1PortworxVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1PortworxVolumeSourceFsType+ , "readOnly" .= v1PortworxVolumeSourceReadOnly+ , "volumeID" .= v1PortworxVolumeSourceVolumeId+ ]+++-- | Construct a value of type 'V1PortworxVolumeSource' (by applying it's required fields, if any)+mkV1PortworxVolumeSource+ :: Text -- ^ 'v1PortworxVolumeSourceVolumeId': volumeID uniquely identifies a Portworx volume+ -> V1PortworxVolumeSource+mkV1PortworxVolumeSource v1PortworxVolumeSourceVolumeId =+ V1PortworxVolumeSource+ { v1PortworxVolumeSourceFsType = Nothing+ , v1PortworxVolumeSourceReadOnly = Nothing+ , v1PortworxVolumeSourceVolumeId+ }++-- ** V1Preconditions+-- | V1Preconditions+-- Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.+data V1Preconditions = V1Preconditions+ { v1PreconditionsResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - Specifies the target ResourceVersion+ , v1PreconditionsUid :: !(Maybe Text) -- ^ "uid" - Specifies the target UID.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Preconditions+instance A.FromJSON V1Preconditions where+ parseJSON = A.withObject "V1Preconditions" $ \o ->+ V1Preconditions+ <$> (o .:? "resourceVersion")+ <*> (o .:? "uid")++-- | ToJSON V1Preconditions+instance A.ToJSON V1Preconditions where+ toJSON V1Preconditions {..} =+ _omitNulls+ [ "resourceVersion" .= v1PreconditionsResourceVersion+ , "uid" .= v1PreconditionsUid+ ]+++-- | Construct a value of type 'V1Preconditions' (by applying it's required fields, if any)+mkV1Preconditions+ :: V1Preconditions+mkV1Preconditions =+ V1Preconditions+ { v1PreconditionsResourceVersion = Nothing+ , v1PreconditionsUid = Nothing+ }++-- ** V1PreferredSchedulingTerm+-- | V1PreferredSchedulingTerm+-- An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).+data V1PreferredSchedulingTerm = V1PreferredSchedulingTerm+ { v1PreferredSchedulingTermPreference :: !(V1NodeSelectorTerm) -- ^ /Required/ "preference"+ , v1PreferredSchedulingTermWeight :: !(Int) -- ^ /Required/ "weight" - Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PreferredSchedulingTerm+instance A.FromJSON V1PreferredSchedulingTerm where+ parseJSON = A.withObject "V1PreferredSchedulingTerm" $ \o ->+ V1PreferredSchedulingTerm+ <$> (o .: "preference")+ <*> (o .: "weight")++-- | ToJSON V1PreferredSchedulingTerm+instance A.ToJSON V1PreferredSchedulingTerm where+ toJSON V1PreferredSchedulingTerm {..} =+ _omitNulls+ [ "preference" .= v1PreferredSchedulingTermPreference+ , "weight" .= v1PreferredSchedulingTermWeight+ ]+++-- | Construct a value of type 'V1PreferredSchedulingTerm' (by applying it's required fields, if any)+mkV1PreferredSchedulingTerm+ :: V1NodeSelectorTerm -- ^ 'v1PreferredSchedulingTermPreference' + -> Int -- ^ 'v1PreferredSchedulingTermWeight': Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.+ -> V1PreferredSchedulingTerm+mkV1PreferredSchedulingTerm v1PreferredSchedulingTermPreference v1PreferredSchedulingTermWeight =+ V1PreferredSchedulingTerm+ { v1PreferredSchedulingTermPreference+ , v1PreferredSchedulingTermWeight+ }++-- ** V1PriorityClass+-- | V1PriorityClass+-- PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.+data V1PriorityClass = V1PriorityClass+ { v1PriorityClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1PriorityClassDescription :: !(Maybe Text) -- ^ "description" - description is an arbitrary string that usually provides guidelines on when this priority class should be used.+ , v1PriorityClassGlobalDefault :: !(Maybe Bool) -- ^ "globalDefault" - globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.+ , v1PriorityClassKind :: !(Maybe Text) -- ^ "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+ , v1PriorityClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PriorityClassPreemptionPolicy :: !(Maybe Text) -- ^ "preemptionPolicy" - preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.+ , v1PriorityClassValue :: !(Int) -- ^ /Required/ "value" - value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PriorityClass+instance A.FromJSON V1PriorityClass where+ parseJSON = A.withObject "V1PriorityClass" $ \o ->+ V1PriorityClass+ <$> (o .:? "apiVersion")+ <*> (o .:? "description")+ <*> (o .:? "globalDefault")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "preemptionPolicy")+ <*> (o .: "value")++-- | ToJSON V1PriorityClass+instance A.ToJSON V1PriorityClass where+ toJSON V1PriorityClass {..} =+ _omitNulls+ [ "apiVersion" .= v1PriorityClassApiVersion+ , "description" .= v1PriorityClassDescription+ , "globalDefault" .= v1PriorityClassGlobalDefault+ , "kind" .= v1PriorityClassKind+ , "metadata" .= v1PriorityClassMetadata+ , "preemptionPolicy" .= v1PriorityClassPreemptionPolicy+ , "value" .= v1PriorityClassValue+ ]+++-- | Construct a value of type 'V1PriorityClass' (by applying it's required fields, if any)+mkV1PriorityClass+ :: Int -- ^ 'v1PriorityClassValue': value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.+ -> V1PriorityClass+mkV1PriorityClass v1PriorityClassValue =+ V1PriorityClass+ { v1PriorityClassApiVersion = Nothing+ , v1PriorityClassDescription = Nothing+ , v1PriorityClassGlobalDefault = Nothing+ , v1PriorityClassKind = Nothing+ , v1PriorityClassMetadata = Nothing+ , v1PriorityClassPreemptionPolicy = Nothing+ , v1PriorityClassValue+ }++-- ** V1PriorityClassList+-- | V1PriorityClassList+-- PriorityClassList is a collection of priority classes.+data V1PriorityClassList = V1PriorityClassList+ { v1PriorityClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1PriorityClassListItems :: !([V1PriorityClass]) -- ^ /Required/ "items" - items is the list of PriorityClasses+ , v1PriorityClassListKind :: !(Maybe Text) -- ^ "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+ , v1PriorityClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PriorityClassList+instance A.FromJSON V1PriorityClassList where+ parseJSON = A.withObject "V1PriorityClassList" $ \o ->+ V1PriorityClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1PriorityClassList+instance A.ToJSON V1PriorityClassList where+ toJSON V1PriorityClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1PriorityClassListApiVersion+ , "items" .= v1PriorityClassListItems+ , "kind" .= v1PriorityClassListKind+ , "metadata" .= v1PriorityClassListMetadata+ ]+++-- | Construct a value of type 'V1PriorityClassList' (by applying it's required fields, if any)+mkV1PriorityClassList+ :: [V1PriorityClass] -- ^ 'v1PriorityClassListItems': items is the list of PriorityClasses+ -> V1PriorityClassList+mkV1PriorityClassList v1PriorityClassListItems =+ V1PriorityClassList+ { v1PriorityClassListApiVersion = Nothing+ , v1PriorityClassListItems+ , v1PriorityClassListKind = Nothing+ , v1PriorityClassListMetadata = Nothing+ }++-- ** V1PriorityLevelConfiguration+-- | V1PriorityLevelConfiguration+-- PriorityLevelConfiguration represents the configuration of a priority level.+data V1PriorityLevelConfiguration = V1PriorityLevelConfiguration+ { v1PriorityLevelConfigurationApiVersion :: !(Maybe Text) -- ^ "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+ , v1PriorityLevelConfigurationKind :: !(Maybe Text) -- ^ "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+ , v1PriorityLevelConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1PriorityLevelConfigurationSpec :: !(Maybe V1PriorityLevelConfigurationSpec) -- ^ "spec"+ , v1PriorityLevelConfigurationStatus :: !(Maybe V1PriorityLevelConfigurationStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PriorityLevelConfiguration+instance A.FromJSON V1PriorityLevelConfiguration where+ parseJSON = A.withObject "V1PriorityLevelConfiguration" $ \o ->+ V1PriorityLevelConfiguration+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1PriorityLevelConfiguration+instance A.ToJSON V1PriorityLevelConfiguration where+ toJSON V1PriorityLevelConfiguration {..} =+ _omitNulls+ [ "apiVersion" .= v1PriorityLevelConfigurationApiVersion+ , "kind" .= v1PriorityLevelConfigurationKind+ , "metadata" .= v1PriorityLevelConfigurationMetadata+ , "spec" .= v1PriorityLevelConfigurationSpec+ , "status" .= v1PriorityLevelConfigurationStatus+ ]+++-- | Construct a value of type 'V1PriorityLevelConfiguration' (by applying it's required fields, if any)+mkV1PriorityLevelConfiguration+ :: V1PriorityLevelConfiguration+mkV1PriorityLevelConfiguration =+ V1PriorityLevelConfiguration+ { v1PriorityLevelConfigurationApiVersion = Nothing+ , v1PriorityLevelConfigurationKind = Nothing+ , v1PriorityLevelConfigurationMetadata = Nothing+ , v1PriorityLevelConfigurationSpec = Nothing+ , v1PriorityLevelConfigurationStatus = Nothing+ }++-- ** V1PriorityLevelConfigurationCondition+-- | V1PriorityLevelConfigurationCondition+-- PriorityLevelConfigurationCondition defines the condition of priority level.+data V1PriorityLevelConfigurationCondition = V1PriorityLevelConfigurationCondition+ { v1PriorityLevelConfigurationConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - `lastTransitionTime` is the last time the condition transitioned from one status to another.+ , v1PriorityLevelConfigurationConditionMessage :: !(Maybe Text) -- ^ "message" - `message` is a human-readable message indicating details about last transition.+ , v1PriorityLevelConfigurationConditionReason :: !(Maybe Text) -- ^ "reason" - `reason` is a unique, one-word, CamelCase reason for the condition's last transition.+ , v1PriorityLevelConfigurationConditionStatus :: !(Maybe Text) -- ^ "status" - `status` is the status of the condition. Can be True, False, Unknown. Required.+ , v1PriorityLevelConfigurationConditionType :: !(Maybe Text) -- ^ "type" - `type` is the type of the condition. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PriorityLevelConfigurationCondition+instance A.FromJSON V1PriorityLevelConfigurationCondition where+ parseJSON = A.withObject "V1PriorityLevelConfigurationCondition" $ \o ->+ V1PriorityLevelConfigurationCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .:? "status")+ <*> (o .:? "type")++-- | ToJSON V1PriorityLevelConfigurationCondition+instance A.ToJSON V1PriorityLevelConfigurationCondition where+ toJSON V1PriorityLevelConfigurationCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1PriorityLevelConfigurationConditionLastTransitionTime+ , "message" .= v1PriorityLevelConfigurationConditionMessage+ , "reason" .= v1PriorityLevelConfigurationConditionReason+ , "status" .= v1PriorityLevelConfigurationConditionStatus+ , "type" .= v1PriorityLevelConfigurationConditionType+ ]+++-- | Construct a value of type 'V1PriorityLevelConfigurationCondition' (by applying it's required fields, if any)+mkV1PriorityLevelConfigurationCondition+ :: V1PriorityLevelConfigurationCondition+mkV1PriorityLevelConfigurationCondition =+ V1PriorityLevelConfigurationCondition+ { v1PriorityLevelConfigurationConditionLastTransitionTime = Nothing+ , v1PriorityLevelConfigurationConditionMessage = Nothing+ , v1PriorityLevelConfigurationConditionReason = Nothing+ , v1PriorityLevelConfigurationConditionStatus = Nothing+ , v1PriorityLevelConfigurationConditionType = Nothing+ }++-- ** V1PriorityLevelConfigurationList+-- | V1PriorityLevelConfigurationList+-- PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.+data V1PriorityLevelConfigurationList = V1PriorityLevelConfigurationList+ { v1PriorityLevelConfigurationListApiVersion :: !(Maybe Text) -- ^ "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+ , v1PriorityLevelConfigurationListItems :: !([V1PriorityLevelConfiguration]) -- ^ /Required/ "items" - `items` is a list of request-priorities.+ , v1PriorityLevelConfigurationListKind :: !(Maybe Text) -- ^ "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+ , v1PriorityLevelConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PriorityLevelConfigurationList+instance A.FromJSON V1PriorityLevelConfigurationList where+ parseJSON = A.withObject "V1PriorityLevelConfigurationList" $ \o ->+ V1PriorityLevelConfigurationList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1PriorityLevelConfigurationList+instance A.ToJSON V1PriorityLevelConfigurationList where+ toJSON V1PriorityLevelConfigurationList {..} =+ _omitNulls+ [ "apiVersion" .= v1PriorityLevelConfigurationListApiVersion+ , "items" .= v1PriorityLevelConfigurationListItems+ , "kind" .= v1PriorityLevelConfigurationListKind+ , "metadata" .= v1PriorityLevelConfigurationListMetadata+ ]+++-- | Construct a value of type 'V1PriorityLevelConfigurationList' (by applying it's required fields, if any)+mkV1PriorityLevelConfigurationList+ :: [V1PriorityLevelConfiguration] -- ^ 'v1PriorityLevelConfigurationListItems': `items` is a list of request-priorities.+ -> V1PriorityLevelConfigurationList+mkV1PriorityLevelConfigurationList v1PriorityLevelConfigurationListItems =+ V1PriorityLevelConfigurationList+ { v1PriorityLevelConfigurationListApiVersion = Nothing+ , v1PriorityLevelConfigurationListItems+ , v1PriorityLevelConfigurationListKind = Nothing+ , v1PriorityLevelConfigurationListMetadata = Nothing+ }++-- ** V1PriorityLevelConfigurationReference+-- | V1PriorityLevelConfigurationReference+-- PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.+data V1PriorityLevelConfigurationReference = V1PriorityLevelConfigurationReference+ { v1PriorityLevelConfigurationReferenceName :: !(Text) -- ^ /Required/ "name" - `name` is the name of the priority level configuration being referenced Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PriorityLevelConfigurationReference+instance A.FromJSON V1PriorityLevelConfigurationReference where+ parseJSON = A.withObject "V1PriorityLevelConfigurationReference" $ \o ->+ V1PriorityLevelConfigurationReference+ <$> (o .: "name")++-- | ToJSON V1PriorityLevelConfigurationReference+instance A.ToJSON V1PriorityLevelConfigurationReference where+ toJSON V1PriorityLevelConfigurationReference {..} =+ _omitNulls+ [ "name" .= v1PriorityLevelConfigurationReferenceName+ ]+++-- | Construct a value of type 'V1PriorityLevelConfigurationReference' (by applying it's required fields, if any)+mkV1PriorityLevelConfigurationReference+ :: Text -- ^ 'v1PriorityLevelConfigurationReferenceName': `name` is the name of the priority level configuration being referenced Required.+ -> V1PriorityLevelConfigurationReference+mkV1PriorityLevelConfigurationReference v1PriorityLevelConfigurationReferenceName =+ V1PriorityLevelConfigurationReference+ { v1PriorityLevelConfigurationReferenceName+ }++-- ** V1PriorityLevelConfigurationSpec+-- | V1PriorityLevelConfigurationSpec+-- PriorityLevelConfigurationSpec specifies the configuration of a priority level.+data V1PriorityLevelConfigurationSpec = V1PriorityLevelConfigurationSpec+ { v1PriorityLevelConfigurationSpecExempt :: !(Maybe V1ExemptPriorityLevelConfiguration) -- ^ "exempt"+ , v1PriorityLevelConfigurationSpecLimited :: !(Maybe V1LimitedPriorityLevelConfiguration) -- ^ "limited"+ , v1PriorityLevelConfigurationSpecType :: !(Text) -- ^ /Required/ "type" - `type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PriorityLevelConfigurationSpec+instance A.FromJSON V1PriorityLevelConfigurationSpec where+ parseJSON = A.withObject "V1PriorityLevelConfigurationSpec" $ \o ->+ V1PriorityLevelConfigurationSpec+ <$> (o .:? "exempt")+ <*> (o .:? "limited")+ <*> (o .: "type")++-- | ToJSON V1PriorityLevelConfigurationSpec+instance A.ToJSON V1PriorityLevelConfigurationSpec where+ toJSON V1PriorityLevelConfigurationSpec {..} =+ _omitNulls+ [ "exempt" .= v1PriorityLevelConfigurationSpecExempt+ , "limited" .= v1PriorityLevelConfigurationSpecLimited+ , "type" .= v1PriorityLevelConfigurationSpecType+ ]+++-- | Construct a value of type 'V1PriorityLevelConfigurationSpec' (by applying it's required fields, if any)+mkV1PriorityLevelConfigurationSpec+ :: Text -- ^ 'v1PriorityLevelConfigurationSpecType': `type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.+ -> V1PriorityLevelConfigurationSpec+mkV1PriorityLevelConfigurationSpec v1PriorityLevelConfigurationSpecType =+ V1PriorityLevelConfigurationSpec+ { v1PriorityLevelConfigurationSpecExempt = Nothing+ , v1PriorityLevelConfigurationSpecLimited = Nothing+ , v1PriorityLevelConfigurationSpecType+ }++-- ** V1PriorityLevelConfigurationStatus+-- | V1PriorityLevelConfigurationStatus+-- PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".+data V1PriorityLevelConfigurationStatus = V1PriorityLevelConfigurationStatus+ { v1PriorityLevelConfigurationStatusConditions :: !(Maybe [V1PriorityLevelConfigurationCondition]) -- ^ "conditions" - `conditions` is the current state of \"request-priority\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1PriorityLevelConfigurationStatus+instance A.FromJSON V1PriorityLevelConfigurationStatus where+ parseJSON = A.withObject "V1PriorityLevelConfigurationStatus" $ \o ->+ V1PriorityLevelConfigurationStatus+ <$> (o .:? "conditions")++-- | ToJSON V1PriorityLevelConfigurationStatus+instance A.ToJSON V1PriorityLevelConfigurationStatus where+ toJSON V1PriorityLevelConfigurationStatus {..} =+ _omitNulls+ [ "conditions" .= v1PriorityLevelConfigurationStatusConditions+ ]+++-- | Construct a value of type 'V1PriorityLevelConfigurationStatus' (by applying it's required fields, if any)+mkV1PriorityLevelConfigurationStatus+ :: V1PriorityLevelConfigurationStatus+mkV1PriorityLevelConfigurationStatus =+ V1PriorityLevelConfigurationStatus+ { v1PriorityLevelConfigurationStatusConditions = Nothing+ }++-- ** V1Probe+-- | V1Probe+-- Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.+data V1Probe = V1Probe+ { v1ProbeExec :: !(Maybe V1ExecAction) -- ^ "exec"+ , v1ProbeFailureThreshold :: !(Maybe Int) -- ^ "failureThreshold" - Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.+ , v1ProbeGrpc :: !(Maybe V1GRPCAction) -- ^ "grpc"+ , v1ProbeHttpGet :: !(Maybe V1HTTPGetAction) -- ^ "httpGet"+ , v1ProbeInitialDelaySeconds :: !(Maybe Int) -- ^ "initialDelaySeconds" - 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+ , v1ProbePeriodSeconds :: !(Maybe Int) -- ^ "periodSeconds" - How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.+ , v1ProbeSuccessThreshold :: !(Maybe Int) -- ^ "successThreshold" - 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.+ , v1ProbeTcpSocket :: !(Maybe V1TCPSocketAction) -- ^ "tcpSocket"+ , v1ProbeTerminationGracePeriodSeconds :: !(Maybe Integer) -- ^ "terminationGracePeriodSeconds" - 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.+ , v1ProbeTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - 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+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Probe+instance A.FromJSON V1Probe where+ parseJSON = A.withObject "V1Probe" $ \o ->+ V1Probe+ <$> (o .:? "exec")+ <*> (o .:? "failureThreshold")+ <*> (o .:? "grpc")+ <*> (o .:? "httpGet")+ <*> (o .:? "initialDelaySeconds")+ <*> (o .:? "periodSeconds")+ <*> (o .:? "successThreshold")+ <*> (o .:? "tcpSocket")+ <*> (o .:? "terminationGracePeriodSeconds")+ <*> (o .:? "timeoutSeconds")++-- | ToJSON V1Probe+instance A.ToJSON V1Probe where+ toJSON V1Probe {..} =+ _omitNulls+ [ "exec" .= v1ProbeExec+ , "failureThreshold" .= v1ProbeFailureThreshold+ , "grpc" .= v1ProbeGrpc+ , "httpGet" .= v1ProbeHttpGet+ , "initialDelaySeconds" .= v1ProbeInitialDelaySeconds+ , "periodSeconds" .= v1ProbePeriodSeconds+ , "successThreshold" .= v1ProbeSuccessThreshold+ , "tcpSocket" .= v1ProbeTcpSocket+ , "terminationGracePeriodSeconds" .= v1ProbeTerminationGracePeriodSeconds+ , "timeoutSeconds" .= v1ProbeTimeoutSeconds+ ]+++-- | Construct a value of type 'V1Probe' (by applying it's required fields, if any)+mkV1Probe+ :: V1Probe+mkV1Probe =+ V1Probe+ { v1ProbeExec = Nothing+ , v1ProbeFailureThreshold = Nothing+ , v1ProbeGrpc = Nothing+ , v1ProbeHttpGet = Nothing+ , v1ProbeInitialDelaySeconds = Nothing+ , v1ProbePeriodSeconds = Nothing+ , v1ProbeSuccessThreshold = Nothing+ , v1ProbeTcpSocket = Nothing+ , v1ProbeTerminationGracePeriodSeconds = Nothing+ , v1ProbeTimeoutSeconds = Nothing+ }++-- ** V1ProjectedVolumeSource+-- | V1ProjectedVolumeSource+-- Represents a projected volume source+data V1ProjectedVolumeSource = V1ProjectedVolumeSource+ { v1ProjectedVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.+ , v1ProjectedVolumeSourceSources :: !(Maybe [V1VolumeProjection]) -- ^ "sources" - sources is the list of volume projections. Each entry in this list handles one source.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ProjectedVolumeSource+instance A.FromJSON V1ProjectedVolumeSource where+ parseJSON = A.withObject "V1ProjectedVolumeSource" $ \o ->+ V1ProjectedVolumeSource+ <$> (o .:? "defaultMode")+ <*> (o .:? "sources")++-- | ToJSON V1ProjectedVolumeSource+instance A.ToJSON V1ProjectedVolumeSource where+ toJSON V1ProjectedVolumeSource {..} =+ _omitNulls+ [ "defaultMode" .= v1ProjectedVolumeSourceDefaultMode+ , "sources" .= v1ProjectedVolumeSourceSources+ ]+++-- | Construct a value of type 'V1ProjectedVolumeSource' (by applying it's required fields, if any)+mkV1ProjectedVolumeSource+ :: V1ProjectedVolumeSource+mkV1ProjectedVolumeSource =+ V1ProjectedVolumeSource+ { v1ProjectedVolumeSourceDefaultMode = Nothing+ , v1ProjectedVolumeSourceSources = Nothing+ }++-- ** V1QueuingConfiguration+-- | V1QueuingConfiguration+-- QueuingConfiguration holds the configuration parameters for queuing+data V1QueuingConfiguration = V1QueuingConfiguration+ { v1QueuingConfigurationHandSize :: !(Maybe Int) -- ^ "handSize" - `handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8.+ , v1QueuingConfigurationQueueLengthLimit :: !(Maybe Int) -- ^ "queueLengthLimit" - `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50.+ , v1QueuingConfigurationQueues :: !(Maybe Int) -- ^ "queues" - `queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1QueuingConfiguration+instance A.FromJSON V1QueuingConfiguration where+ parseJSON = A.withObject "V1QueuingConfiguration" $ \o ->+ V1QueuingConfiguration+ <$> (o .:? "handSize")+ <*> (o .:? "queueLengthLimit")+ <*> (o .:? "queues")++-- | ToJSON V1QueuingConfiguration+instance A.ToJSON V1QueuingConfiguration where+ toJSON V1QueuingConfiguration {..} =+ _omitNulls+ [ "handSize" .= v1QueuingConfigurationHandSize+ , "queueLengthLimit" .= v1QueuingConfigurationQueueLengthLimit+ , "queues" .= v1QueuingConfigurationQueues+ ]+++-- | Construct a value of type 'V1QueuingConfiguration' (by applying it's required fields, if any)+mkV1QueuingConfiguration+ :: V1QueuingConfiguration+mkV1QueuingConfiguration =+ V1QueuingConfiguration+ { v1QueuingConfigurationHandSize = Nothing+ , v1QueuingConfigurationQueueLengthLimit = Nothing+ , v1QueuingConfigurationQueues = Nothing+ }++-- ** V1QuobyteVolumeSource+-- | V1QuobyteVolumeSource+-- Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.+data V1QuobyteVolumeSource = V1QuobyteVolumeSource+ { v1QuobyteVolumeSourceGroup :: !(Maybe Text) -- ^ "group" - group to map volume access to Default is no group+ , v1QuobyteVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.+ , v1QuobyteVolumeSourceRegistry :: !(Text) -- ^ /Required/ "registry" - registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes+ , v1QuobyteVolumeSourceTenant :: !(Maybe Text) -- ^ "tenant" - tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin+ , v1QuobyteVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user to map volume access to Defaults to serivceaccount user+ , v1QuobyteVolumeSourceVolume :: !(Text) -- ^ /Required/ "volume" - volume is a string that references an already created Quobyte volume by name.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1QuobyteVolumeSource+instance A.FromJSON V1QuobyteVolumeSource where+ parseJSON = A.withObject "V1QuobyteVolumeSource" $ \o ->+ V1QuobyteVolumeSource+ <$> (o .:? "group")+ <*> (o .:? "readOnly")+ <*> (o .: "registry")+ <*> (o .:? "tenant")+ <*> (o .:? "user")+ <*> (o .: "volume")++-- | ToJSON V1QuobyteVolumeSource+instance A.ToJSON V1QuobyteVolumeSource where+ toJSON V1QuobyteVolumeSource {..} =+ _omitNulls+ [ "group" .= v1QuobyteVolumeSourceGroup+ , "readOnly" .= v1QuobyteVolumeSourceReadOnly+ , "registry" .= v1QuobyteVolumeSourceRegistry+ , "tenant" .= v1QuobyteVolumeSourceTenant+ , "user" .= v1QuobyteVolumeSourceUser+ , "volume" .= v1QuobyteVolumeSourceVolume+ ]+++-- | Construct a value of type 'V1QuobyteVolumeSource' (by applying it's required fields, if any)+mkV1QuobyteVolumeSource+ :: Text -- ^ 'v1QuobyteVolumeSourceRegistry': registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes+ -> Text -- ^ 'v1QuobyteVolumeSourceVolume': volume is a string that references an already created Quobyte volume by name.+ -> V1QuobyteVolumeSource+mkV1QuobyteVolumeSource v1QuobyteVolumeSourceRegistry v1QuobyteVolumeSourceVolume =+ V1QuobyteVolumeSource+ { v1QuobyteVolumeSourceGroup = Nothing+ , v1QuobyteVolumeSourceReadOnly = Nothing+ , v1QuobyteVolumeSourceRegistry+ , v1QuobyteVolumeSourceTenant = Nothing+ , v1QuobyteVolumeSourceUser = Nothing+ , v1QuobyteVolumeSourceVolume+ }++-- ** V1RBDPersistentVolumeSource+-- | V1RBDPersistentVolumeSource+-- Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.+data V1RBDPersistentVolumeSource = V1RBDPersistentVolumeSource+ { v1RBDPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd+ , v1RBDPersistentVolumeSourceImage :: !(Text) -- ^ /Required/ "image" - image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDPersistentVolumeSourceKeyring :: !(Maybe Text) -- ^ "keyring" - keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDPersistentVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDPersistentVolumeSourcePool :: !(Maybe Text) -- ^ "pool" - pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"+ , v1RBDPersistentVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RBDPersistentVolumeSource+instance A.FromJSON V1RBDPersistentVolumeSource where+ parseJSON = A.withObject "V1RBDPersistentVolumeSource" $ \o ->+ V1RBDPersistentVolumeSource+ <$> (o .:? "fsType")+ <*> (o .: "image")+ <*> (o .:? "keyring")+ <*> (o .: "monitors")+ <*> (o .:? "pool")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")+ <*> (o .:? "user")++-- | ToJSON V1RBDPersistentVolumeSource+instance A.ToJSON V1RBDPersistentVolumeSource where+ toJSON V1RBDPersistentVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1RBDPersistentVolumeSourceFsType+ , "image" .= v1RBDPersistentVolumeSourceImage+ , "keyring" .= v1RBDPersistentVolumeSourceKeyring+ , "monitors" .= v1RBDPersistentVolumeSourceMonitors+ , "pool" .= v1RBDPersistentVolumeSourcePool+ , "readOnly" .= v1RBDPersistentVolumeSourceReadOnly+ , "secretRef" .= v1RBDPersistentVolumeSourceSecretRef+ , "user" .= v1RBDPersistentVolumeSourceUser+ ]+++-- | Construct a value of type 'V1RBDPersistentVolumeSource' (by applying it's required fields, if any)+mkV1RBDPersistentVolumeSource+ :: Text -- ^ 'v1RBDPersistentVolumeSourceImage': image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ -> [Text] -- ^ 'v1RBDPersistentVolumeSourceMonitors': monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ -> V1RBDPersistentVolumeSource+mkV1RBDPersistentVolumeSource v1RBDPersistentVolumeSourceImage v1RBDPersistentVolumeSourceMonitors =+ V1RBDPersistentVolumeSource+ { v1RBDPersistentVolumeSourceFsType = Nothing+ , v1RBDPersistentVolumeSourceImage+ , v1RBDPersistentVolumeSourceKeyring = Nothing+ , v1RBDPersistentVolumeSourceMonitors+ , v1RBDPersistentVolumeSourcePool = Nothing+ , v1RBDPersistentVolumeSourceReadOnly = Nothing+ , v1RBDPersistentVolumeSourceSecretRef = Nothing+ , v1RBDPersistentVolumeSourceUser = Nothing+ }++-- ** V1RBDVolumeSource+-- | V1RBDVolumeSource+-- Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.+data V1RBDVolumeSource = V1RBDVolumeSource+ { v1RBDVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd+ , v1RBDVolumeSourceImage :: !(Text) -- ^ /Required/ "image" - image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDVolumeSourceKeyring :: !(Maybe Text) -- ^ "keyring" - keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDVolumeSourcePool :: !(Maybe Text) -- ^ "pool" - pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ , v1RBDVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"+ , v1RBDVolumeSourceUser :: !(Maybe Text) -- ^ "user" - user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RBDVolumeSource+instance A.FromJSON V1RBDVolumeSource where+ parseJSON = A.withObject "V1RBDVolumeSource" $ \o ->+ V1RBDVolumeSource+ <$> (o .:? "fsType")+ <*> (o .: "image")+ <*> (o .:? "keyring")+ <*> (o .: "monitors")+ <*> (o .:? "pool")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")+ <*> (o .:? "user")++-- | ToJSON V1RBDVolumeSource+instance A.ToJSON V1RBDVolumeSource where+ toJSON V1RBDVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1RBDVolumeSourceFsType+ , "image" .= v1RBDVolumeSourceImage+ , "keyring" .= v1RBDVolumeSourceKeyring+ , "monitors" .= v1RBDVolumeSourceMonitors+ , "pool" .= v1RBDVolumeSourcePool+ , "readOnly" .= v1RBDVolumeSourceReadOnly+ , "secretRef" .= v1RBDVolumeSourceSecretRef+ , "user" .= v1RBDVolumeSourceUser+ ]+++-- | Construct a value of type 'V1RBDVolumeSource' (by applying it's required fields, if any)+mkV1RBDVolumeSource+ :: Text -- ^ 'v1RBDVolumeSourceImage': image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ -> [Text] -- ^ 'v1RBDVolumeSourceMonitors': monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it+ -> V1RBDVolumeSource+mkV1RBDVolumeSource v1RBDVolumeSourceImage v1RBDVolumeSourceMonitors =+ V1RBDVolumeSource+ { v1RBDVolumeSourceFsType = Nothing+ , v1RBDVolumeSourceImage+ , v1RBDVolumeSourceKeyring = Nothing+ , v1RBDVolumeSourceMonitors+ , v1RBDVolumeSourcePool = Nothing+ , v1RBDVolumeSourceReadOnly = Nothing+ , v1RBDVolumeSourceSecretRef = Nothing+ , v1RBDVolumeSourceUser = Nothing+ }++-- ** V1ReplicaSet+-- | V1ReplicaSet+-- ReplicaSet ensures that a specified number of pod replicas are running at any given time.+data V1ReplicaSet = V1ReplicaSet+ { v1ReplicaSetApiVersion :: !(Maybe Text) -- ^ "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+ , v1ReplicaSetKind :: !(Maybe Text) -- ^ "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+ , v1ReplicaSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ReplicaSetSpec :: !(Maybe V1ReplicaSetSpec) -- ^ "spec"+ , v1ReplicaSetStatus :: !(Maybe V1ReplicaSetStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicaSet+instance A.FromJSON V1ReplicaSet where+ parseJSON = A.withObject "V1ReplicaSet" $ \o ->+ V1ReplicaSet+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1ReplicaSet+instance A.ToJSON V1ReplicaSet where+ toJSON V1ReplicaSet {..} =+ _omitNulls+ [ "apiVersion" .= v1ReplicaSetApiVersion+ , "kind" .= v1ReplicaSetKind+ , "metadata" .= v1ReplicaSetMetadata+ , "spec" .= v1ReplicaSetSpec+ , "status" .= v1ReplicaSetStatus+ ]+++-- | Construct a value of type 'V1ReplicaSet' (by applying it's required fields, if any)+mkV1ReplicaSet+ :: V1ReplicaSet+mkV1ReplicaSet =+ V1ReplicaSet+ { v1ReplicaSetApiVersion = Nothing+ , v1ReplicaSetKind = Nothing+ , v1ReplicaSetMetadata = Nothing+ , v1ReplicaSetSpec = Nothing+ , v1ReplicaSetStatus = Nothing+ }++-- ** V1ReplicaSetCondition+-- | V1ReplicaSetCondition+-- ReplicaSetCondition describes the state of a replica set at a certain point.+data V1ReplicaSetCondition = V1ReplicaSetCondition+ { v1ReplicaSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - The last time the condition transitioned from one status to another.+ , v1ReplicaSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.+ , v1ReplicaSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.+ , v1ReplicaSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1ReplicaSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of replica set condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicaSetCondition+instance A.FromJSON V1ReplicaSetCondition where+ parseJSON = A.withObject "V1ReplicaSetCondition" $ \o ->+ V1ReplicaSetCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1ReplicaSetCondition+instance A.ToJSON V1ReplicaSetCondition where+ toJSON V1ReplicaSetCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1ReplicaSetConditionLastTransitionTime+ , "message" .= v1ReplicaSetConditionMessage+ , "reason" .= v1ReplicaSetConditionReason+ , "status" .= v1ReplicaSetConditionStatus+ , "type" .= v1ReplicaSetConditionType+ ]+++-- | Construct a value of type 'V1ReplicaSetCondition' (by applying it's required fields, if any)+mkV1ReplicaSetCondition+ :: Text -- ^ 'v1ReplicaSetConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1ReplicaSetConditionType': Type of replica set condition.+ -> V1ReplicaSetCondition+mkV1ReplicaSetCondition v1ReplicaSetConditionStatus v1ReplicaSetConditionType =+ V1ReplicaSetCondition+ { v1ReplicaSetConditionLastTransitionTime = Nothing+ , v1ReplicaSetConditionMessage = Nothing+ , v1ReplicaSetConditionReason = Nothing+ , v1ReplicaSetConditionStatus+ , v1ReplicaSetConditionType+ }++-- ** V1ReplicaSetList+-- | V1ReplicaSetList+-- ReplicaSetList is a collection of ReplicaSets.+data V1ReplicaSetList = V1ReplicaSetList+ { v1ReplicaSetListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ReplicaSetListItems :: !([V1ReplicaSet]) -- ^ /Required/ "items" - List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset+ , v1ReplicaSetListKind :: !(Maybe Text) -- ^ "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+ , v1ReplicaSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicaSetList+instance A.FromJSON V1ReplicaSetList where+ parseJSON = A.withObject "V1ReplicaSetList" $ \o ->+ V1ReplicaSetList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ReplicaSetList+instance A.ToJSON V1ReplicaSetList where+ toJSON V1ReplicaSetList {..} =+ _omitNulls+ [ "apiVersion" .= v1ReplicaSetListApiVersion+ , "items" .= v1ReplicaSetListItems+ , "kind" .= v1ReplicaSetListKind+ , "metadata" .= v1ReplicaSetListMetadata+ ]+++-- | Construct a value of type 'V1ReplicaSetList' (by applying it's required fields, if any)+mkV1ReplicaSetList+ :: [V1ReplicaSet] -- ^ 'v1ReplicaSetListItems': List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset+ -> V1ReplicaSetList+mkV1ReplicaSetList v1ReplicaSetListItems =+ V1ReplicaSetList+ { v1ReplicaSetListApiVersion = Nothing+ , v1ReplicaSetListItems+ , v1ReplicaSetListKind = Nothing+ , v1ReplicaSetListMetadata = Nothing+ }++-- ** V1ReplicaSetSpec+-- | V1ReplicaSetSpec+-- ReplicaSetSpec is the specification of a ReplicaSet.+data V1ReplicaSetSpec = V1ReplicaSetSpec+ { v1ReplicaSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - 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)+ , v1ReplicaSetSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Replicas is the number of desired pods. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset+ , v1ReplicaSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"+ , v1ReplicaSetSpecTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicaSetSpec+instance A.FromJSON V1ReplicaSetSpec where+ parseJSON = A.withObject "V1ReplicaSetSpec" $ \o ->+ V1ReplicaSetSpec+ <$> (o .:? "minReadySeconds")+ <*> (o .:? "replicas")+ <*> (o .: "selector")+ <*> (o .:? "template")++-- | ToJSON V1ReplicaSetSpec+instance A.ToJSON V1ReplicaSetSpec where+ toJSON V1ReplicaSetSpec {..} =+ _omitNulls+ [ "minReadySeconds" .= v1ReplicaSetSpecMinReadySeconds+ , "replicas" .= v1ReplicaSetSpecReplicas+ , "selector" .= v1ReplicaSetSpecSelector+ , "template" .= v1ReplicaSetSpecTemplate+ ]+++-- | Construct a value of type 'V1ReplicaSetSpec' (by applying it's required fields, if any)+mkV1ReplicaSetSpec+ :: V1LabelSelector -- ^ 'v1ReplicaSetSpecSelector' + -> V1ReplicaSetSpec+mkV1ReplicaSetSpec v1ReplicaSetSpecSelector =+ V1ReplicaSetSpec+ { v1ReplicaSetSpecMinReadySeconds = Nothing+ , v1ReplicaSetSpecReplicas = Nothing+ , v1ReplicaSetSpecSelector+ , v1ReplicaSetSpecTemplate = Nothing+ }++-- ** V1ReplicaSetStatus+-- | V1ReplicaSetStatus+-- ReplicaSetStatus represents the current status of a ReplicaSet.+data V1ReplicaSetStatus = V1ReplicaSetStatus+ { v1ReplicaSetStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - The number of available non-terminating pods (ready for at least minReadySeconds) for this replica set.+ , v1ReplicaSetStatusConditions :: !(Maybe [V1ReplicaSetCondition]) -- ^ "conditions" - Represents the latest available observations of a replica set's current state.+ , v1ReplicaSetStatusFullyLabeledReplicas :: !(Maybe Int) -- ^ "fullyLabeledReplicas" - The number of non-terminating pods that have labels matching the labels of the pod template of the replicaset.+ , v1ReplicaSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - ObservedGeneration reflects the generation of the most recently observed ReplicaSet.+ , v1ReplicaSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - The number of non-terminating pods targeted by this ReplicaSet with a Ready Condition.+ , v1ReplicaSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - Replicas is the most recently observed number of non-terminating pods. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset+ , v1ReplicaSetStatusTerminatingReplicas :: !(Maybe Int) -- ^ "terminatingReplicas" - The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicaSetStatus+instance A.FromJSON V1ReplicaSetStatus where+ parseJSON = A.withObject "V1ReplicaSetStatus" $ \o ->+ V1ReplicaSetStatus+ <$> (o .:? "availableReplicas")+ <*> (o .:? "conditions")+ <*> (o .:? "fullyLabeledReplicas")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "readyReplicas")+ <*> (o .: "replicas")+ <*> (o .:? "terminatingReplicas")++-- | ToJSON V1ReplicaSetStatus+instance A.ToJSON V1ReplicaSetStatus where+ toJSON V1ReplicaSetStatus {..} =+ _omitNulls+ [ "availableReplicas" .= v1ReplicaSetStatusAvailableReplicas+ , "conditions" .= v1ReplicaSetStatusConditions+ , "fullyLabeledReplicas" .= v1ReplicaSetStatusFullyLabeledReplicas+ , "observedGeneration" .= v1ReplicaSetStatusObservedGeneration+ , "readyReplicas" .= v1ReplicaSetStatusReadyReplicas+ , "replicas" .= v1ReplicaSetStatusReplicas+ , "terminatingReplicas" .= v1ReplicaSetStatusTerminatingReplicas+ ]+++-- | Construct a value of type 'V1ReplicaSetStatus' (by applying it's required fields, if any)+mkV1ReplicaSetStatus+ :: Int -- ^ 'v1ReplicaSetStatusReplicas': Replicas is the most recently observed number of non-terminating pods. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset+ -> V1ReplicaSetStatus+mkV1ReplicaSetStatus v1ReplicaSetStatusReplicas =+ V1ReplicaSetStatus+ { v1ReplicaSetStatusAvailableReplicas = Nothing+ , v1ReplicaSetStatusConditions = Nothing+ , v1ReplicaSetStatusFullyLabeledReplicas = Nothing+ , v1ReplicaSetStatusObservedGeneration = Nothing+ , v1ReplicaSetStatusReadyReplicas = Nothing+ , v1ReplicaSetStatusReplicas+ , v1ReplicaSetStatusTerminatingReplicas = Nothing+ }++-- ** V1ReplicationController+-- | V1ReplicationController+-- ReplicationController represents the configuration of a replication controller.+data V1ReplicationController = V1ReplicationController+ { v1ReplicationControllerApiVersion :: !(Maybe Text) -- ^ "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+ , v1ReplicationControllerKind :: !(Maybe Text) -- ^ "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+ , v1ReplicationControllerMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ReplicationControllerSpec :: !(Maybe V1ReplicationControllerSpec) -- ^ "spec"+ , v1ReplicationControllerStatus :: !(Maybe V1ReplicationControllerStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicationController+instance A.FromJSON V1ReplicationController where+ parseJSON = A.withObject "V1ReplicationController" $ \o ->+ V1ReplicationController+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1ReplicationController+instance A.ToJSON V1ReplicationController where+ toJSON V1ReplicationController {..} =+ _omitNulls+ [ "apiVersion" .= v1ReplicationControllerApiVersion+ , "kind" .= v1ReplicationControllerKind+ , "metadata" .= v1ReplicationControllerMetadata+ , "spec" .= v1ReplicationControllerSpec+ , "status" .= v1ReplicationControllerStatus+ ]+++-- | Construct a value of type 'V1ReplicationController' (by applying it's required fields, if any)+mkV1ReplicationController+ :: V1ReplicationController+mkV1ReplicationController =+ V1ReplicationController+ { v1ReplicationControllerApiVersion = Nothing+ , v1ReplicationControllerKind = Nothing+ , v1ReplicationControllerMetadata = Nothing+ , v1ReplicationControllerSpec = Nothing+ , v1ReplicationControllerStatus = Nothing+ }++-- ** V1ReplicationControllerCondition+-- | V1ReplicationControllerCondition+-- ReplicationControllerCondition describes the state of a replication controller at a certain point.+data V1ReplicationControllerCondition = V1ReplicationControllerCondition+ { v1ReplicationControllerConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - The last time the condition transitioned from one status to another.+ , v1ReplicationControllerConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.+ , v1ReplicationControllerConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.+ , v1ReplicationControllerConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1ReplicationControllerConditionType :: !(Text) -- ^ /Required/ "type" - Type of replication controller condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicationControllerCondition+instance A.FromJSON V1ReplicationControllerCondition where+ parseJSON = A.withObject "V1ReplicationControllerCondition" $ \o ->+ V1ReplicationControllerCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1ReplicationControllerCondition+instance A.ToJSON V1ReplicationControllerCondition where+ toJSON V1ReplicationControllerCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1ReplicationControllerConditionLastTransitionTime+ , "message" .= v1ReplicationControllerConditionMessage+ , "reason" .= v1ReplicationControllerConditionReason+ , "status" .= v1ReplicationControllerConditionStatus+ , "type" .= v1ReplicationControllerConditionType+ ]+++-- | Construct a value of type 'V1ReplicationControllerCondition' (by applying it's required fields, if any)+mkV1ReplicationControllerCondition+ :: Text -- ^ 'v1ReplicationControllerConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1ReplicationControllerConditionType': Type of replication controller condition.+ -> V1ReplicationControllerCondition+mkV1ReplicationControllerCondition v1ReplicationControllerConditionStatus v1ReplicationControllerConditionType =+ V1ReplicationControllerCondition+ { v1ReplicationControllerConditionLastTransitionTime = Nothing+ , v1ReplicationControllerConditionMessage = Nothing+ , v1ReplicationControllerConditionReason = Nothing+ , v1ReplicationControllerConditionStatus+ , v1ReplicationControllerConditionType+ }++-- ** V1ReplicationControllerList+-- | V1ReplicationControllerList+-- ReplicationControllerList is a collection of replication controllers.+data V1ReplicationControllerList = V1ReplicationControllerList+ { v1ReplicationControllerListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ReplicationControllerListItems :: !([V1ReplicationController]) -- ^ /Required/ "items" - List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller+ , v1ReplicationControllerListKind :: !(Maybe Text) -- ^ "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+ , v1ReplicationControllerListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicationControllerList+instance A.FromJSON V1ReplicationControllerList where+ parseJSON = A.withObject "V1ReplicationControllerList" $ \o ->+ V1ReplicationControllerList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ReplicationControllerList+instance A.ToJSON V1ReplicationControllerList where+ toJSON V1ReplicationControllerList {..} =+ _omitNulls+ [ "apiVersion" .= v1ReplicationControllerListApiVersion+ , "items" .= v1ReplicationControllerListItems+ , "kind" .= v1ReplicationControllerListKind+ , "metadata" .= v1ReplicationControllerListMetadata+ ]+++-- | Construct a value of type 'V1ReplicationControllerList' (by applying it's required fields, if any)+mkV1ReplicationControllerList+ :: [V1ReplicationController] -- ^ 'v1ReplicationControllerListItems': List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller+ -> V1ReplicationControllerList+mkV1ReplicationControllerList v1ReplicationControllerListItems =+ V1ReplicationControllerList+ { v1ReplicationControllerListApiVersion = Nothing+ , v1ReplicationControllerListItems+ , v1ReplicationControllerListKind = Nothing+ , v1ReplicationControllerListMetadata = Nothing+ }++-- ** V1ReplicationControllerSpec+-- | V1ReplicationControllerSpec+-- ReplicationControllerSpec is the specification of a replication controller.+data V1ReplicationControllerSpec = V1ReplicationControllerSpec+ { v1ReplicationControllerSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - 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)+ , v1ReplicationControllerSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller+ , v1ReplicationControllerSpecSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors+ , v1ReplicationControllerSpecTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicationControllerSpec+instance A.FromJSON V1ReplicationControllerSpec where+ parseJSON = A.withObject "V1ReplicationControllerSpec" $ \o ->+ V1ReplicationControllerSpec+ <$> (o .:? "minReadySeconds")+ <*> (o .:? "replicas")+ <*> (o .:? "selector")+ <*> (o .:? "template")++-- | ToJSON V1ReplicationControllerSpec+instance A.ToJSON V1ReplicationControllerSpec where+ toJSON V1ReplicationControllerSpec {..} =+ _omitNulls+ [ "minReadySeconds" .= v1ReplicationControllerSpecMinReadySeconds+ , "replicas" .= v1ReplicationControllerSpecReplicas+ , "selector" .= v1ReplicationControllerSpecSelector+ , "template" .= v1ReplicationControllerSpecTemplate+ ]+++-- | Construct a value of type 'V1ReplicationControllerSpec' (by applying it's required fields, if any)+mkV1ReplicationControllerSpec+ :: V1ReplicationControllerSpec+mkV1ReplicationControllerSpec =+ V1ReplicationControllerSpec+ { v1ReplicationControllerSpecMinReadySeconds = Nothing+ , v1ReplicationControllerSpecReplicas = Nothing+ , v1ReplicationControllerSpecSelector = Nothing+ , v1ReplicationControllerSpecTemplate = Nothing+ }++-- ** V1ReplicationControllerStatus+-- | V1ReplicationControllerStatus+-- ReplicationControllerStatus represents the current status of a replication controller.+data V1ReplicationControllerStatus = V1ReplicationControllerStatus+ { v1ReplicationControllerStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - The number of available replicas (ready for at least minReadySeconds) for this replication controller.+ , v1ReplicationControllerStatusConditions :: !(Maybe [V1ReplicationControllerCondition]) -- ^ "conditions" - Represents the latest available observations of a replication controller's current state.+ , v1ReplicationControllerStatusFullyLabeledReplicas :: !(Maybe Int) -- ^ "fullyLabeledReplicas" - The number of pods that have labels matching the labels of the pod template of the replication controller.+ , v1ReplicationControllerStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - ObservedGeneration reflects the generation of the most recently observed replication controller.+ , v1ReplicationControllerStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - The number of ready replicas for this replication controller.+ , v1ReplicationControllerStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ReplicationControllerStatus+instance A.FromJSON V1ReplicationControllerStatus where+ parseJSON = A.withObject "V1ReplicationControllerStatus" $ \o ->+ V1ReplicationControllerStatus+ <$> (o .:? "availableReplicas")+ <*> (o .:? "conditions")+ <*> (o .:? "fullyLabeledReplicas")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "readyReplicas")+ <*> (o .: "replicas")++-- | ToJSON V1ReplicationControllerStatus+instance A.ToJSON V1ReplicationControllerStatus where+ toJSON V1ReplicationControllerStatus {..} =+ _omitNulls+ [ "availableReplicas" .= v1ReplicationControllerStatusAvailableReplicas+ , "conditions" .= v1ReplicationControllerStatusConditions+ , "fullyLabeledReplicas" .= v1ReplicationControllerStatusFullyLabeledReplicas+ , "observedGeneration" .= v1ReplicationControllerStatusObservedGeneration+ , "readyReplicas" .= v1ReplicationControllerStatusReadyReplicas+ , "replicas" .= v1ReplicationControllerStatusReplicas+ ]+++-- | Construct a value of type 'V1ReplicationControllerStatus' (by applying it's required fields, if any)+mkV1ReplicationControllerStatus+ :: Int -- ^ 'v1ReplicationControllerStatusReplicas': Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller+ -> V1ReplicationControllerStatus+mkV1ReplicationControllerStatus v1ReplicationControllerStatusReplicas =+ V1ReplicationControllerStatus+ { v1ReplicationControllerStatusAvailableReplicas = Nothing+ , v1ReplicationControllerStatusConditions = Nothing+ , v1ReplicationControllerStatusFullyLabeledReplicas = Nothing+ , v1ReplicationControllerStatusObservedGeneration = Nothing+ , v1ReplicationControllerStatusReadyReplicas = Nothing+ , v1ReplicationControllerStatusReplicas+ }++-- ** V1ResourceAttributes+-- | V1ResourceAttributes+-- ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface+data V1ResourceAttributes = V1ResourceAttributes+ { v1ResourceAttributesFieldSelector :: !(Maybe V1FieldSelectorAttributes) -- ^ "fieldSelector"+ , v1ResourceAttributesGroup :: !(Maybe Text) -- ^ "group" - Group is the API Group of the Resource. \"*\" means all.+ , v1ResourceAttributesLabelSelector :: !(Maybe V1LabelSelectorAttributes) -- ^ "labelSelector"+ , v1ResourceAttributesName :: !(Maybe Text) -- ^ "name" - Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.+ , v1ResourceAttributesNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview+ , v1ResourceAttributesResource :: !(Maybe Text) -- ^ "resource" - Resource is one of the existing resource types. \"*\" means all.+ , v1ResourceAttributesSubresource :: !(Maybe Text) -- ^ "subresource" - Subresource is one of the existing resource types. \"\" means none.+ , v1ResourceAttributesVerb :: !(Maybe Text) -- ^ "verb" - Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.+ , v1ResourceAttributesVersion :: !(Maybe Text) -- ^ "version" - Version is the API Version of the Resource. \"*\" means all.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceAttributes+instance A.FromJSON V1ResourceAttributes where+ parseJSON = A.withObject "V1ResourceAttributes" $ \o ->+ V1ResourceAttributes+ <$> (o .:? "fieldSelector")+ <*> (o .:? "group")+ <*> (o .:? "labelSelector")+ <*> (o .:? "name")+ <*> (o .:? "namespace")+ <*> (o .:? "resource")+ <*> (o .:? "subresource")+ <*> (o .:? "verb")+ <*> (o .:? "version")++-- | ToJSON V1ResourceAttributes+instance A.ToJSON V1ResourceAttributes where+ toJSON V1ResourceAttributes {..} =+ _omitNulls+ [ "fieldSelector" .= v1ResourceAttributesFieldSelector+ , "group" .= v1ResourceAttributesGroup+ , "labelSelector" .= v1ResourceAttributesLabelSelector+ , "name" .= v1ResourceAttributesName+ , "namespace" .= v1ResourceAttributesNamespace+ , "resource" .= v1ResourceAttributesResource+ , "subresource" .= v1ResourceAttributesSubresource+ , "verb" .= v1ResourceAttributesVerb+ , "version" .= v1ResourceAttributesVersion+ ]+++-- | Construct a value of type 'V1ResourceAttributes' (by applying it's required fields, if any)+mkV1ResourceAttributes+ :: V1ResourceAttributes+mkV1ResourceAttributes =+ V1ResourceAttributes+ { v1ResourceAttributesFieldSelector = Nothing+ , v1ResourceAttributesGroup = Nothing+ , v1ResourceAttributesLabelSelector = Nothing+ , v1ResourceAttributesName = Nothing+ , v1ResourceAttributesNamespace = Nothing+ , v1ResourceAttributesResource = Nothing+ , v1ResourceAttributesSubresource = Nothing+ , v1ResourceAttributesVerb = Nothing+ , v1ResourceAttributesVersion = Nothing+ }++-- ** V1ResourceClaimConsumerReference+-- | V1ResourceClaimConsumerReference+-- 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.+data V1ResourceClaimConsumerReference = V1ResourceClaimConsumerReference+ { v1ResourceClaimConsumerReferenceApiGroup :: !(Maybe Text) -- ^ "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.+ , v1ResourceClaimConsumerReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced.+ , v1ResourceClaimConsumerReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the type of resource being referenced, for example \"pods\".+ , v1ResourceClaimConsumerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID identifies exactly one incarnation of the resource.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceClaimConsumerReference+instance A.FromJSON V1ResourceClaimConsumerReference where+ parseJSON = A.withObject "V1ResourceClaimConsumerReference" $ \o ->+ V1ResourceClaimConsumerReference+ <$> (o .:? "apiGroup")+ <*> (o .: "name")+ <*> (o .: "resource")+ <*> (o .: "uid")++-- | ToJSON V1ResourceClaimConsumerReference+instance A.ToJSON V1ResourceClaimConsumerReference where+ toJSON V1ResourceClaimConsumerReference {..} =+ _omitNulls+ [ "apiGroup" .= v1ResourceClaimConsumerReferenceApiGroup+ , "name" .= v1ResourceClaimConsumerReferenceName+ , "resource" .= v1ResourceClaimConsumerReferenceResource+ , "uid" .= v1ResourceClaimConsumerReferenceUid+ ]+++-- | Construct a value of type 'V1ResourceClaimConsumerReference' (by applying it's required fields, if any)+mkV1ResourceClaimConsumerReference+ :: Text -- ^ 'v1ResourceClaimConsumerReferenceName': Name is the name of resource being referenced.+ -> Text -- ^ 'v1ResourceClaimConsumerReferenceResource': Resource is the type of resource being referenced, for example \"pods\".+ -> Text -- ^ 'v1ResourceClaimConsumerReferenceUid': UID identifies exactly one incarnation of the resource.+ -> V1ResourceClaimConsumerReference+mkV1ResourceClaimConsumerReference v1ResourceClaimConsumerReferenceName v1ResourceClaimConsumerReferenceResource v1ResourceClaimConsumerReferenceUid =+ V1ResourceClaimConsumerReference+ { v1ResourceClaimConsumerReferenceApiGroup = Nothing+ , v1ResourceClaimConsumerReferenceName+ , v1ResourceClaimConsumerReferenceResource+ , v1ResourceClaimConsumerReferenceUid+ }++-- ** V1ResourceClaimList+-- | V1ResourceClaimList+-- ResourceClaimList is a collection of claims.+data V1ResourceClaimList = V1ResourceClaimList+ { v1ResourceClaimListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ResourceClaimListItems :: !([ResourceV1ResourceClaim]) -- ^ /Required/ "items" - Items is the list of resource claims.+ , v1ResourceClaimListKind :: !(Maybe Text) -- ^ "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+ , v1ResourceClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceClaimList+instance A.FromJSON V1ResourceClaimList where+ parseJSON = A.withObject "V1ResourceClaimList" $ \o ->+ V1ResourceClaimList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ResourceClaimList+instance A.ToJSON V1ResourceClaimList where+ toJSON V1ResourceClaimList {..} =+ _omitNulls+ [ "apiVersion" .= v1ResourceClaimListApiVersion+ , "items" .= v1ResourceClaimListItems+ , "kind" .= v1ResourceClaimListKind+ , "metadata" .= v1ResourceClaimListMetadata+ ]+++-- | Construct a value of type 'V1ResourceClaimList' (by applying it's required fields, if any)+mkV1ResourceClaimList+ :: [ResourceV1ResourceClaim] -- ^ 'v1ResourceClaimListItems': Items is the list of resource claims.+ -> V1ResourceClaimList+mkV1ResourceClaimList v1ResourceClaimListItems =+ V1ResourceClaimList+ { v1ResourceClaimListApiVersion = Nothing+ , v1ResourceClaimListItems+ , v1ResourceClaimListKind = Nothing+ , v1ResourceClaimListMetadata = Nothing+ }++-- ** V1ResourceClaimSpec+-- | V1ResourceClaimSpec+-- ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.+data V1ResourceClaimSpec = V1ResourceClaimSpec+ { v1ResourceClaimSpecDevices :: !(Maybe V1DeviceClaim) -- ^ "devices"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceClaimSpec+instance A.FromJSON V1ResourceClaimSpec where+ parseJSON = A.withObject "V1ResourceClaimSpec" $ \o ->+ V1ResourceClaimSpec+ <$> (o .:? "devices")++-- | ToJSON V1ResourceClaimSpec+instance A.ToJSON V1ResourceClaimSpec where+ toJSON V1ResourceClaimSpec {..} =+ _omitNulls+ [ "devices" .= v1ResourceClaimSpecDevices+ ]+++-- | Construct a value of type 'V1ResourceClaimSpec' (by applying it's required fields, if any)+mkV1ResourceClaimSpec+ :: V1ResourceClaimSpec+mkV1ResourceClaimSpec =+ V1ResourceClaimSpec+ { v1ResourceClaimSpecDevices = Nothing+ }++-- ** V1ResourceClaimStatus+-- | V1ResourceClaimStatus+-- ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.+data V1ResourceClaimStatus = V1ResourceClaimStatus+ { v1ResourceClaimStatusAllocation :: !(Maybe V1AllocationResult) -- ^ "allocation"+ , v1ResourceClaimStatusDevices :: !(Maybe [V1AllocatedDeviceStatus]) -- ^ "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.+ , v1ResourceClaimStatusReservedFor :: !(Maybe [V1ResourceClaimConsumerReference]) -- ^ "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 256 such reservations. This may get increased in the future, but not reduced.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceClaimStatus+instance A.FromJSON V1ResourceClaimStatus where+ parseJSON = A.withObject "V1ResourceClaimStatus" $ \o ->+ V1ResourceClaimStatus+ <$> (o .:? "allocation")+ <*> (o .:? "devices")+ <*> (o .:? "reservedFor")++-- | ToJSON V1ResourceClaimStatus+instance A.ToJSON V1ResourceClaimStatus where+ toJSON V1ResourceClaimStatus {..} =+ _omitNulls+ [ "allocation" .= v1ResourceClaimStatusAllocation+ , "devices" .= v1ResourceClaimStatusDevices+ , "reservedFor" .= v1ResourceClaimStatusReservedFor+ ]+++-- | Construct a value of type 'V1ResourceClaimStatus' (by applying it's required fields, if any)+mkV1ResourceClaimStatus+ :: V1ResourceClaimStatus+mkV1ResourceClaimStatus =+ V1ResourceClaimStatus+ { v1ResourceClaimStatusAllocation = Nothing+ , v1ResourceClaimStatusDevices = Nothing+ , v1ResourceClaimStatusReservedFor = Nothing+ }++-- ** V1ResourceClaimTemplate+-- | V1ResourceClaimTemplate+-- ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.+data V1ResourceClaimTemplate = V1ResourceClaimTemplate+ { v1ResourceClaimTemplateApiVersion :: !(Maybe Text) -- ^ "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+ , v1ResourceClaimTemplateKind :: !(Maybe Text) -- ^ "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+ , v1ResourceClaimTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ResourceClaimTemplateSpec :: !(V1ResourceClaimTemplateSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceClaimTemplate+instance A.FromJSON V1ResourceClaimTemplate where+ parseJSON = A.withObject "V1ResourceClaimTemplate" $ \o ->+ V1ResourceClaimTemplate+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1ResourceClaimTemplate+instance A.ToJSON V1ResourceClaimTemplate where+ toJSON V1ResourceClaimTemplate {..} =+ _omitNulls+ [ "apiVersion" .= v1ResourceClaimTemplateApiVersion+ , "kind" .= v1ResourceClaimTemplateKind+ , "metadata" .= v1ResourceClaimTemplateMetadata+ , "spec" .= v1ResourceClaimTemplateSpec+ ]+++-- | Construct a value of type 'V1ResourceClaimTemplate' (by applying it's required fields, if any)+mkV1ResourceClaimTemplate+ :: V1ResourceClaimTemplateSpec -- ^ 'v1ResourceClaimTemplateSpec' + -> V1ResourceClaimTemplate+mkV1ResourceClaimTemplate v1ResourceClaimTemplateSpec =+ V1ResourceClaimTemplate+ { v1ResourceClaimTemplateApiVersion = Nothing+ , v1ResourceClaimTemplateKind = Nothing+ , v1ResourceClaimTemplateMetadata = Nothing+ , v1ResourceClaimTemplateSpec+ }++-- ** V1ResourceClaimTemplateList+-- | V1ResourceClaimTemplateList+-- ResourceClaimTemplateList is a collection of claim templates.+data V1ResourceClaimTemplateList = V1ResourceClaimTemplateList+ { v1ResourceClaimTemplateListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ResourceClaimTemplateListItems :: !([V1ResourceClaimTemplate]) -- ^ /Required/ "items" - Items is the list of resource claim templates.+ , v1ResourceClaimTemplateListKind :: !(Maybe Text) -- ^ "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+ , v1ResourceClaimTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceClaimTemplateList+instance A.FromJSON V1ResourceClaimTemplateList where+ parseJSON = A.withObject "V1ResourceClaimTemplateList" $ \o ->+ V1ResourceClaimTemplateList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ResourceClaimTemplateList+instance A.ToJSON V1ResourceClaimTemplateList where+ toJSON V1ResourceClaimTemplateList {..} =+ _omitNulls+ [ "apiVersion" .= v1ResourceClaimTemplateListApiVersion+ , "items" .= v1ResourceClaimTemplateListItems+ , "kind" .= v1ResourceClaimTemplateListKind+ , "metadata" .= v1ResourceClaimTemplateListMetadata+ ]+++-- | Construct a value of type 'V1ResourceClaimTemplateList' (by applying it's required fields, if any)+mkV1ResourceClaimTemplateList+ :: [V1ResourceClaimTemplate] -- ^ 'v1ResourceClaimTemplateListItems': Items is the list of resource claim templates.+ -> V1ResourceClaimTemplateList+mkV1ResourceClaimTemplateList v1ResourceClaimTemplateListItems =+ V1ResourceClaimTemplateList+ { v1ResourceClaimTemplateListApiVersion = Nothing+ , v1ResourceClaimTemplateListItems+ , v1ResourceClaimTemplateListKind = Nothing+ , v1ResourceClaimTemplateListMetadata = Nothing+ }++-- ** V1ResourceClaimTemplateSpec+-- | V1ResourceClaimTemplateSpec+-- ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.+data V1ResourceClaimTemplateSpec = V1ResourceClaimTemplateSpec+ { v1ResourceClaimTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ResourceClaimTemplateSpecSpec :: !(V1ResourceClaimSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceClaimTemplateSpec+instance A.FromJSON V1ResourceClaimTemplateSpec where+ parseJSON = A.withObject "V1ResourceClaimTemplateSpec" $ \o ->+ V1ResourceClaimTemplateSpec+ <$> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1ResourceClaimTemplateSpec+instance A.ToJSON V1ResourceClaimTemplateSpec where+ toJSON V1ResourceClaimTemplateSpec {..} =+ _omitNulls+ [ "metadata" .= v1ResourceClaimTemplateSpecMetadata+ , "spec" .= v1ResourceClaimTemplateSpecSpec+ ]+++-- | Construct a value of type 'V1ResourceClaimTemplateSpec' (by applying it's required fields, if any)+mkV1ResourceClaimTemplateSpec+ :: V1ResourceClaimSpec -- ^ 'v1ResourceClaimTemplateSpecSpec' + -> V1ResourceClaimTemplateSpec+mkV1ResourceClaimTemplateSpec v1ResourceClaimTemplateSpecSpec =+ V1ResourceClaimTemplateSpec+ { v1ResourceClaimTemplateSpecMetadata = Nothing+ , v1ResourceClaimTemplateSpecSpec+ }++-- ** V1ResourceFieldSelector+-- | V1ResourceFieldSelector+-- ResourceFieldSelector represents container resources (cpu, memory) and their output format+data V1ResourceFieldSelector = V1ResourceFieldSelector+ { v1ResourceFieldSelectorContainerName :: !(Maybe Text) -- ^ "containerName" - Container name: required for volumes, optional for env vars+ , v1ResourceFieldSelectorDivisor :: !(Maybe Quantity) -- ^ "divisor"+ , v1ResourceFieldSelectorResource :: !(Text) -- ^ /Required/ "resource" - Required: resource to select+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceFieldSelector+instance A.FromJSON V1ResourceFieldSelector where+ parseJSON = A.withObject "V1ResourceFieldSelector" $ \o ->+ V1ResourceFieldSelector+ <$> (o .:? "containerName")+ <*> (o .:? "divisor")+ <*> (o .: "resource")++-- | ToJSON V1ResourceFieldSelector+instance A.ToJSON V1ResourceFieldSelector where+ toJSON V1ResourceFieldSelector {..} =+ _omitNulls+ [ "containerName" .= v1ResourceFieldSelectorContainerName+ , "divisor" .= v1ResourceFieldSelectorDivisor+ , "resource" .= v1ResourceFieldSelectorResource+ ]+++-- | Construct a value of type 'V1ResourceFieldSelector' (by applying it's required fields, if any)+mkV1ResourceFieldSelector+ :: Text -- ^ 'v1ResourceFieldSelectorResource': Required: resource to select+ -> V1ResourceFieldSelector+mkV1ResourceFieldSelector v1ResourceFieldSelectorResource =+ V1ResourceFieldSelector+ { v1ResourceFieldSelectorContainerName = Nothing+ , v1ResourceFieldSelectorDivisor = Nothing+ , v1ResourceFieldSelectorResource+ }++-- ** V1ResourceHealth+-- | V1ResourceHealth+-- 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.+data V1ResourceHealth = V1ResourceHealth+ { v1ResourceHealthHealth :: !(Maybe Text) -- ^ "health" - Health of the resource. can be one of: - Healthy: operates as normal - Unhealthy: reported unhealthy. We consider this a temporary health issue since we do not have a mechanism today to distinguish temporary and permanent issues. - Unknown: The status cannot be determined. For example, Device Plugin got unregistered and hasn't been re-registered since. In future we may want to introduce the PermanentlyUnhealthy Status.+ , v1ResourceHealthResourceId :: !(Text) -- ^ /Required/ "resourceID" - ResourceID is the unique identifier of the resource. See the ResourceID type for more information.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceHealth+instance A.FromJSON V1ResourceHealth where+ parseJSON = A.withObject "V1ResourceHealth" $ \o ->+ V1ResourceHealth+ <$> (o .:? "health")+ <*> (o .: "resourceID")++-- | ToJSON V1ResourceHealth+instance A.ToJSON V1ResourceHealth where+ toJSON V1ResourceHealth {..} =+ _omitNulls+ [ "health" .= v1ResourceHealthHealth+ , "resourceID" .= v1ResourceHealthResourceId+ ]+++-- | Construct a value of type 'V1ResourceHealth' (by applying it's required fields, if any)+mkV1ResourceHealth+ :: Text -- ^ 'v1ResourceHealthResourceId': ResourceID is the unique identifier of the resource. See the ResourceID type for more information.+ -> V1ResourceHealth+mkV1ResourceHealth v1ResourceHealthResourceId =+ V1ResourceHealth+ { v1ResourceHealthHealth = Nothing+ , v1ResourceHealthResourceId+ }++-- ** V1ResourcePolicyRule+-- | V1ResourcePolicyRule+-- ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.+data V1ResourcePolicyRule = V1ResourcePolicyRule+ { v1ResourcePolicyRuleApiGroups :: !([Text]) -- ^ /Required/ "apiGroups" - `apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.+ , v1ResourcePolicyRuleClusterScope :: !(Maybe Bool) -- ^ "clusterScope" - `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.+ , v1ResourcePolicyRuleNamespaces :: !(Maybe [Text]) -- ^ "namespaces" - `namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \"*\". Note that \"*\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.+ , v1ResourcePolicyRuleResources :: !([Text]) -- ^ /Required/ "resources" - `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.+ , v1ResourcePolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - `verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourcePolicyRule+instance A.FromJSON V1ResourcePolicyRule where+ parseJSON = A.withObject "V1ResourcePolicyRule" $ \o ->+ V1ResourcePolicyRule+ <$> (o .: "apiGroups")+ <*> (o .:? "clusterScope")+ <*> (o .:? "namespaces")+ <*> (o .: "resources")+ <*> (o .: "verbs")++-- | ToJSON V1ResourcePolicyRule+instance A.ToJSON V1ResourcePolicyRule where+ toJSON V1ResourcePolicyRule {..} =+ _omitNulls+ [ "apiGroups" .= v1ResourcePolicyRuleApiGroups+ , "clusterScope" .= v1ResourcePolicyRuleClusterScope+ , "namespaces" .= v1ResourcePolicyRuleNamespaces+ , "resources" .= v1ResourcePolicyRuleResources+ , "verbs" .= v1ResourcePolicyRuleVerbs+ ]+++-- | Construct a value of type 'V1ResourcePolicyRule' (by applying it's required fields, if any)+mkV1ResourcePolicyRule+ :: [Text] -- ^ 'v1ResourcePolicyRuleApiGroups': `apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.+ -> [Text] -- ^ 'v1ResourcePolicyRuleResources': `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.+ -> [Text] -- ^ 'v1ResourcePolicyRuleVerbs': `verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.+ -> V1ResourcePolicyRule+mkV1ResourcePolicyRule v1ResourcePolicyRuleApiGroups v1ResourcePolicyRuleResources v1ResourcePolicyRuleVerbs =+ V1ResourcePolicyRule+ { v1ResourcePolicyRuleApiGroups+ , v1ResourcePolicyRuleClusterScope = Nothing+ , v1ResourcePolicyRuleNamespaces = Nothing+ , v1ResourcePolicyRuleResources+ , v1ResourcePolicyRuleVerbs+ }++-- ** V1ResourcePool+-- | V1ResourcePool+-- ResourcePool describes the pool that ResourceSlices belong to.+data V1ResourcePool = V1ResourcePool+ { v1ResourcePoolGeneration :: !(Integer) -- ^ /Required/ "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.+ , v1ResourcePoolName :: !(Text) -- ^ /Required/ "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.+ , v1ResourcePoolResourceSliceCount :: !(Integer) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourcePool+instance A.FromJSON V1ResourcePool where+ parseJSON = A.withObject "V1ResourcePool" $ \o ->+ V1ResourcePool+ <$> (o .: "generation")+ <*> (o .: "name")+ <*> (o .: "resourceSliceCount")++-- | ToJSON V1ResourcePool+instance A.ToJSON V1ResourcePool where+ toJSON V1ResourcePool {..} =+ _omitNulls+ [ "generation" .= v1ResourcePoolGeneration+ , "name" .= v1ResourcePoolName+ , "resourceSliceCount" .= v1ResourcePoolResourceSliceCount+ ]+++-- | Construct a value of type 'V1ResourcePool' (by applying it's required fields, if any)+mkV1ResourcePool+ :: Integer -- ^ 'v1ResourcePoolGeneration': 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.+ -> Text -- ^ 'v1ResourcePoolName': 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.+ -> Integer -- ^ 'v1ResourcePoolResourceSliceCount': 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.+ -> V1ResourcePool+mkV1ResourcePool v1ResourcePoolGeneration v1ResourcePoolName v1ResourcePoolResourceSliceCount =+ V1ResourcePool+ { v1ResourcePoolGeneration+ , v1ResourcePoolName+ , v1ResourcePoolResourceSliceCount+ }++-- ** V1ResourceQuota+-- | V1ResourceQuota+-- ResourceQuota sets aggregate quota restrictions enforced per namespace+data V1ResourceQuota = V1ResourceQuota+ { v1ResourceQuotaApiVersion :: !(Maybe Text) -- ^ "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+ , v1ResourceQuotaKind :: !(Maybe Text) -- ^ "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+ , v1ResourceQuotaMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ResourceQuotaSpec :: !(Maybe V1ResourceQuotaSpec) -- ^ "spec"+ , v1ResourceQuotaStatus :: !(Maybe V1ResourceQuotaStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceQuota+instance A.FromJSON V1ResourceQuota where+ parseJSON = A.withObject "V1ResourceQuota" $ \o ->+ V1ResourceQuota+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1ResourceQuota+instance A.ToJSON V1ResourceQuota where+ toJSON V1ResourceQuota {..} =+ _omitNulls+ [ "apiVersion" .= v1ResourceQuotaApiVersion+ , "kind" .= v1ResourceQuotaKind+ , "metadata" .= v1ResourceQuotaMetadata+ , "spec" .= v1ResourceQuotaSpec+ , "status" .= v1ResourceQuotaStatus+ ]+++-- | Construct a value of type 'V1ResourceQuota' (by applying it's required fields, if any)+mkV1ResourceQuota+ :: V1ResourceQuota+mkV1ResourceQuota =+ V1ResourceQuota+ { v1ResourceQuotaApiVersion = Nothing+ , v1ResourceQuotaKind = Nothing+ , v1ResourceQuotaMetadata = Nothing+ , v1ResourceQuotaSpec = Nothing+ , v1ResourceQuotaStatus = Nothing+ }++-- ** V1ResourceQuotaList+-- | V1ResourceQuotaList+-- ResourceQuotaList is a list of ResourceQuota items.+data V1ResourceQuotaList = V1ResourceQuotaList+ { v1ResourceQuotaListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ResourceQuotaListItems :: !([V1ResourceQuota]) -- ^ /Required/ "items" - Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/+ , v1ResourceQuotaListKind :: !(Maybe Text) -- ^ "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+ , v1ResourceQuotaListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceQuotaList+instance A.FromJSON V1ResourceQuotaList where+ parseJSON = A.withObject "V1ResourceQuotaList" $ \o ->+ V1ResourceQuotaList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ResourceQuotaList+instance A.ToJSON V1ResourceQuotaList where+ toJSON V1ResourceQuotaList {..} =+ _omitNulls+ [ "apiVersion" .= v1ResourceQuotaListApiVersion+ , "items" .= v1ResourceQuotaListItems+ , "kind" .= v1ResourceQuotaListKind+ , "metadata" .= v1ResourceQuotaListMetadata+ ]+++-- | Construct a value of type 'V1ResourceQuotaList' (by applying it's required fields, if any)+mkV1ResourceQuotaList+ :: [V1ResourceQuota] -- ^ 'v1ResourceQuotaListItems': Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/+ -> V1ResourceQuotaList+mkV1ResourceQuotaList v1ResourceQuotaListItems =+ V1ResourceQuotaList+ { v1ResourceQuotaListApiVersion = Nothing+ , v1ResourceQuotaListItems+ , v1ResourceQuotaListKind = Nothing+ , v1ResourceQuotaListMetadata = Nothing+ }++-- ** V1ResourceQuotaSpec+-- | V1ResourceQuotaSpec+-- ResourceQuotaSpec defines the desired hard limits to enforce for Quota.+data V1ResourceQuotaSpec = V1ResourceQuotaSpec+ { v1ResourceQuotaSpecHard :: !(Maybe (Map.Map String Quantity)) -- ^ "hard" - hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/+ , v1ResourceQuotaSpecScopeSelector :: !(Maybe V1ScopeSelector) -- ^ "scopeSelector"+ , v1ResourceQuotaSpecScopes :: !(Maybe [Text]) -- ^ "scopes" - A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceQuotaSpec+instance A.FromJSON V1ResourceQuotaSpec where+ parseJSON = A.withObject "V1ResourceQuotaSpec" $ \o ->+ V1ResourceQuotaSpec+ <$> (o .:? "hard")+ <*> (o .:? "scopeSelector")+ <*> (o .:? "scopes")++-- | ToJSON V1ResourceQuotaSpec+instance A.ToJSON V1ResourceQuotaSpec where+ toJSON V1ResourceQuotaSpec {..} =+ _omitNulls+ [ "hard" .= v1ResourceQuotaSpecHard+ , "scopeSelector" .= v1ResourceQuotaSpecScopeSelector+ , "scopes" .= v1ResourceQuotaSpecScopes+ ]+++-- | Construct a value of type 'V1ResourceQuotaSpec' (by applying it's required fields, if any)+mkV1ResourceQuotaSpec+ :: V1ResourceQuotaSpec+mkV1ResourceQuotaSpec =+ V1ResourceQuotaSpec+ { v1ResourceQuotaSpecHard = Nothing+ , v1ResourceQuotaSpecScopeSelector = Nothing+ , v1ResourceQuotaSpecScopes = Nothing+ }++-- ** V1ResourceQuotaStatus+-- | V1ResourceQuotaStatus+-- ResourceQuotaStatus defines the enforced hard limits and observed use.+data V1ResourceQuotaStatus = V1ResourceQuotaStatus+ { v1ResourceQuotaStatusHard :: !(Maybe (Map.Map String Quantity)) -- ^ "hard" - Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/+ , v1ResourceQuotaStatusUsed :: !(Maybe (Map.Map String Quantity)) -- ^ "used" - Used is the current observed total usage of the resource in the namespace.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceQuotaStatus+instance A.FromJSON V1ResourceQuotaStatus where+ parseJSON = A.withObject "V1ResourceQuotaStatus" $ \o ->+ V1ResourceQuotaStatus+ <$> (o .:? "hard")+ <*> (o .:? "used")++-- | ToJSON V1ResourceQuotaStatus+instance A.ToJSON V1ResourceQuotaStatus where+ toJSON V1ResourceQuotaStatus {..} =+ _omitNulls+ [ "hard" .= v1ResourceQuotaStatusHard+ , "used" .= v1ResourceQuotaStatusUsed+ ]+++-- | Construct a value of type 'V1ResourceQuotaStatus' (by applying it's required fields, if any)+mkV1ResourceQuotaStatus+ :: V1ResourceQuotaStatus+mkV1ResourceQuotaStatus =+ V1ResourceQuotaStatus+ { v1ResourceQuotaStatusHard = Nothing+ , v1ResourceQuotaStatusUsed = Nothing+ }++-- ** V1ResourceRequirements+-- | V1ResourceRequirements+-- ResourceRequirements describes the compute resource requirements.+data V1ResourceRequirements = V1ResourceRequirements+ { v1ResourceRequirementsClaims :: !(Maybe [CoreV1ResourceClaim]) -- ^ "claims" - Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.+ , v1ResourceRequirementsLimits :: !(Maybe (Map.Map String Quantity)) -- ^ "limits" - Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/+ , v1ResourceRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceRequirements+instance A.FromJSON V1ResourceRequirements where+ parseJSON = A.withObject "V1ResourceRequirements" $ \o ->+ V1ResourceRequirements+ <$> (o .:? "claims")+ <*> (o .:? "limits")+ <*> (o .:? "requests")++-- | ToJSON V1ResourceRequirements+instance A.ToJSON V1ResourceRequirements where+ toJSON V1ResourceRequirements {..} =+ _omitNulls+ [ "claims" .= v1ResourceRequirementsClaims+ , "limits" .= v1ResourceRequirementsLimits+ , "requests" .= v1ResourceRequirementsRequests+ ]+++-- | Construct a value of type 'V1ResourceRequirements' (by applying it's required fields, if any)+mkV1ResourceRequirements+ :: V1ResourceRequirements+mkV1ResourceRequirements =+ V1ResourceRequirements+ { v1ResourceRequirementsClaims = Nothing+ , v1ResourceRequirementsLimits = Nothing+ , v1ResourceRequirementsRequests = Nothing+ }++-- ** V1ResourceRule+-- | V1ResourceRule+-- ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.+data V1ResourceRule = V1ResourceRule+ { v1ResourceRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.+ , v1ResourceRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.+ , v1ResourceRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups. \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.+ , v1ResourceRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceRule+instance A.FromJSON V1ResourceRule where+ parseJSON = A.withObject "V1ResourceRule" $ \o ->+ V1ResourceRule+ <$> (o .:? "apiGroups")+ <*> (o .:? "resourceNames")+ <*> (o .:? "resources")+ <*> (o .: "verbs")++-- | ToJSON V1ResourceRule+instance A.ToJSON V1ResourceRule where+ toJSON V1ResourceRule {..} =+ _omitNulls+ [ "apiGroups" .= v1ResourceRuleApiGroups+ , "resourceNames" .= v1ResourceRuleResourceNames+ , "resources" .= v1ResourceRuleResources+ , "verbs" .= v1ResourceRuleVerbs+ ]+++-- | Construct a value of type 'V1ResourceRule' (by applying it's required fields, if any)+mkV1ResourceRule+ :: [Text] -- ^ 'v1ResourceRuleVerbs': Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.+ -> V1ResourceRule+mkV1ResourceRule v1ResourceRuleVerbs =+ V1ResourceRule+ { v1ResourceRuleApiGroups = Nothing+ , v1ResourceRuleResourceNames = Nothing+ , v1ResourceRuleResources = Nothing+ , v1ResourceRuleVerbs+ }++-- ** V1ResourceSlice+-- | V1ResourceSlice+-- 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.+data V1ResourceSlice = V1ResourceSlice+ { v1ResourceSliceApiVersion :: !(Maybe Text) -- ^ "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+ , v1ResourceSliceKind :: !(Maybe Text) -- ^ "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+ , v1ResourceSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ResourceSliceSpec :: !(V1ResourceSliceSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceSlice+instance A.FromJSON V1ResourceSlice where+ parseJSON = A.withObject "V1ResourceSlice" $ \o ->+ V1ResourceSlice+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1ResourceSlice+instance A.ToJSON V1ResourceSlice where+ toJSON V1ResourceSlice {..} =+ _omitNulls+ [ "apiVersion" .= v1ResourceSliceApiVersion+ , "kind" .= v1ResourceSliceKind+ , "metadata" .= v1ResourceSliceMetadata+ , "spec" .= v1ResourceSliceSpec+ ]+++-- | Construct a value of type 'V1ResourceSlice' (by applying it's required fields, if any)+mkV1ResourceSlice+ :: V1ResourceSliceSpec -- ^ 'v1ResourceSliceSpec' + -> V1ResourceSlice+mkV1ResourceSlice v1ResourceSliceSpec =+ V1ResourceSlice+ { v1ResourceSliceApiVersion = Nothing+ , v1ResourceSliceKind = Nothing+ , v1ResourceSliceMetadata = Nothing+ , v1ResourceSliceSpec+ }++-- ** V1ResourceSliceList+-- | V1ResourceSliceList+-- ResourceSliceList is a collection of ResourceSlices.+data V1ResourceSliceList = V1ResourceSliceList+ { v1ResourceSliceListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ResourceSliceListItems :: !([V1ResourceSlice]) -- ^ /Required/ "items" - Items is the list of resource ResourceSlices.+ , v1ResourceSliceListKind :: !(Maybe Text) -- ^ "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+ , v1ResourceSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceSliceList+instance A.FromJSON V1ResourceSliceList where+ parseJSON = A.withObject "V1ResourceSliceList" $ \o ->+ V1ResourceSliceList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ResourceSliceList+instance A.ToJSON V1ResourceSliceList where+ toJSON V1ResourceSliceList {..} =+ _omitNulls+ [ "apiVersion" .= v1ResourceSliceListApiVersion+ , "items" .= v1ResourceSliceListItems+ , "kind" .= v1ResourceSliceListKind+ , "metadata" .= v1ResourceSliceListMetadata+ ]+++-- | Construct a value of type 'V1ResourceSliceList' (by applying it's required fields, if any)+mkV1ResourceSliceList+ :: [V1ResourceSlice] -- ^ 'v1ResourceSliceListItems': Items is the list of resource ResourceSlices.+ -> V1ResourceSliceList+mkV1ResourceSliceList v1ResourceSliceListItems =+ V1ResourceSliceList+ { v1ResourceSliceListApiVersion = Nothing+ , v1ResourceSliceListItems+ , v1ResourceSliceListKind = Nothing+ , v1ResourceSliceListMetadata = Nothing+ }++-- ** V1ResourceSliceSpec+-- | V1ResourceSliceSpec+-- ResourceSliceSpec contains the information published by the driver in one ResourceSlice.+data V1ResourceSliceSpec = V1ResourceSliceSpec+ { v1ResourceSliceSpecAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the resources in the pool. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.+ , v1ResourceSliceSpecDevices :: !(Maybe [V1Device]) -- ^ "devices" - Devices lists some or all of the devices in this pool. Must not have more than 128 entries. If any device uses taints or consumes counters the limit is 64. Only one of Devices and SharedCounters can be set in a ResourceSlice.+ , v1ResourceSliceSpecDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters. This field is immutable.+ , v1ResourceSliceSpecNodeName :: !(Maybe Text) -- ^ "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, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.+ , v1ResourceSliceSpecNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ , v1ResourceSliceSpecPerDeviceNodeSelection :: !(Maybe Bool) -- ^ "perDeviceNodeSelection" - PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.+ , v1ResourceSliceSpecPool :: !(V1ResourcePool) -- ^ /Required/ "pool"+ , v1ResourceSliceSpecSharedCounters :: !(Maybe [V1CounterSet]) -- ^ "sharedCounters" - SharedCounters defines a list of counter sets, each of which has a name and a list of counters available. The names of the counter sets must be unique in the ResourcePool. Only one of Devices and SharedCounters can be set in a ResourceSlice. The maximum number of counter sets is 8.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceSliceSpec+instance A.FromJSON V1ResourceSliceSpec where+ parseJSON = A.withObject "V1ResourceSliceSpec" $ \o ->+ V1ResourceSliceSpec+ <$> (o .:? "allNodes")+ <*> (o .:? "devices")+ <*> (o .: "driver")+ <*> (o .:? "nodeName")+ <*> (o .:? "nodeSelector")+ <*> (o .:? "perDeviceNodeSelection")+ <*> (o .: "pool")+ <*> (o .:? "sharedCounters")++-- | ToJSON V1ResourceSliceSpec+instance A.ToJSON V1ResourceSliceSpec where+ toJSON V1ResourceSliceSpec {..} =+ _omitNulls+ [ "allNodes" .= v1ResourceSliceSpecAllNodes+ , "devices" .= v1ResourceSliceSpecDevices+ , "driver" .= v1ResourceSliceSpecDriver+ , "nodeName" .= v1ResourceSliceSpecNodeName+ , "nodeSelector" .= v1ResourceSliceSpecNodeSelector+ , "perDeviceNodeSelection" .= v1ResourceSliceSpecPerDeviceNodeSelection+ , "pool" .= v1ResourceSliceSpecPool+ , "sharedCounters" .= v1ResourceSliceSpecSharedCounters+ ]+++-- | Construct a value of type 'V1ResourceSliceSpec' (by applying it's required fields, if any)+mkV1ResourceSliceSpec+ :: Text -- ^ 'v1ResourceSliceSpecDriver': 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. It should use only lower case characters. This field is immutable.+ -> V1ResourcePool -- ^ 'v1ResourceSliceSpecPool' + -> V1ResourceSliceSpec+mkV1ResourceSliceSpec v1ResourceSliceSpecDriver v1ResourceSliceSpecPool =+ V1ResourceSliceSpec+ { v1ResourceSliceSpecAllNodes = Nothing+ , v1ResourceSliceSpecDevices = Nothing+ , v1ResourceSliceSpecDriver+ , v1ResourceSliceSpecNodeName = Nothing+ , v1ResourceSliceSpecNodeSelector = Nothing+ , v1ResourceSliceSpecPerDeviceNodeSelection = Nothing+ , v1ResourceSliceSpecPool+ , v1ResourceSliceSpecSharedCounters = Nothing+ }++-- ** V1ResourceStatus+-- | V1ResourceStatus+-- ResourceStatus represents the status of a single resource allocated to a Pod.+data V1ResourceStatus = V1ResourceStatus+ { v1ResourceStatusName :: !(Text) -- ^ /Required/ "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.+ , v1ResourceStatusResources :: !(Maybe [V1ResourceHealth]) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ResourceStatus+instance A.FromJSON V1ResourceStatus where+ parseJSON = A.withObject "V1ResourceStatus" $ \o ->+ V1ResourceStatus+ <$> (o .: "name")+ <*> (o .:? "resources")++-- | ToJSON V1ResourceStatus+instance A.ToJSON V1ResourceStatus where+ toJSON V1ResourceStatus {..} =+ _omitNulls+ [ "name" .= v1ResourceStatusName+ , "resources" .= v1ResourceStatusResources+ ]+++-- | Construct a value of type 'V1ResourceStatus' (by applying it's required fields, if any)+mkV1ResourceStatus+ :: Text -- ^ 'v1ResourceStatusName': 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.+ -> V1ResourceStatus+mkV1ResourceStatus v1ResourceStatusName =+ V1ResourceStatus+ { v1ResourceStatusName+ , v1ResourceStatusResources = Nothing+ }++-- ** V1Role+-- | V1Role+-- Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.+data V1Role = V1Role+ { v1RoleApiVersion :: !(Maybe Text) -- ^ "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+ , v1RoleKind :: !(Maybe Text) -- ^ "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+ , v1RoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1RoleRules :: !(Maybe [V1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this Role+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Role+instance A.FromJSON V1Role where+ parseJSON = A.withObject "V1Role" $ \o ->+ V1Role+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "rules")++-- | ToJSON V1Role+instance A.ToJSON V1Role where+ toJSON V1Role {..} =+ _omitNulls+ [ "apiVersion" .= v1RoleApiVersion+ , "kind" .= v1RoleKind+ , "metadata" .= v1RoleMetadata+ , "rules" .= v1RoleRules+ ]+++-- | Construct a value of type 'V1Role' (by applying it's required fields, if any)+mkV1Role+ :: V1Role+mkV1Role =+ V1Role+ { v1RoleApiVersion = Nothing+ , v1RoleKind = Nothing+ , v1RoleMetadata = Nothing+ , v1RoleRules = Nothing+ }++-- ** V1RoleBinding+-- | V1RoleBinding+-- RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.+data V1RoleBinding = V1RoleBinding+ { v1RoleBindingApiVersion :: !(Maybe Text) -- ^ "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+ , v1RoleBindingKind :: !(Maybe Text) -- ^ "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+ , v1RoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1RoleBindingRoleRef :: !(V1RoleRef) -- ^ /Required/ "roleRef"+ , v1RoleBindingSubjects :: !(Maybe [RbacV1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RoleBinding+instance A.FromJSON V1RoleBinding where+ parseJSON = A.withObject "V1RoleBinding" $ \o ->+ V1RoleBinding+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "roleRef")+ <*> (o .:? "subjects")++-- | ToJSON V1RoleBinding+instance A.ToJSON V1RoleBinding where+ toJSON V1RoleBinding {..} =+ _omitNulls+ [ "apiVersion" .= v1RoleBindingApiVersion+ , "kind" .= v1RoleBindingKind+ , "metadata" .= v1RoleBindingMetadata+ , "roleRef" .= v1RoleBindingRoleRef+ , "subjects" .= v1RoleBindingSubjects+ ]+++-- | Construct a value of type 'V1RoleBinding' (by applying it's required fields, if any)+mkV1RoleBinding+ :: V1RoleRef -- ^ 'v1RoleBindingRoleRef' + -> V1RoleBinding+mkV1RoleBinding v1RoleBindingRoleRef =+ V1RoleBinding+ { v1RoleBindingApiVersion = Nothing+ , v1RoleBindingKind = Nothing+ , v1RoleBindingMetadata = Nothing+ , v1RoleBindingRoleRef+ , v1RoleBindingSubjects = Nothing+ }++-- ** V1RoleBindingList+-- | V1RoleBindingList+-- RoleBindingList is a collection of RoleBindings+data V1RoleBindingList = V1RoleBindingList+ { v1RoleBindingListApiVersion :: !(Maybe Text) -- ^ "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+ , v1RoleBindingListItems :: !([V1RoleBinding]) -- ^ /Required/ "items" - Items is a list of RoleBindings+ , v1RoleBindingListKind :: !(Maybe Text) -- ^ "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+ , v1RoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RoleBindingList+instance A.FromJSON V1RoleBindingList where+ parseJSON = A.withObject "V1RoleBindingList" $ \o ->+ V1RoleBindingList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1RoleBindingList+instance A.ToJSON V1RoleBindingList where+ toJSON V1RoleBindingList {..} =+ _omitNulls+ [ "apiVersion" .= v1RoleBindingListApiVersion+ , "items" .= v1RoleBindingListItems+ , "kind" .= v1RoleBindingListKind+ , "metadata" .= v1RoleBindingListMetadata+ ]+++-- | Construct a value of type 'V1RoleBindingList' (by applying it's required fields, if any)+mkV1RoleBindingList+ :: [V1RoleBinding] -- ^ 'v1RoleBindingListItems': Items is a list of RoleBindings+ -> V1RoleBindingList+mkV1RoleBindingList v1RoleBindingListItems =+ V1RoleBindingList+ { v1RoleBindingListApiVersion = Nothing+ , v1RoleBindingListItems+ , v1RoleBindingListKind = Nothing+ , v1RoleBindingListMetadata = Nothing+ }++-- ** V1RoleList+-- | V1RoleList+-- RoleList is a collection of Roles+data V1RoleList = V1RoleList+ { v1RoleListApiVersion :: !(Maybe Text) -- ^ "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+ , v1RoleListItems :: !([V1Role]) -- ^ /Required/ "items" - Items is a list of Roles+ , v1RoleListKind :: !(Maybe Text) -- ^ "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+ , v1RoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RoleList+instance A.FromJSON V1RoleList where+ parseJSON = A.withObject "V1RoleList" $ \o ->+ V1RoleList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1RoleList+instance A.ToJSON V1RoleList where+ toJSON V1RoleList {..} =+ _omitNulls+ [ "apiVersion" .= v1RoleListApiVersion+ , "items" .= v1RoleListItems+ , "kind" .= v1RoleListKind+ , "metadata" .= v1RoleListMetadata+ ]+++-- | Construct a value of type 'V1RoleList' (by applying it's required fields, if any)+mkV1RoleList+ :: [V1Role] -- ^ 'v1RoleListItems': Items is a list of Roles+ -> V1RoleList+mkV1RoleList v1RoleListItems =+ V1RoleList+ { v1RoleListApiVersion = Nothing+ , v1RoleListItems+ , v1RoleListKind = Nothing+ , v1RoleListMetadata = Nothing+ }++-- ** V1RoleRef+-- | V1RoleRef+-- RoleRef contains information that points to the role being used+data V1RoleRef = V1RoleRef+ { v1RoleRefApiGroup :: !(Text) -- ^ /Required/ "apiGroup" - APIGroup is the group for the resource being referenced+ , v1RoleRefKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced+ , v1RoleRefName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RoleRef+instance A.FromJSON V1RoleRef where+ parseJSON = A.withObject "V1RoleRef" $ \o ->+ V1RoleRef+ <$> (o .: "apiGroup")+ <*> (o .: "kind")+ <*> (o .: "name")++-- | ToJSON V1RoleRef+instance A.ToJSON V1RoleRef where+ toJSON V1RoleRef {..} =+ _omitNulls+ [ "apiGroup" .= v1RoleRefApiGroup+ , "kind" .= v1RoleRefKind+ , "name" .= v1RoleRefName+ ]+++-- | Construct a value of type 'V1RoleRef' (by applying it's required fields, if any)+mkV1RoleRef+ :: Text -- ^ 'v1RoleRefApiGroup': APIGroup is the group for the resource being referenced+ -> Text -- ^ 'v1RoleRefKind': Kind is the type of resource being referenced+ -> Text -- ^ 'v1RoleRefName': Name is the name of resource being referenced+ -> V1RoleRef+mkV1RoleRef v1RoleRefApiGroup v1RoleRefKind v1RoleRefName =+ V1RoleRef+ { v1RoleRefApiGroup+ , v1RoleRefKind+ , v1RoleRefName+ }++-- ** V1RollingUpdateDaemonSet+-- | V1RollingUpdateDaemonSet+-- Spec to control the desired behavior of daemon set rolling update.+data V1RollingUpdateDaemonSet = V1RollingUpdateDaemonSet+ { v1RollingUpdateDaemonSetMaxSurge :: !(Maybe IntOrString) -- ^ "maxSurge"+ , v1RollingUpdateDaemonSetMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RollingUpdateDaemonSet+instance A.FromJSON V1RollingUpdateDaemonSet where+ parseJSON = A.withObject "V1RollingUpdateDaemonSet" $ \o ->+ V1RollingUpdateDaemonSet+ <$> (o .:? "maxSurge")+ <*> (o .:? "maxUnavailable")++-- | ToJSON V1RollingUpdateDaemonSet+instance A.ToJSON V1RollingUpdateDaemonSet where+ toJSON V1RollingUpdateDaemonSet {..} =+ _omitNulls+ [ "maxSurge" .= v1RollingUpdateDaemonSetMaxSurge+ , "maxUnavailable" .= v1RollingUpdateDaemonSetMaxUnavailable+ ]+++-- | Construct a value of type 'V1RollingUpdateDaemonSet' (by applying it's required fields, if any)+mkV1RollingUpdateDaemonSet+ :: V1RollingUpdateDaemonSet+mkV1RollingUpdateDaemonSet =+ V1RollingUpdateDaemonSet+ { v1RollingUpdateDaemonSetMaxSurge = Nothing+ , v1RollingUpdateDaemonSetMaxUnavailable = Nothing+ }++-- ** V1RollingUpdateDeployment+-- | V1RollingUpdateDeployment+-- Spec to control the desired behavior of rolling update.+data V1RollingUpdateDeployment = V1RollingUpdateDeployment+ { v1RollingUpdateDeploymentMaxSurge :: !(Maybe IntOrString) -- ^ "maxSurge"+ , v1RollingUpdateDeploymentMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RollingUpdateDeployment+instance A.FromJSON V1RollingUpdateDeployment where+ parseJSON = A.withObject "V1RollingUpdateDeployment" $ \o ->+ V1RollingUpdateDeployment+ <$> (o .:? "maxSurge")+ <*> (o .:? "maxUnavailable")++-- | ToJSON V1RollingUpdateDeployment+instance A.ToJSON V1RollingUpdateDeployment where+ toJSON V1RollingUpdateDeployment {..} =+ _omitNulls+ [ "maxSurge" .= v1RollingUpdateDeploymentMaxSurge+ , "maxUnavailable" .= v1RollingUpdateDeploymentMaxUnavailable+ ]+++-- | Construct a value of type 'V1RollingUpdateDeployment' (by applying it's required fields, if any)+mkV1RollingUpdateDeployment+ :: V1RollingUpdateDeployment+mkV1RollingUpdateDeployment =+ V1RollingUpdateDeployment+ { v1RollingUpdateDeploymentMaxSurge = Nothing+ , v1RollingUpdateDeploymentMaxUnavailable = Nothing+ }++-- ** V1RollingUpdateStatefulSetStrategy+-- | V1RollingUpdateStatefulSetStrategy+-- RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.+data V1RollingUpdateStatefulSetStrategy = V1RollingUpdateStatefulSetStrategy+ { v1RollingUpdateStatefulSetStrategyMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"+ , v1RollingUpdateStatefulSetStrategyPartition :: !(Maybe Int) -- ^ "partition" - Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RollingUpdateStatefulSetStrategy+instance A.FromJSON V1RollingUpdateStatefulSetStrategy where+ parseJSON = A.withObject "V1RollingUpdateStatefulSetStrategy" $ \o ->+ V1RollingUpdateStatefulSetStrategy+ <$> (o .:? "maxUnavailable")+ <*> (o .:? "partition")++-- | ToJSON V1RollingUpdateStatefulSetStrategy+instance A.ToJSON V1RollingUpdateStatefulSetStrategy where+ toJSON V1RollingUpdateStatefulSetStrategy {..} =+ _omitNulls+ [ "maxUnavailable" .= v1RollingUpdateStatefulSetStrategyMaxUnavailable+ , "partition" .= v1RollingUpdateStatefulSetStrategyPartition+ ]+++-- | Construct a value of type 'V1RollingUpdateStatefulSetStrategy' (by applying it's required fields, if any)+mkV1RollingUpdateStatefulSetStrategy+ :: V1RollingUpdateStatefulSetStrategy+mkV1RollingUpdateStatefulSetStrategy =+ V1RollingUpdateStatefulSetStrategy+ { v1RollingUpdateStatefulSetStrategyMaxUnavailable = Nothing+ , v1RollingUpdateStatefulSetStrategyPartition = Nothing+ }++-- ** V1RuleWithOperations+-- | V1RuleWithOperations+-- RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.+data V1RuleWithOperations = V1RuleWithOperations+ { v1RuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.+ , v1RuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.+ , v1RuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - 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.+ , v1RuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - 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.+ , v1RuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - 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 \"*\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RuleWithOperations+instance A.FromJSON V1RuleWithOperations where+ parseJSON = A.withObject "V1RuleWithOperations" $ \o ->+ V1RuleWithOperations+ <$> (o .:? "apiGroups")+ <*> (o .:? "apiVersions")+ <*> (o .:? "operations")+ <*> (o .:? "resources")+ <*> (o .:? "scope")++-- | ToJSON V1RuleWithOperations+instance A.ToJSON V1RuleWithOperations where+ toJSON V1RuleWithOperations {..} =+ _omitNulls+ [ "apiGroups" .= v1RuleWithOperationsApiGroups+ , "apiVersions" .= v1RuleWithOperationsApiVersions+ , "operations" .= v1RuleWithOperationsOperations+ , "resources" .= v1RuleWithOperationsResources+ , "scope" .= v1RuleWithOperationsScope+ ]+++-- | Construct a value of type 'V1RuleWithOperations' (by applying it's required fields, if any)+mkV1RuleWithOperations+ :: V1RuleWithOperations+mkV1RuleWithOperations =+ V1RuleWithOperations+ { v1RuleWithOperationsApiGroups = Nothing+ , v1RuleWithOperationsApiVersions = Nothing+ , v1RuleWithOperationsOperations = Nothing+ , v1RuleWithOperationsResources = Nothing+ , v1RuleWithOperationsScope = Nothing+ }++-- ** V1RuntimeClass+-- | V1RuntimeClass+-- RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/+data V1RuntimeClass = V1RuntimeClass+ { v1RuntimeClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1RuntimeClassHandler :: !(Text) -- ^ /Required/ "handler" - handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.+ , v1RuntimeClassKind :: !(Maybe Text) -- ^ "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+ , v1RuntimeClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1RuntimeClassOverhead :: !(Maybe V1Overhead) -- ^ "overhead"+ , v1RuntimeClassScheduling :: !(Maybe V1Scheduling) -- ^ "scheduling"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RuntimeClass+instance A.FromJSON V1RuntimeClass where+ parseJSON = A.withObject "V1RuntimeClass" $ \o ->+ V1RuntimeClass+ <$> (o .:? "apiVersion")+ <*> (o .: "handler")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "overhead")+ <*> (o .:? "scheduling")++-- | ToJSON V1RuntimeClass+instance A.ToJSON V1RuntimeClass where+ toJSON V1RuntimeClass {..} =+ _omitNulls+ [ "apiVersion" .= v1RuntimeClassApiVersion+ , "handler" .= v1RuntimeClassHandler+ , "kind" .= v1RuntimeClassKind+ , "metadata" .= v1RuntimeClassMetadata+ , "overhead" .= v1RuntimeClassOverhead+ , "scheduling" .= v1RuntimeClassScheduling+ ]+++-- | Construct a value of type 'V1RuntimeClass' (by applying it's required fields, if any)+mkV1RuntimeClass+ :: Text -- ^ 'v1RuntimeClassHandler': handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.+ -> V1RuntimeClass+mkV1RuntimeClass v1RuntimeClassHandler =+ V1RuntimeClass+ { v1RuntimeClassApiVersion = Nothing+ , v1RuntimeClassHandler+ , v1RuntimeClassKind = Nothing+ , v1RuntimeClassMetadata = Nothing+ , v1RuntimeClassOverhead = Nothing+ , v1RuntimeClassScheduling = Nothing+ }++-- ** V1RuntimeClassList+-- | V1RuntimeClassList+-- RuntimeClassList is a list of RuntimeClass objects.+data V1RuntimeClassList = V1RuntimeClassList+ { v1RuntimeClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1RuntimeClassListItems :: !([V1RuntimeClass]) -- ^ /Required/ "items" - items is a list of schema objects.+ , v1RuntimeClassListKind :: !(Maybe Text) -- ^ "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+ , v1RuntimeClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1RuntimeClassList+instance A.FromJSON V1RuntimeClassList where+ parseJSON = A.withObject "V1RuntimeClassList" $ \o ->+ V1RuntimeClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1RuntimeClassList+instance A.ToJSON V1RuntimeClassList where+ toJSON V1RuntimeClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1RuntimeClassListApiVersion+ , "items" .= v1RuntimeClassListItems+ , "kind" .= v1RuntimeClassListKind+ , "metadata" .= v1RuntimeClassListMetadata+ ]+++-- | Construct a value of type 'V1RuntimeClassList' (by applying it's required fields, if any)+mkV1RuntimeClassList+ :: [V1RuntimeClass] -- ^ 'v1RuntimeClassListItems': items is a list of schema objects.+ -> V1RuntimeClassList+mkV1RuntimeClassList v1RuntimeClassListItems =+ V1RuntimeClassList+ { v1RuntimeClassListApiVersion = Nothing+ , v1RuntimeClassListItems+ , v1RuntimeClassListKind = Nothing+ , v1RuntimeClassListMetadata = Nothing+ }++-- ** V1SELinuxOptions+-- | V1SELinuxOptions+-- SELinuxOptions are the labels to be applied to the container+data V1SELinuxOptions = V1SELinuxOptions+ { v1SELinuxOptionsLevel :: !(Maybe Text) -- ^ "level" - Level is SELinux level label that applies to the container.+ , v1SELinuxOptionsRole :: !(Maybe Text) -- ^ "role" - Role is a SELinux role label that applies to the container.+ , v1SELinuxOptionsType :: !(Maybe Text) -- ^ "type" - Type is a SELinux type label that applies to the container.+ , v1SELinuxOptionsUser :: !(Maybe Text) -- ^ "user" - User is a SELinux user label that applies to the container.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SELinuxOptions+instance A.FromJSON V1SELinuxOptions where+ parseJSON = A.withObject "V1SELinuxOptions" $ \o ->+ V1SELinuxOptions+ <$> (o .:? "level")+ <*> (o .:? "role")+ <*> (o .:? "type")+ <*> (o .:? "user")++-- | ToJSON V1SELinuxOptions+instance A.ToJSON V1SELinuxOptions where+ toJSON V1SELinuxOptions {..} =+ _omitNulls+ [ "level" .= v1SELinuxOptionsLevel+ , "role" .= v1SELinuxOptionsRole+ , "type" .= v1SELinuxOptionsType+ , "user" .= v1SELinuxOptionsUser+ ]+++-- | Construct a value of type 'V1SELinuxOptions' (by applying it's required fields, if any)+mkV1SELinuxOptions+ :: V1SELinuxOptions+mkV1SELinuxOptions =+ V1SELinuxOptions+ { v1SELinuxOptionsLevel = Nothing+ , v1SELinuxOptionsRole = Nothing+ , v1SELinuxOptionsType = Nothing+ , v1SELinuxOptionsUser = Nothing+ }++-- ** V1Scale+-- | V1Scale+-- Scale represents a scaling request for a resource.+data V1Scale = V1Scale+ { v1ScaleApiVersion :: !(Maybe Text) -- ^ "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+ , v1ScaleKind :: !(Maybe Text) -- ^ "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+ , v1ScaleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ScaleSpec :: !(Maybe V1ScaleSpec) -- ^ "spec"+ , v1ScaleStatus :: !(Maybe V1ScaleStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Scale+instance A.FromJSON V1Scale where+ parseJSON = A.withObject "V1Scale" $ \o ->+ V1Scale+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1Scale+instance A.ToJSON V1Scale where+ toJSON V1Scale {..} =+ _omitNulls+ [ "apiVersion" .= v1ScaleApiVersion+ , "kind" .= v1ScaleKind+ , "metadata" .= v1ScaleMetadata+ , "spec" .= v1ScaleSpec+ , "status" .= v1ScaleStatus+ ]+++-- | Construct a value of type 'V1Scale' (by applying it's required fields, if any)+mkV1Scale+ :: V1Scale+mkV1Scale =+ V1Scale+ { v1ScaleApiVersion = Nothing+ , v1ScaleKind = Nothing+ , v1ScaleMetadata = Nothing+ , v1ScaleSpec = Nothing+ , v1ScaleStatus = Nothing+ }++-- ** V1ScaleIOPersistentVolumeSource+-- | V1ScaleIOPersistentVolumeSource+-- ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume+data V1ScaleIOPersistentVolumeSource = V1ScaleIOPersistentVolumeSource+ { v1ScaleIOPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"+ , v1ScaleIOPersistentVolumeSourceGateway :: !(Text) -- ^ /Required/ "gateway" - gateway is the host address of the ScaleIO API Gateway.+ , v1ScaleIOPersistentVolumeSourceProtectionDomain :: !(Maybe Text) -- ^ "protectionDomain" - protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.+ , v1ScaleIOPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1ScaleIOPersistentVolumeSourceSecretRef :: !(V1SecretReference) -- ^ /Required/ "secretRef"+ , v1ScaleIOPersistentVolumeSourceSslEnabled :: !(Maybe Bool) -- ^ "sslEnabled" - sslEnabled is the flag to enable/disable SSL communication with Gateway, default false+ , v1ScaleIOPersistentVolumeSourceStorageMode :: !(Maybe Text) -- ^ "storageMode" - storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.+ , v1ScaleIOPersistentVolumeSourceStoragePool :: !(Maybe Text) -- ^ "storagePool" - storagePool is the ScaleIO Storage Pool associated with the protection domain.+ , v1ScaleIOPersistentVolumeSourceSystem :: !(Text) -- ^ /Required/ "system" - system is the name of the storage system as configured in ScaleIO.+ , v1ScaleIOPersistentVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ScaleIOPersistentVolumeSource+instance A.FromJSON V1ScaleIOPersistentVolumeSource where+ parseJSON = A.withObject "V1ScaleIOPersistentVolumeSource" $ \o ->+ V1ScaleIOPersistentVolumeSource+ <$> (o .:? "fsType")+ <*> (o .: "gateway")+ <*> (o .:? "protectionDomain")+ <*> (o .:? "readOnly")+ <*> (o .: "secretRef")+ <*> (o .:? "sslEnabled")+ <*> (o .:? "storageMode")+ <*> (o .:? "storagePool")+ <*> (o .: "system")+ <*> (o .:? "volumeName")++-- | ToJSON V1ScaleIOPersistentVolumeSource+instance A.ToJSON V1ScaleIOPersistentVolumeSource where+ toJSON V1ScaleIOPersistentVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1ScaleIOPersistentVolumeSourceFsType+ , "gateway" .= v1ScaleIOPersistentVolumeSourceGateway+ , "protectionDomain" .= v1ScaleIOPersistentVolumeSourceProtectionDomain+ , "readOnly" .= v1ScaleIOPersistentVolumeSourceReadOnly+ , "secretRef" .= v1ScaleIOPersistentVolumeSourceSecretRef+ , "sslEnabled" .= v1ScaleIOPersistentVolumeSourceSslEnabled+ , "storageMode" .= v1ScaleIOPersistentVolumeSourceStorageMode+ , "storagePool" .= v1ScaleIOPersistentVolumeSourceStoragePool+ , "system" .= v1ScaleIOPersistentVolumeSourceSystem+ , "volumeName" .= v1ScaleIOPersistentVolumeSourceVolumeName+ ]+++-- | Construct a value of type 'V1ScaleIOPersistentVolumeSource' (by applying it's required fields, if any)+mkV1ScaleIOPersistentVolumeSource+ :: Text -- ^ 'v1ScaleIOPersistentVolumeSourceGateway': gateway is the host address of the ScaleIO API Gateway.+ -> V1SecretReference -- ^ 'v1ScaleIOPersistentVolumeSourceSecretRef' + -> Text -- ^ 'v1ScaleIOPersistentVolumeSourceSystem': system is the name of the storage system as configured in ScaleIO.+ -> V1ScaleIOPersistentVolumeSource+mkV1ScaleIOPersistentVolumeSource v1ScaleIOPersistentVolumeSourceGateway v1ScaleIOPersistentVolumeSourceSecretRef v1ScaleIOPersistentVolumeSourceSystem =+ V1ScaleIOPersistentVolumeSource+ { v1ScaleIOPersistentVolumeSourceFsType = Nothing+ , v1ScaleIOPersistentVolumeSourceGateway+ , v1ScaleIOPersistentVolumeSourceProtectionDomain = Nothing+ , v1ScaleIOPersistentVolumeSourceReadOnly = Nothing+ , v1ScaleIOPersistentVolumeSourceSecretRef+ , v1ScaleIOPersistentVolumeSourceSslEnabled = Nothing+ , v1ScaleIOPersistentVolumeSourceStorageMode = Nothing+ , v1ScaleIOPersistentVolumeSourceStoragePool = Nothing+ , v1ScaleIOPersistentVolumeSourceSystem+ , v1ScaleIOPersistentVolumeSourceVolumeName = Nothing+ }++-- ** V1ScaleIOVolumeSource+-- | V1ScaleIOVolumeSource+-- ScaleIOVolumeSource represents a persistent ScaleIO volume+data V1ScaleIOVolumeSource = V1ScaleIOVolumeSource+ { v1ScaleIOVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".+ , v1ScaleIOVolumeSourceGateway :: !(Text) -- ^ /Required/ "gateway" - gateway is the host address of the ScaleIO API Gateway.+ , v1ScaleIOVolumeSourceProtectionDomain :: !(Maybe Text) -- ^ "protectionDomain" - protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.+ , v1ScaleIOVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1ScaleIOVolumeSourceSecretRef :: !(V1LocalObjectReference) -- ^ /Required/ "secretRef"+ , v1ScaleIOVolumeSourceSslEnabled :: !(Maybe Bool) -- ^ "sslEnabled" - sslEnabled Flag enable/disable SSL communication with Gateway, default false+ , v1ScaleIOVolumeSourceStorageMode :: !(Maybe Text) -- ^ "storageMode" - storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.+ , v1ScaleIOVolumeSourceStoragePool :: !(Maybe Text) -- ^ "storagePool" - storagePool is the ScaleIO Storage Pool associated with the protection domain.+ , v1ScaleIOVolumeSourceSystem :: !(Text) -- ^ /Required/ "system" - system is the name of the storage system as configured in ScaleIO.+ , v1ScaleIOVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ScaleIOVolumeSource+instance A.FromJSON V1ScaleIOVolumeSource where+ parseJSON = A.withObject "V1ScaleIOVolumeSource" $ \o ->+ V1ScaleIOVolumeSource+ <$> (o .:? "fsType")+ <*> (o .: "gateway")+ <*> (o .:? "protectionDomain")+ <*> (o .:? "readOnly")+ <*> (o .: "secretRef")+ <*> (o .:? "sslEnabled")+ <*> (o .:? "storageMode")+ <*> (o .:? "storagePool")+ <*> (o .: "system")+ <*> (o .:? "volumeName")++-- | ToJSON V1ScaleIOVolumeSource+instance A.ToJSON V1ScaleIOVolumeSource where+ toJSON V1ScaleIOVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1ScaleIOVolumeSourceFsType+ , "gateway" .= v1ScaleIOVolumeSourceGateway+ , "protectionDomain" .= v1ScaleIOVolumeSourceProtectionDomain+ , "readOnly" .= v1ScaleIOVolumeSourceReadOnly+ , "secretRef" .= v1ScaleIOVolumeSourceSecretRef+ , "sslEnabled" .= v1ScaleIOVolumeSourceSslEnabled+ , "storageMode" .= v1ScaleIOVolumeSourceStorageMode+ , "storagePool" .= v1ScaleIOVolumeSourceStoragePool+ , "system" .= v1ScaleIOVolumeSourceSystem+ , "volumeName" .= v1ScaleIOVolumeSourceVolumeName+ ]+++-- | Construct a value of type 'V1ScaleIOVolumeSource' (by applying it's required fields, if any)+mkV1ScaleIOVolumeSource+ :: Text -- ^ 'v1ScaleIOVolumeSourceGateway': gateway is the host address of the ScaleIO API Gateway.+ -> V1LocalObjectReference -- ^ 'v1ScaleIOVolumeSourceSecretRef' + -> Text -- ^ 'v1ScaleIOVolumeSourceSystem': system is the name of the storage system as configured in ScaleIO.+ -> V1ScaleIOVolumeSource+mkV1ScaleIOVolumeSource v1ScaleIOVolumeSourceGateway v1ScaleIOVolumeSourceSecretRef v1ScaleIOVolumeSourceSystem =+ V1ScaleIOVolumeSource+ { v1ScaleIOVolumeSourceFsType = Nothing+ , v1ScaleIOVolumeSourceGateway+ , v1ScaleIOVolumeSourceProtectionDomain = Nothing+ , v1ScaleIOVolumeSourceReadOnly = Nothing+ , v1ScaleIOVolumeSourceSecretRef+ , v1ScaleIOVolumeSourceSslEnabled = Nothing+ , v1ScaleIOVolumeSourceStorageMode = Nothing+ , v1ScaleIOVolumeSourceStoragePool = Nothing+ , v1ScaleIOVolumeSourceSystem+ , v1ScaleIOVolumeSourceVolumeName = Nothing+ }++-- ** V1ScaleSpec+-- | V1ScaleSpec+-- ScaleSpec describes the attributes of a scale subresource.+data V1ScaleSpec = V1ScaleSpec+ { v1ScaleSpecReplicas :: !(Maybe Int) -- ^ "replicas" - replicas is the desired number of instances for the scaled object.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ScaleSpec+instance A.FromJSON V1ScaleSpec where+ parseJSON = A.withObject "V1ScaleSpec" $ \o ->+ V1ScaleSpec+ <$> (o .:? "replicas")++-- | ToJSON V1ScaleSpec+instance A.ToJSON V1ScaleSpec where+ toJSON V1ScaleSpec {..} =+ _omitNulls+ [ "replicas" .= v1ScaleSpecReplicas+ ]+++-- | Construct a value of type 'V1ScaleSpec' (by applying it's required fields, if any)+mkV1ScaleSpec+ :: V1ScaleSpec+mkV1ScaleSpec =+ V1ScaleSpec+ { v1ScaleSpecReplicas = Nothing+ }++-- ** V1ScaleStatus+-- | V1ScaleStatus+-- ScaleStatus represents the current status of a scale subresource.+data V1ScaleStatus = V1ScaleStatus+ { v1ScaleStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - replicas is the actual number of observed instances of the scaled object.+ , v1ScaleStatusSelector :: !(Maybe Text) -- ^ "selector" - selector is the label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ScaleStatus+instance A.FromJSON V1ScaleStatus where+ parseJSON = A.withObject "V1ScaleStatus" $ \o ->+ V1ScaleStatus+ <$> (o .: "replicas")+ <*> (o .:? "selector")++-- | ToJSON V1ScaleStatus+instance A.ToJSON V1ScaleStatus where+ toJSON V1ScaleStatus {..} =+ _omitNulls+ [ "replicas" .= v1ScaleStatusReplicas+ , "selector" .= v1ScaleStatusSelector+ ]+++-- | Construct a value of type 'V1ScaleStatus' (by applying it's required fields, if any)+mkV1ScaleStatus+ :: Int -- ^ 'v1ScaleStatusReplicas': replicas is the actual number of observed instances of the scaled object.+ -> V1ScaleStatus+mkV1ScaleStatus v1ScaleStatusReplicas =+ V1ScaleStatus+ { v1ScaleStatusReplicas+ , v1ScaleStatusSelector = Nothing+ }++-- ** V1Scheduling+-- | V1Scheduling+-- Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.+data V1Scheduling = V1Scheduling+ { v1SchedulingNodeSelector :: !(Maybe (Map.Map String Text)) -- ^ "nodeSelector" - nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.+ , v1SchedulingTolerations :: !(Maybe [V1Toleration]) -- ^ "tolerations" - tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Scheduling+instance A.FromJSON V1Scheduling where+ parseJSON = A.withObject "V1Scheduling" $ \o ->+ V1Scheduling+ <$> (o .:? "nodeSelector")+ <*> (o .:? "tolerations")++-- | ToJSON V1Scheduling+instance A.ToJSON V1Scheduling where+ toJSON V1Scheduling {..} =+ _omitNulls+ [ "nodeSelector" .= v1SchedulingNodeSelector+ , "tolerations" .= v1SchedulingTolerations+ ]+++-- | Construct a value of type 'V1Scheduling' (by applying it's required fields, if any)+mkV1Scheduling+ :: V1Scheduling+mkV1Scheduling =+ V1Scheduling+ { v1SchedulingNodeSelector = Nothing+ , v1SchedulingTolerations = Nothing+ }++-- ** V1ScopeSelector+-- | V1ScopeSelector+-- A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.+data V1ScopeSelector = V1ScopeSelector+ { v1ScopeSelectorMatchExpressions :: !(Maybe [V1ScopedResourceSelectorRequirement]) -- ^ "matchExpressions" - A list of scope selector requirements by scope of the resources.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ScopeSelector+instance A.FromJSON V1ScopeSelector where+ parseJSON = A.withObject "V1ScopeSelector" $ \o ->+ V1ScopeSelector+ <$> (o .:? "matchExpressions")++-- | ToJSON V1ScopeSelector+instance A.ToJSON V1ScopeSelector where+ toJSON V1ScopeSelector {..} =+ _omitNulls+ [ "matchExpressions" .= v1ScopeSelectorMatchExpressions+ ]+++-- | Construct a value of type 'V1ScopeSelector' (by applying it's required fields, if any)+mkV1ScopeSelector+ :: V1ScopeSelector+mkV1ScopeSelector =+ V1ScopeSelector+ { v1ScopeSelectorMatchExpressions = Nothing+ }++-- ** V1ScopedResourceSelectorRequirement+-- | V1ScopedResourceSelectorRequirement+-- A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.+data V1ScopedResourceSelectorRequirement = V1ScopedResourceSelectorRequirement+ { v1ScopedResourceSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.+ , v1ScopedResourceSelectorRequirementScopeName :: !(Text) -- ^ /Required/ "scopeName" - The name of the scope that the selector applies to.+ , v1ScopedResourceSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ScopedResourceSelectorRequirement+instance A.FromJSON V1ScopedResourceSelectorRequirement where+ parseJSON = A.withObject "V1ScopedResourceSelectorRequirement" $ \o ->+ V1ScopedResourceSelectorRequirement+ <$> (o .: "operator")+ <*> (o .: "scopeName")+ <*> (o .:? "values")++-- | ToJSON V1ScopedResourceSelectorRequirement+instance A.ToJSON V1ScopedResourceSelectorRequirement where+ toJSON V1ScopedResourceSelectorRequirement {..} =+ _omitNulls+ [ "operator" .= v1ScopedResourceSelectorRequirementOperator+ , "scopeName" .= v1ScopedResourceSelectorRequirementScopeName+ , "values" .= v1ScopedResourceSelectorRequirementValues+ ]+++-- | Construct a value of type 'V1ScopedResourceSelectorRequirement' (by applying it's required fields, if any)+mkV1ScopedResourceSelectorRequirement+ :: Text -- ^ 'v1ScopedResourceSelectorRequirementOperator': Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.+ -> Text -- ^ 'v1ScopedResourceSelectorRequirementScopeName': The name of the scope that the selector applies to.+ -> V1ScopedResourceSelectorRequirement+mkV1ScopedResourceSelectorRequirement v1ScopedResourceSelectorRequirementOperator v1ScopedResourceSelectorRequirementScopeName =+ V1ScopedResourceSelectorRequirement+ { v1ScopedResourceSelectorRequirementOperator+ , v1ScopedResourceSelectorRequirementScopeName+ , v1ScopedResourceSelectorRequirementValues = Nothing+ }++-- ** V1SeccompProfile+-- | V1SeccompProfile+-- SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.+data V1SeccompProfile = V1SeccompProfile+ { v1SeccompProfileLocalhostProfile :: !(Maybe Text) -- ^ "localhostProfile" - localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \"Localhost\". Must NOT be set for any other type.+ , v1SeccompProfileType :: !(Text) -- ^ /Required/ "type" - type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SeccompProfile+instance A.FromJSON V1SeccompProfile where+ parseJSON = A.withObject "V1SeccompProfile" $ \o ->+ V1SeccompProfile+ <$> (o .:? "localhostProfile")+ <*> (o .: "type")++-- | ToJSON V1SeccompProfile+instance A.ToJSON V1SeccompProfile where+ toJSON V1SeccompProfile {..} =+ _omitNulls+ [ "localhostProfile" .= v1SeccompProfileLocalhostProfile+ , "type" .= v1SeccompProfileType+ ]+++-- | Construct a value of type 'V1SeccompProfile' (by applying it's required fields, if any)+mkV1SeccompProfile+ :: Text -- ^ 'v1SeccompProfileType': type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.+ -> V1SeccompProfile+mkV1SeccompProfile v1SeccompProfileType =+ V1SeccompProfile+ { v1SeccompProfileLocalhostProfile = Nothing+ , v1SeccompProfileType+ }++-- ** V1Secret+-- | V1Secret+-- Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.+data V1Secret = V1Secret+ { v1SecretApiVersion :: !(Maybe Text) -- ^ "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+ , v1SecretData :: !(Maybe (Map.Map String ByteArray)) -- ^ "data" - Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4+ , v1SecretImmutable :: !(Maybe Bool) -- ^ "immutable" - Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.+ , v1SecretKind :: !(Maybe Text) -- ^ "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+ , v1SecretMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1SecretStringData :: !(Maybe (Map.Map String Text)) -- ^ "stringData" - stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.+ , v1SecretType :: !(Maybe Text) -- ^ "type" - Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Secret+instance A.FromJSON V1Secret where+ parseJSON = A.withObject "V1Secret" $ \o ->+ V1Secret+ <$> (o .:? "apiVersion")+ <*> (o .:? "data")+ <*> (o .:? "immutable")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "stringData")+ <*> (o .:? "type")++-- | ToJSON V1Secret+instance A.ToJSON V1Secret where+ toJSON V1Secret {..} =+ _omitNulls+ [ "apiVersion" .= v1SecretApiVersion+ , "data" .= v1SecretData+ , "immutable" .= v1SecretImmutable+ , "kind" .= v1SecretKind+ , "metadata" .= v1SecretMetadata+ , "stringData" .= v1SecretStringData+ , "type" .= v1SecretType+ ]+++-- | Construct a value of type 'V1Secret' (by applying it's required fields, if any)+mkV1Secret+ :: V1Secret+mkV1Secret =+ V1Secret+ { v1SecretApiVersion = Nothing+ , v1SecretData = Nothing+ , v1SecretImmutable = Nothing+ , v1SecretKind = Nothing+ , v1SecretMetadata = Nothing+ , v1SecretStringData = Nothing+ , v1SecretType = Nothing+ }++-- ** V1SecretEnvSource+-- | V1SecretEnvSource+-- SecretEnvSource selects a Secret to populate the environment variables with. The contents of the target Secret's Data field will represent the key-value pairs as environment variables.+data V1SecretEnvSource = V1SecretEnvSource+ { v1SecretEnvSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ , v1SecretEnvSourceOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the Secret must be defined+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SecretEnvSource+instance A.FromJSON V1SecretEnvSource where+ parseJSON = A.withObject "V1SecretEnvSource" $ \o ->+ V1SecretEnvSource+ <$> (o .:? "name")+ <*> (o .:? "optional")++-- | ToJSON V1SecretEnvSource+instance A.ToJSON V1SecretEnvSource where+ toJSON V1SecretEnvSource {..} =+ _omitNulls+ [ "name" .= v1SecretEnvSourceName+ , "optional" .= v1SecretEnvSourceOptional+ ]+++-- | Construct a value of type 'V1SecretEnvSource' (by applying it's required fields, if any)+mkV1SecretEnvSource+ :: V1SecretEnvSource+mkV1SecretEnvSource =+ V1SecretEnvSource+ { v1SecretEnvSourceName = Nothing+ , v1SecretEnvSourceOptional = Nothing+ }++-- ** V1SecretKeySelector+-- | V1SecretKeySelector+-- SecretKeySelector selects a key of a Secret.+data V1SecretKeySelector = V1SecretKeySelector+ { v1SecretKeySelectorKey :: !(Text) -- ^ /Required/ "key" - The key of the secret to select from. Must be a valid secret key.+ , v1SecretKeySelectorName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ , v1SecretKeySelectorOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the Secret or its key must be defined+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SecretKeySelector+instance A.FromJSON V1SecretKeySelector where+ parseJSON = A.withObject "V1SecretKeySelector" $ \o ->+ V1SecretKeySelector+ <$> (o .: "key")+ <*> (o .:? "name")+ <*> (o .:? "optional")++-- | ToJSON V1SecretKeySelector+instance A.ToJSON V1SecretKeySelector where+ toJSON V1SecretKeySelector {..} =+ _omitNulls+ [ "key" .= v1SecretKeySelectorKey+ , "name" .= v1SecretKeySelectorName+ , "optional" .= v1SecretKeySelectorOptional+ ]+++-- | Construct a value of type 'V1SecretKeySelector' (by applying it's required fields, if any)+mkV1SecretKeySelector+ :: Text -- ^ 'v1SecretKeySelectorKey': The key of the secret to select from. Must be a valid secret key.+ -> V1SecretKeySelector+mkV1SecretKeySelector v1SecretKeySelectorKey =+ V1SecretKeySelector+ { v1SecretKeySelectorKey+ , v1SecretKeySelectorName = Nothing+ , v1SecretKeySelectorOptional = Nothing+ }++-- ** V1SecretList+-- | V1SecretList+-- SecretList is a list of Secret.+data V1SecretList = V1SecretList+ { v1SecretListApiVersion :: !(Maybe Text) -- ^ "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+ , v1SecretListItems :: !([V1Secret]) -- ^ /Required/ "items" - Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret+ , v1SecretListKind :: !(Maybe Text) -- ^ "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+ , v1SecretListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SecretList+instance A.FromJSON V1SecretList where+ parseJSON = A.withObject "V1SecretList" $ \o ->+ V1SecretList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1SecretList+instance A.ToJSON V1SecretList where+ toJSON V1SecretList {..} =+ _omitNulls+ [ "apiVersion" .= v1SecretListApiVersion+ , "items" .= v1SecretListItems+ , "kind" .= v1SecretListKind+ , "metadata" .= v1SecretListMetadata+ ]+++-- | Construct a value of type 'V1SecretList' (by applying it's required fields, if any)+mkV1SecretList+ :: [V1Secret] -- ^ 'v1SecretListItems': Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret+ -> V1SecretList+mkV1SecretList v1SecretListItems =+ V1SecretList+ { v1SecretListApiVersion = Nothing+ , v1SecretListItems+ , v1SecretListKind = Nothing+ , v1SecretListMetadata = Nothing+ }++-- ** V1SecretProjection+-- | V1SecretProjection+-- Adapts a secret into a projected volume. The contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.+data V1SecretProjection = V1SecretProjection+ { v1SecretProjectionItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.+ , v1SecretProjectionName :: !(Maybe Text) -- ^ "name" - Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ , v1SecretProjectionOptional :: !(Maybe Bool) -- ^ "optional" - optional field specify whether the Secret or its key must be defined+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SecretProjection+instance A.FromJSON V1SecretProjection where+ parseJSON = A.withObject "V1SecretProjection" $ \o ->+ V1SecretProjection+ <$> (o .:? "items")+ <*> (o .:? "name")+ <*> (o .:? "optional")++-- | ToJSON V1SecretProjection+instance A.ToJSON V1SecretProjection where+ toJSON V1SecretProjection {..} =+ _omitNulls+ [ "items" .= v1SecretProjectionItems+ , "name" .= v1SecretProjectionName+ , "optional" .= v1SecretProjectionOptional+ ]+++-- | Construct a value of type 'V1SecretProjection' (by applying it's required fields, if any)+mkV1SecretProjection+ :: V1SecretProjection+mkV1SecretProjection =+ V1SecretProjection+ { v1SecretProjectionItems = Nothing+ , v1SecretProjectionName = Nothing+ , v1SecretProjectionOptional = Nothing+ }++-- ** V1SecretReference+-- | V1SecretReference+-- SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace+data V1SecretReference = V1SecretReference+ { v1SecretReferenceName :: !(Maybe Text) -- ^ "name" - name is unique within a namespace to reference a secret resource.+ , v1SecretReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - namespace defines the space within which the secret name must be unique.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SecretReference+instance A.FromJSON V1SecretReference where+ parseJSON = A.withObject "V1SecretReference" $ \o ->+ V1SecretReference+ <$> (o .:? "name")+ <*> (o .:? "namespace")++-- | ToJSON V1SecretReference+instance A.ToJSON V1SecretReference where+ toJSON V1SecretReference {..} =+ _omitNulls+ [ "name" .= v1SecretReferenceName+ , "namespace" .= v1SecretReferenceNamespace+ ]+++-- | Construct a value of type 'V1SecretReference' (by applying it's required fields, if any)+mkV1SecretReference+ :: V1SecretReference+mkV1SecretReference =+ V1SecretReference+ { v1SecretReferenceName = Nothing+ , v1SecretReferenceNamespace = Nothing+ }++-- ** V1SecretVolumeSource+-- | V1SecretVolumeSource+-- Adapts a Secret into a volume. The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.+data V1SecretVolumeSource = V1SecretVolumeSource+ { v1SecretVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.+ , v1SecretVolumeSourceItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.+ , v1SecretVolumeSourceOptional :: !(Maybe Bool) -- ^ "optional" - optional field specify whether the Secret or its keys must be defined+ , v1SecretVolumeSourceSecretName :: !(Maybe Text) -- ^ "secretName" - secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SecretVolumeSource+instance A.FromJSON V1SecretVolumeSource where+ parseJSON = A.withObject "V1SecretVolumeSource" $ \o ->+ V1SecretVolumeSource+ <$> (o .:? "defaultMode")+ <*> (o .:? "items")+ <*> (o .:? "optional")+ <*> (o .:? "secretName")++-- | ToJSON V1SecretVolumeSource+instance A.ToJSON V1SecretVolumeSource where+ toJSON V1SecretVolumeSource {..} =+ _omitNulls+ [ "defaultMode" .= v1SecretVolumeSourceDefaultMode+ , "items" .= v1SecretVolumeSourceItems+ , "optional" .= v1SecretVolumeSourceOptional+ , "secretName" .= v1SecretVolumeSourceSecretName+ ]+++-- | Construct a value of type 'V1SecretVolumeSource' (by applying it's required fields, if any)+mkV1SecretVolumeSource+ :: V1SecretVolumeSource+mkV1SecretVolumeSource =+ V1SecretVolumeSource+ { v1SecretVolumeSourceDefaultMode = Nothing+ , v1SecretVolumeSourceItems = Nothing+ , v1SecretVolumeSourceOptional = Nothing+ , v1SecretVolumeSourceSecretName = Nothing+ }++-- ** V1SecurityContext+-- | V1SecurityContext+-- SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.+data V1SecurityContext = V1SecurityContext+ { v1SecurityContextAllowPrivilegeEscalation :: !(Maybe Bool) -- ^ "allowPrivilegeEscalation" - AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.+ , v1SecurityContextAppArmorProfile :: !(Maybe V1AppArmorProfile) -- ^ "appArmorProfile"+ , v1SecurityContextCapabilities :: !(Maybe V1Capabilities) -- ^ "capabilities"+ , v1SecurityContextPrivileged :: !(Maybe Bool) -- ^ "privileged" - Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.+ , v1SecurityContextProcMount :: !(Maybe Text) -- ^ "procMount" - procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.+ , v1SecurityContextReadOnlyRootFilesystem :: !(Maybe Bool) -- ^ "readOnlyRootFilesystem" - Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.+ , v1SecurityContextRunAsGroup :: !(Maybe Integer) -- ^ "runAsGroup" - The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.+ , v1SecurityContextRunAsNonRoot :: !(Maybe Bool) -- ^ "runAsNonRoot" - 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 PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.+ , v1SecurityContextRunAsUser :: !(Maybe Integer) -- ^ "runAsUser" - The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.+ , v1SecurityContextSeLinuxOptions :: !(Maybe V1SELinuxOptions) -- ^ "seLinuxOptions"+ , v1SecurityContextSeccompProfile :: !(Maybe V1SeccompProfile) -- ^ "seccompProfile"+ , v1SecurityContextWindowsOptions :: !(Maybe V1WindowsSecurityContextOptions) -- ^ "windowsOptions"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SecurityContext+instance A.FromJSON V1SecurityContext where+ parseJSON = A.withObject "V1SecurityContext" $ \o ->+ V1SecurityContext+ <$> (o .:? "allowPrivilegeEscalation")+ <*> (o .:? "appArmorProfile")+ <*> (o .:? "capabilities")+ <*> (o .:? "privileged")+ <*> (o .:? "procMount")+ <*> (o .:? "readOnlyRootFilesystem")+ <*> (o .:? "runAsGroup")+ <*> (o .:? "runAsNonRoot")+ <*> (o .:? "runAsUser")+ <*> (o .:? "seLinuxOptions")+ <*> (o .:? "seccompProfile")+ <*> (o .:? "windowsOptions")++-- | ToJSON V1SecurityContext+instance A.ToJSON V1SecurityContext where+ toJSON V1SecurityContext {..} =+ _omitNulls+ [ "allowPrivilegeEscalation" .= v1SecurityContextAllowPrivilegeEscalation+ , "appArmorProfile" .= v1SecurityContextAppArmorProfile+ , "capabilities" .= v1SecurityContextCapabilities+ , "privileged" .= v1SecurityContextPrivileged+ , "procMount" .= v1SecurityContextProcMount+ , "readOnlyRootFilesystem" .= v1SecurityContextReadOnlyRootFilesystem+ , "runAsGroup" .= v1SecurityContextRunAsGroup+ , "runAsNonRoot" .= v1SecurityContextRunAsNonRoot+ , "runAsUser" .= v1SecurityContextRunAsUser+ , "seLinuxOptions" .= v1SecurityContextSeLinuxOptions+ , "seccompProfile" .= v1SecurityContextSeccompProfile+ , "windowsOptions" .= v1SecurityContextWindowsOptions+ ]+++-- | Construct a value of type 'V1SecurityContext' (by applying it's required fields, if any)+mkV1SecurityContext+ :: V1SecurityContext+mkV1SecurityContext =+ V1SecurityContext+ { v1SecurityContextAllowPrivilegeEscalation = Nothing+ , v1SecurityContextAppArmorProfile = Nothing+ , v1SecurityContextCapabilities = Nothing+ , v1SecurityContextPrivileged = Nothing+ , v1SecurityContextProcMount = Nothing+ , v1SecurityContextReadOnlyRootFilesystem = Nothing+ , v1SecurityContextRunAsGroup = Nothing+ , v1SecurityContextRunAsNonRoot = Nothing+ , v1SecurityContextRunAsUser = Nothing+ , v1SecurityContextSeLinuxOptions = Nothing+ , v1SecurityContextSeccompProfile = Nothing+ , v1SecurityContextWindowsOptions = Nothing+ }++-- ** V1SelectableField+-- | V1SelectableField+-- SelectableField specifies the JSON path of a field that may be used with field selectors.+data V1SelectableField = V1SelectableField+ { v1SelectableFieldJsonPath :: !(Text) -- ^ /Required/ "jsonPath" - jsonPath is a simple JSON path which is evaluated against each custom resource to produce a field selector value. Only JSON paths without the array notation are allowed. Must point to a field of type string, boolean or integer. Types with enum values and strings with formats are allowed. If jsonPath refers to absent field in a resource, the jsonPath evaluates to an empty string. Must not point to metdata fields. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SelectableField+instance A.FromJSON V1SelectableField where+ parseJSON = A.withObject "V1SelectableField" $ \o ->+ V1SelectableField+ <$> (o .: "jsonPath")++-- | ToJSON V1SelectableField+instance A.ToJSON V1SelectableField where+ toJSON V1SelectableField {..} =+ _omitNulls+ [ "jsonPath" .= v1SelectableFieldJsonPath+ ]+++-- | Construct a value of type 'V1SelectableField' (by applying it's required fields, if any)+mkV1SelectableField+ :: Text -- ^ 'v1SelectableFieldJsonPath': jsonPath is a simple JSON path which is evaluated against each custom resource to produce a field selector value. Only JSON paths without the array notation are allowed. Must point to a field of type string, boolean or integer. Types with enum values and strings with formats are allowed. If jsonPath refers to absent field in a resource, the jsonPath evaluates to an empty string. Must not point to metdata fields. Required.+ -> V1SelectableField+mkV1SelectableField v1SelectableFieldJsonPath =+ V1SelectableField+ { v1SelectableFieldJsonPath+ }++-- ** V1SelfSubjectAccessReview+-- | V1SelfSubjectAccessReview+-- SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action+data V1SelfSubjectAccessReview = V1SelfSubjectAccessReview+ { v1SelfSubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "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+ , v1SelfSubjectAccessReviewKind :: !(Maybe Text) -- ^ "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+ , v1SelfSubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1SelfSubjectAccessReviewSpec :: !(V1SelfSubjectAccessReviewSpec) -- ^ /Required/ "spec"+ , v1SelfSubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SelfSubjectAccessReview+instance A.FromJSON V1SelfSubjectAccessReview where+ parseJSON = A.withObject "V1SelfSubjectAccessReview" $ \o ->+ V1SelfSubjectAccessReview+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1SelfSubjectAccessReview+instance A.ToJSON V1SelfSubjectAccessReview where+ toJSON V1SelfSubjectAccessReview {..} =+ _omitNulls+ [ "apiVersion" .= v1SelfSubjectAccessReviewApiVersion+ , "kind" .= v1SelfSubjectAccessReviewKind+ , "metadata" .= v1SelfSubjectAccessReviewMetadata+ , "spec" .= v1SelfSubjectAccessReviewSpec+ , "status" .= v1SelfSubjectAccessReviewStatus+ ]+++-- | Construct a value of type 'V1SelfSubjectAccessReview' (by applying it's required fields, if any)+mkV1SelfSubjectAccessReview+ :: V1SelfSubjectAccessReviewSpec -- ^ 'v1SelfSubjectAccessReviewSpec' + -> V1SelfSubjectAccessReview+mkV1SelfSubjectAccessReview v1SelfSubjectAccessReviewSpec =+ V1SelfSubjectAccessReview+ { v1SelfSubjectAccessReviewApiVersion = Nothing+ , v1SelfSubjectAccessReviewKind = Nothing+ , v1SelfSubjectAccessReviewMetadata = Nothing+ , v1SelfSubjectAccessReviewSpec+ , v1SelfSubjectAccessReviewStatus = Nothing+ }++-- ** V1SelfSubjectAccessReviewSpec+-- | V1SelfSubjectAccessReviewSpec+-- SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set+data V1SelfSubjectAccessReviewSpec = V1SelfSubjectAccessReviewSpec+ { v1SelfSubjectAccessReviewSpecNonResourceAttributes :: !(Maybe V1NonResourceAttributes) -- ^ "nonResourceAttributes"+ , v1SelfSubjectAccessReviewSpecResourceAttributes :: !(Maybe V1ResourceAttributes) -- ^ "resourceAttributes"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SelfSubjectAccessReviewSpec+instance A.FromJSON V1SelfSubjectAccessReviewSpec where+ parseJSON = A.withObject "V1SelfSubjectAccessReviewSpec" $ \o ->+ V1SelfSubjectAccessReviewSpec+ <$> (o .:? "nonResourceAttributes")+ <*> (o .:? "resourceAttributes")++-- | ToJSON V1SelfSubjectAccessReviewSpec+instance A.ToJSON V1SelfSubjectAccessReviewSpec where+ toJSON V1SelfSubjectAccessReviewSpec {..} =+ _omitNulls+ [ "nonResourceAttributes" .= v1SelfSubjectAccessReviewSpecNonResourceAttributes+ , "resourceAttributes" .= v1SelfSubjectAccessReviewSpecResourceAttributes+ ]+++-- | Construct a value of type 'V1SelfSubjectAccessReviewSpec' (by applying it's required fields, if any)+mkV1SelfSubjectAccessReviewSpec+ :: V1SelfSubjectAccessReviewSpec+mkV1SelfSubjectAccessReviewSpec =+ V1SelfSubjectAccessReviewSpec+ { v1SelfSubjectAccessReviewSpecNonResourceAttributes = Nothing+ , v1SelfSubjectAccessReviewSpecResourceAttributes = Nothing+ }++-- ** V1SelfSubjectReview+-- | V1SelfSubjectReview+-- 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.+data V1SelfSubjectReview = V1SelfSubjectReview+ { v1SelfSubjectReviewApiVersion :: !(Maybe Text) -- ^ "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+ , v1SelfSubjectReviewKind :: !(Maybe Text) -- ^ "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+ , v1SelfSubjectReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1SelfSubjectReviewStatus :: !(Maybe V1SelfSubjectReviewStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SelfSubjectReview+instance A.FromJSON V1SelfSubjectReview where+ parseJSON = A.withObject "V1SelfSubjectReview" $ \o ->+ V1SelfSubjectReview+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "status")++-- | ToJSON V1SelfSubjectReview+instance A.ToJSON V1SelfSubjectReview where+ toJSON V1SelfSubjectReview {..} =+ _omitNulls+ [ "apiVersion" .= v1SelfSubjectReviewApiVersion+ , "kind" .= v1SelfSubjectReviewKind+ , "metadata" .= v1SelfSubjectReviewMetadata+ , "status" .= v1SelfSubjectReviewStatus+ ]+++-- | Construct a value of type 'V1SelfSubjectReview' (by applying it's required fields, if any)+mkV1SelfSubjectReview+ :: V1SelfSubjectReview+mkV1SelfSubjectReview =+ V1SelfSubjectReview+ { v1SelfSubjectReviewApiVersion = Nothing+ , v1SelfSubjectReviewKind = Nothing+ , v1SelfSubjectReviewMetadata = Nothing+ , v1SelfSubjectReviewStatus = Nothing+ }++-- ** V1SelfSubjectReviewStatus+-- | V1SelfSubjectReviewStatus+-- SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.+data V1SelfSubjectReviewStatus = V1SelfSubjectReviewStatus+ { v1SelfSubjectReviewStatusUserInfo :: !(Maybe V1UserInfo) -- ^ "userInfo"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SelfSubjectReviewStatus+instance A.FromJSON V1SelfSubjectReviewStatus where+ parseJSON = A.withObject "V1SelfSubjectReviewStatus" $ \o ->+ V1SelfSubjectReviewStatus+ <$> (o .:? "userInfo")++-- | ToJSON V1SelfSubjectReviewStatus+instance A.ToJSON V1SelfSubjectReviewStatus where+ toJSON V1SelfSubjectReviewStatus {..} =+ _omitNulls+ [ "userInfo" .= v1SelfSubjectReviewStatusUserInfo+ ]+++-- | Construct a value of type 'V1SelfSubjectReviewStatus' (by applying it's required fields, if any)+mkV1SelfSubjectReviewStatus+ :: V1SelfSubjectReviewStatus+mkV1SelfSubjectReviewStatus =+ V1SelfSubjectReviewStatus+ { v1SelfSubjectReviewStatusUserInfo = Nothing+ }++-- ** V1SelfSubjectRulesReview+-- | V1SelfSubjectRulesReview+-- SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.+data V1SelfSubjectRulesReview = V1SelfSubjectRulesReview+ { v1SelfSubjectRulesReviewApiVersion :: !(Maybe Text) -- ^ "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+ , v1SelfSubjectRulesReviewKind :: !(Maybe Text) -- ^ "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+ , v1SelfSubjectRulesReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1SelfSubjectRulesReviewSpec :: !(V1SelfSubjectRulesReviewSpec) -- ^ /Required/ "spec"+ , v1SelfSubjectRulesReviewStatus :: !(Maybe V1SubjectRulesReviewStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SelfSubjectRulesReview+instance A.FromJSON V1SelfSubjectRulesReview where+ parseJSON = A.withObject "V1SelfSubjectRulesReview" $ \o ->+ V1SelfSubjectRulesReview+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1SelfSubjectRulesReview+instance A.ToJSON V1SelfSubjectRulesReview where+ toJSON V1SelfSubjectRulesReview {..} =+ _omitNulls+ [ "apiVersion" .= v1SelfSubjectRulesReviewApiVersion+ , "kind" .= v1SelfSubjectRulesReviewKind+ , "metadata" .= v1SelfSubjectRulesReviewMetadata+ , "spec" .= v1SelfSubjectRulesReviewSpec+ , "status" .= v1SelfSubjectRulesReviewStatus+ ]+++-- | Construct a value of type 'V1SelfSubjectRulesReview' (by applying it's required fields, if any)+mkV1SelfSubjectRulesReview+ :: V1SelfSubjectRulesReviewSpec -- ^ 'v1SelfSubjectRulesReviewSpec' + -> V1SelfSubjectRulesReview+mkV1SelfSubjectRulesReview v1SelfSubjectRulesReviewSpec =+ V1SelfSubjectRulesReview+ { v1SelfSubjectRulesReviewApiVersion = Nothing+ , v1SelfSubjectRulesReviewKind = Nothing+ , v1SelfSubjectRulesReviewMetadata = Nothing+ , v1SelfSubjectRulesReviewSpec+ , v1SelfSubjectRulesReviewStatus = Nothing+ }++-- ** V1SelfSubjectRulesReviewSpec+-- | V1SelfSubjectRulesReviewSpec+-- SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.+data V1SelfSubjectRulesReviewSpec = V1SelfSubjectRulesReviewSpec+ { v1SelfSubjectRulesReviewSpecNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace to evaluate rules for. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SelfSubjectRulesReviewSpec+instance A.FromJSON V1SelfSubjectRulesReviewSpec where+ parseJSON = A.withObject "V1SelfSubjectRulesReviewSpec" $ \o ->+ V1SelfSubjectRulesReviewSpec+ <$> (o .:? "namespace")++-- | ToJSON V1SelfSubjectRulesReviewSpec+instance A.ToJSON V1SelfSubjectRulesReviewSpec where+ toJSON V1SelfSubjectRulesReviewSpec {..} =+ _omitNulls+ [ "namespace" .= v1SelfSubjectRulesReviewSpecNamespace+ ]+++-- | Construct a value of type 'V1SelfSubjectRulesReviewSpec' (by applying it's required fields, if any)+mkV1SelfSubjectRulesReviewSpec+ :: V1SelfSubjectRulesReviewSpec+mkV1SelfSubjectRulesReviewSpec =+ V1SelfSubjectRulesReviewSpec+ { v1SelfSubjectRulesReviewSpecNamespace = Nothing+ }++-- ** V1ServerAddressByClientCIDR+-- | V1ServerAddressByClientCIDR+-- ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.+data V1ServerAddressByClientCIDR = V1ServerAddressByClientCIDR+ { v1ServerAddressByClientCIDRClientCidr :: !(Text) -- ^ /Required/ "clientCIDR" - The CIDR with which clients can match their IP to figure out the server address that they should use.+ , v1ServerAddressByClientCIDRServerAddress :: !(Text) -- ^ /Required/ "serverAddress" - Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServerAddressByClientCIDR+instance A.FromJSON V1ServerAddressByClientCIDR where+ parseJSON = A.withObject "V1ServerAddressByClientCIDR" $ \o ->+ V1ServerAddressByClientCIDR+ <$> (o .: "clientCIDR")+ <*> (o .: "serverAddress")++-- | ToJSON V1ServerAddressByClientCIDR+instance A.ToJSON V1ServerAddressByClientCIDR where+ toJSON V1ServerAddressByClientCIDR {..} =+ _omitNulls+ [ "clientCIDR" .= v1ServerAddressByClientCIDRClientCidr+ , "serverAddress" .= v1ServerAddressByClientCIDRServerAddress+ ]+++-- | Construct a value of type 'V1ServerAddressByClientCIDR' (by applying it's required fields, if any)+mkV1ServerAddressByClientCIDR+ :: Text -- ^ 'v1ServerAddressByClientCIDRClientCidr': The CIDR with which clients can match their IP to figure out the server address that they should use.+ -> Text -- ^ 'v1ServerAddressByClientCIDRServerAddress': Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.+ -> V1ServerAddressByClientCIDR+mkV1ServerAddressByClientCIDR v1ServerAddressByClientCIDRClientCidr v1ServerAddressByClientCIDRServerAddress =+ V1ServerAddressByClientCIDR+ { v1ServerAddressByClientCIDRClientCidr+ , v1ServerAddressByClientCIDRServerAddress+ }++-- ** V1Service+-- | V1Service+-- Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.+data V1Service = V1Service+ { v1ServiceApiVersion :: !(Maybe Text) -- ^ "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+ , v1ServiceKind :: !(Maybe Text) -- ^ "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+ , v1ServiceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ServiceSpec :: !(Maybe V1ServiceSpec) -- ^ "spec"+ , v1ServiceStatus :: !(Maybe V1ServiceStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Service+instance A.FromJSON V1Service where+ parseJSON = A.withObject "V1Service" $ \o ->+ V1Service+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1Service+instance A.ToJSON V1Service where+ toJSON V1Service {..} =+ _omitNulls+ [ "apiVersion" .= v1ServiceApiVersion+ , "kind" .= v1ServiceKind+ , "metadata" .= v1ServiceMetadata+ , "spec" .= v1ServiceSpec+ , "status" .= v1ServiceStatus+ ]+++-- | Construct a value of type 'V1Service' (by applying it's required fields, if any)+mkV1Service+ :: V1Service+mkV1Service =+ V1Service+ { v1ServiceApiVersion = Nothing+ , v1ServiceKind = Nothing+ , v1ServiceMetadata = Nothing+ , v1ServiceSpec = Nothing+ , v1ServiceStatus = Nothing+ }++-- ** V1ServiceAccount+-- | V1ServiceAccount+-- ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets+data V1ServiceAccount = V1ServiceAccount+ { v1ServiceAccountApiVersion :: !(Maybe Text) -- ^ "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+ , v1ServiceAccountAutomountServiceAccountToken :: !(Maybe Bool) -- ^ "automountServiceAccountToken" - AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.+ , v1ServiceAccountImagePullSecrets :: !(Maybe [V1LocalObjectReference]) -- ^ "imagePullSecrets" - 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+ , v1ServiceAccountKind :: !(Maybe Text) -- ^ "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+ , v1ServiceAccountMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ServiceAccountSecrets :: !(Maybe [V1ObjectReference]) -- ^ "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+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceAccount+instance A.FromJSON V1ServiceAccount where+ parseJSON = A.withObject "V1ServiceAccount" $ \o ->+ V1ServiceAccount+ <$> (o .:? "apiVersion")+ <*> (o .:? "automountServiceAccountToken")+ <*> (o .:? "imagePullSecrets")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "secrets")++-- | ToJSON V1ServiceAccount+instance A.ToJSON V1ServiceAccount where+ toJSON V1ServiceAccount {..} =+ _omitNulls+ [ "apiVersion" .= v1ServiceAccountApiVersion+ , "automountServiceAccountToken" .= v1ServiceAccountAutomountServiceAccountToken+ , "imagePullSecrets" .= v1ServiceAccountImagePullSecrets+ , "kind" .= v1ServiceAccountKind+ , "metadata" .= v1ServiceAccountMetadata+ , "secrets" .= v1ServiceAccountSecrets+ ]+++-- | Construct a value of type 'V1ServiceAccount' (by applying it's required fields, if any)+mkV1ServiceAccount+ :: V1ServiceAccount+mkV1ServiceAccount =+ V1ServiceAccount+ { v1ServiceAccountApiVersion = Nothing+ , v1ServiceAccountAutomountServiceAccountToken = Nothing+ , v1ServiceAccountImagePullSecrets = Nothing+ , v1ServiceAccountKind = Nothing+ , v1ServiceAccountMetadata = Nothing+ , v1ServiceAccountSecrets = Nothing+ }++-- ** V1ServiceAccountList+-- | V1ServiceAccountList+-- ServiceAccountList is a list of ServiceAccount objects+data V1ServiceAccountList = V1ServiceAccountList+ { v1ServiceAccountListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ServiceAccountListItems :: !([V1ServiceAccount]) -- ^ /Required/ "items" - List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/+ , v1ServiceAccountListKind :: !(Maybe Text) -- ^ "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+ , v1ServiceAccountListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceAccountList+instance A.FromJSON V1ServiceAccountList where+ parseJSON = A.withObject "V1ServiceAccountList" $ \o ->+ V1ServiceAccountList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ServiceAccountList+instance A.ToJSON V1ServiceAccountList where+ toJSON V1ServiceAccountList {..} =+ _omitNulls+ [ "apiVersion" .= v1ServiceAccountListApiVersion+ , "items" .= v1ServiceAccountListItems+ , "kind" .= v1ServiceAccountListKind+ , "metadata" .= v1ServiceAccountListMetadata+ ]+++-- | Construct a value of type 'V1ServiceAccountList' (by applying it's required fields, if any)+mkV1ServiceAccountList+ :: [V1ServiceAccount] -- ^ 'v1ServiceAccountListItems': List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/+ -> V1ServiceAccountList+mkV1ServiceAccountList v1ServiceAccountListItems =+ V1ServiceAccountList+ { v1ServiceAccountListApiVersion = Nothing+ , v1ServiceAccountListItems+ , v1ServiceAccountListKind = Nothing+ , v1ServiceAccountListMetadata = Nothing+ }++-- ** V1ServiceAccountSubject+-- | V1ServiceAccountSubject+-- ServiceAccountSubject holds detailed information for service-account-kind subject.+data V1ServiceAccountSubject = V1ServiceAccountSubject+ { v1ServiceAccountSubjectName :: !(Text) -- ^ /Required/ "name" - `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.+ , v1ServiceAccountSubjectNamespace :: !(Text) -- ^ /Required/ "namespace" - `namespace` is the namespace of matching ServiceAccount objects. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceAccountSubject+instance A.FromJSON V1ServiceAccountSubject where+ parseJSON = A.withObject "V1ServiceAccountSubject" $ \o ->+ V1ServiceAccountSubject+ <$> (o .: "name")+ <*> (o .: "namespace")++-- | ToJSON V1ServiceAccountSubject+instance A.ToJSON V1ServiceAccountSubject where+ toJSON V1ServiceAccountSubject {..} =+ _omitNulls+ [ "name" .= v1ServiceAccountSubjectName+ , "namespace" .= v1ServiceAccountSubjectNamespace+ ]+++-- | Construct a value of type 'V1ServiceAccountSubject' (by applying it's required fields, if any)+mkV1ServiceAccountSubject+ :: Text -- ^ 'v1ServiceAccountSubjectName': `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.+ -> Text -- ^ 'v1ServiceAccountSubjectNamespace': `namespace` is the namespace of matching ServiceAccount objects. Required.+ -> V1ServiceAccountSubject+mkV1ServiceAccountSubject v1ServiceAccountSubjectName v1ServiceAccountSubjectNamespace =+ V1ServiceAccountSubject+ { v1ServiceAccountSubjectName+ , v1ServiceAccountSubjectNamespace+ }++-- ** V1ServiceAccountTokenProjection+-- | V1ServiceAccountTokenProjection+-- ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).+data V1ServiceAccountTokenProjection = V1ServiceAccountTokenProjection+ { v1ServiceAccountTokenProjectionAudience :: !(Maybe Text) -- ^ "audience" - audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.+ , v1ServiceAccountTokenProjectionExpirationSeconds :: !(Maybe Integer) -- ^ "expirationSeconds" - expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.+ , v1ServiceAccountTokenProjectionPath :: !(Text) -- ^ /Required/ "path" - path is the path relative to the mount point of the file to project the token into.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceAccountTokenProjection+instance A.FromJSON V1ServiceAccountTokenProjection where+ parseJSON = A.withObject "V1ServiceAccountTokenProjection" $ \o ->+ V1ServiceAccountTokenProjection+ <$> (o .:? "audience")+ <*> (o .:? "expirationSeconds")+ <*> (o .: "path")++-- | ToJSON V1ServiceAccountTokenProjection+instance A.ToJSON V1ServiceAccountTokenProjection where+ toJSON V1ServiceAccountTokenProjection {..} =+ _omitNulls+ [ "audience" .= v1ServiceAccountTokenProjectionAudience+ , "expirationSeconds" .= v1ServiceAccountTokenProjectionExpirationSeconds+ , "path" .= v1ServiceAccountTokenProjectionPath+ ]+++-- | Construct a value of type 'V1ServiceAccountTokenProjection' (by applying it's required fields, if any)+mkV1ServiceAccountTokenProjection+ :: Text -- ^ 'v1ServiceAccountTokenProjectionPath': path is the path relative to the mount point of the file to project the token into.+ -> V1ServiceAccountTokenProjection+mkV1ServiceAccountTokenProjection v1ServiceAccountTokenProjectionPath =+ V1ServiceAccountTokenProjection+ { v1ServiceAccountTokenProjectionAudience = Nothing+ , v1ServiceAccountTokenProjectionExpirationSeconds = Nothing+ , v1ServiceAccountTokenProjectionPath+ }++-- ** V1ServiceBackendPort+-- | V1ServiceBackendPort+-- ServiceBackendPort is the service port being referenced.+data V1ServiceBackendPort = V1ServiceBackendPort+ { v1ServiceBackendPortName :: !(Maybe Text) -- ^ "name" - name is the name of the port on the Service. This is a mutually exclusive setting with \"Number\".+ , v1ServiceBackendPortNumber :: !(Maybe Int) -- ^ "number" - number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \"Name\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceBackendPort+instance A.FromJSON V1ServiceBackendPort where+ parseJSON = A.withObject "V1ServiceBackendPort" $ \o ->+ V1ServiceBackendPort+ <$> (o .:? "name")+ <*> (o .:? "number")++-- | ToJSON V1ServiceBackendPort+instance A.ToJSON V1ServiceBackendPort where+ toJSON V1ServiceBackendPort {..} =+ _omitNulls+ [ "name" .= v1ServiceBackendPortName+ , "number" .= v1ServiceBackendPortNumber+ ]+++-- | Construct a value of type 'V1ServiceBackendPort' (by applying it's required fields, if any)+mkV1ServiceBackendPort+ :: V1ServiceBackendPort+mkV1ServiceBackendPort =+ V1ServiceBackendPort+ { v1ServiceBackendPortName = Nothing+ , v1ServiceBackendPortNumber = Nothing+ }++-- ** V1ServiceCIDR+-- | V1ServiceCIDR+-- ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.+data V1ServiceCIDR = V1ServiceCIDR+ { v1ServiceCIDRApiVersion :: !(Maybe Text) -- ^ "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+ , v1ServiceCIDRKind :: !(Maybe Text) -- ^ "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+ , v1ServiceCIDRMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ServiceCIDRSpec :: !(Maybe V1ServiceCIDRSpec) -- ^ "spec"+ , v1ServiceCIDRStatus :: !(Maybe V1ServiceCIDRStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceCIDR+instance A.FromJSON V1ServiceCIDR where+ parseJSON = A.withObject "V1ServiceCIDR" $ \o ->+ V1ServiceCIDR+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1ServiceCIDR+instance A.ToJSON V1ServiceCIDR where+ toJSON V1ServiceCIDR {..} =+ _omitNulls+ [ "apiVersion" .= v1ServiceCIDRApiVersion+ , "kind" .= v1ServiceCIDRKind+ , "metadata" .= v1ServiceCIDRMetadata+ , "spec" .= v1ServiceCIDRSpec+ , "status" .= v1ServiceCIDRStatus+ ]+++-- | Construct a value of type 'V1ServiceCIDR' (by applying it's required fields, if any)+mkV1ServiceCIDR+ :: V1ServiceCIDR+mkV1ServiceCIDR =+ V1ServiceCIDR+ { v1ServiceCIDRApiVersion = Nothing+ , v1ServiceCIDRKind = Nothing+ , v1ServiceCIDRMetadata = Nothing+ , v1ServiceCIDRSpec = Nothing+ , v1ServiceCIDRStatus = Nothing+ }++-- ** V1ServiceCIDRList+-- | V1ServiceCIDRList+-- ServiceCIDRList contains a list of ServiceCIDR objects.+data V1ServiceCIDRList = V1ServiceCIDRList+ { v1ServiceCIDRListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ServiceCIDRListItems :: !([V1ServiceCIDR]) -- ^ /Required/ "items" - items is the list of ServiceCIDRs.+ , v1ServiceCIDRListKind :: !(Maybe Text) -- ^ "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+ , v1ServiceCIDRListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceCIDRList+instance A.FromJSON V1ServiceCIDRList where+ parseJSON = A.withObject "V1ServiceCIDRList" $ \o ->+ V1ServiceCIDRList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ServiceCIDRList+instance A.ToJSON V1ServiceCIDRList where+ toJSON V1ServiceCIDRList {..} =+ _omitNulls+ [ "apiVersion" .= v1ServiceCIDRListApiVersion+ , "items" .= v1ServiceCIDRListItems+ , "kind" .= v1ServiceCIDRListKind+ , "metadata" .= v1ServiceCIDRListMetadata+ ]+++-- | Construct a value of type 'V1ServiceCIDRList' (by applying it's required fields, if any)+mkV1ServiceCIDRList+ :: [V1ServiceCIDR] -- ^ 'v1ServiceCIDRListItems': items is the list of ServiceCIDRs.+ -> V1ServiceCIDRList+mkV1ServiceCIDRList v1ServiceCIDRListItems =+ V1ServiceCIDRList+ { v1ServiceCIDRListApiVersion = Nothing+ , v1ServiceCIDRListItems+ , v1ServiceCIDRListKind = Nothing+ , v1ServiceCIDRListMetadata = Nothing+ }++-- ** V1ServiceCIDRSpec+-- | V1ServiceCIDRSpec+-- ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.+data V1ServiceCIDRSpec = V1ServiceCIDRSpec+ { v1ServiceCIDRSpecCidrs :: !(Maybe [Text]) -- ^ "cidrs" - CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceCIDRSpec+instance A.FromJSON V1ServiceCIDRSpec where+ parseJSON = A.withObject "V1ServiceCIDRSpec" $ \o ->+ V1ServiceCIDRSpec+ <$> (o .:? "cidrs")++-- | ToJSON V1ServiceCIDRSpec+instance A.ToJSON V1ServiceCIDRSpec where+ toJSON V1ServiceCIDRSpec {..} =+ _omitNulls+ [ "cidrs" .= v1ServiceCIDRSpecCidrs+ ]+++-- | Construct a value of type 'V1ServiceCIDRSpec' (by applying it's required fields, if any)+mkV1ServiceCIDRSpec+ :: V1ServiceCIDRSpec+mkV1ServiceCIDRSpec =+ V1ServiceCIDRSpec+ { v1ServiceCIDRSpecCidrs = Nothing+ }++-- ** V1ServiceCIDRStatus+-- | V1ServiceCIDRStatus+-- ServiceCIDRStatus describes the current state of the ServiceCIDR.+data V1ServiceCIDRStatus = V1ServiceCIDRStatus+ { v1ServiceCIDRStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceCIDRStatus+instance A.FromJSON V1ServiceCIDRStatus where+ parseJSON = A.withObject "V1ServiceCIDRStatus" $ \o ->+ V1ServiceCIDRStatus+ <$> (o .:? "conditions")++-- | ToJSON V1ServiceCIDRStatus+instance A.ToJSON V1ServiceCIDRStatus where+ toJSON V1ServiceCIDRStatus {..} =+ _omitNulls+ [ "conditions" .= v1ServiceCIDRStatusConditions+ ]+++-- | Construct a value of type 'V1ServiceCIDRStatus' (by applying it's required fields, if any)+mkV1ServiceCIDRStatus+ :: V1ServiceCIDRStatus+mkV1ServiceCIDRStatus =+ V1ServiceCIDRStatus+ { v1ServiceCIDRStatusConditions = Nothing+ }++-- ** V1ServiceList+-- | V1ServiceList+-- ServiceList holds a list of services.+data V1ServiceList = V1ServiceList+ { v1ServiceListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ServiceListItems :: !([V1Service]) -- ^ /Required/ "items" - List of services+ , v1ServiceListKind :: !(Maybe Text) -- ^ "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+ , v1ServiceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceList+instance A.FromJSON V1ServiceList where+ parseJSON = A.withObject "V1ServiceList" $ \o ->+ V1ServiceList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ServiceList+instance A.ToJSON V1ServiceList where+ toJSON V1ServiceList {..} =+ _omitNulls+ [ "apiVersion" .= v1ServiceListApiVersion+ , "items" .= v1ServiceListItems+ , "kind" .= v1ServiceListKind+ , "metadata" .= v1ServiceListMetadata+ ]+++-- | Construct a value of type 'V1ServiceList' (by applying it's required fields, if any)+mkV1ServiceList+ :: [V1Service] -- ^ 'v1ServiceListItems': List of services+ -> V1ServiceList+mkV1ServiceList v1ServiceListItems =+ V1ServiceList+ { v1ServiceListApiVersion = Nothing+ , v1ServiceListItems+ , v1ServiceListKind = Nothing+ , v1ServiceListMetadata = Nothing+ }++-- ** V1ServicePort+-- | V1ServicePort+-- ServicePort contains information on service's port.+data V1ServicePort = V1ServicePort+ { v1ServicePortAppProtocol :: !(Maybe Text) -- ^ "appProtocol" - The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.+ , v1ServicePortName :: !(Maybe Text) -- ^ "name" - The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.+ , v1ServicePortNodePort :: !(Maybe Int) -- ^ "nodePort" - The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport+ , v1ServicePortPort :: !(Int) -- ^ /Required/ "port" - The port that will be exposed by this service.+ , v1ServicePortProtocol :: !(Maybe Text) -- ^ "protocol" - The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.+ , v1ServicePortTargetPort :: !(Maybe IntOrString) -- ^ "targetPort"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServicePort+instance A.FromJSON V1ServicePort where+ parseJSON = A.withObject "V1ServicePort" $ \o ->+ V1ServicePort+ <$> (o .:? "appProtocol")+ <*> (o .:? "name")+ <*> (o .:? "nodePort")+ <*> (o .: "port")+ <*> (o .:? "protocol")+ <*> (o .:? "targetPort")++-- | ToJSON V1ServicePort+instance A.ToJSON V1ServicePort where+ toJSON V1ServicePort {..} =+ _omitNulls+ [ "appProtocol" .= v1ServicePortAppProtocol+ , "name" .= v1ServicePortName+ , "nodePort" .= v1ServicePortNodePort+ , "port" .= v1ServicePortPort+ , "protocol" .= v1ServicePortProtocol+ , "targetPort" .= v1ServicePortTargetPort+ ]+++-- | Construct a value of type 'V1ServicePort' (by applying it's required fields, if any)+mkV1ServicePort+ :: Int -- ^ 'v1ServicePortPort': The port that will be exposed by this service.+ -> V1ServicePort+mkV1ServicePort v1ServicePortPort =+ V1ServicePort+ { v1ServicePortAppProtocol = Nothing+ , v1ServicePortName = Nothing+ , v1ServicePortNodePort = Nothing+ , v1ServicePortPort+ , v1ServicePortProtocol = Nothing+ , v1ServicePortTargetPort = Nothing+ }++-- ** V1ServiceSpec+-- | V1ServiceSpec+-- ServiceSpec describes the attributes that a user creates on a service.+data V1ServiceSpec = V1ServiceSpec+ { v1ServiceSpecAllocateLoadBalancerNodePorts :: !(Maybe Bool) -- ^ "allocateLoadBalancerNodePorts" - allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.+ , v1ServiceSpecClusterIp :: !(Maybe Text) -- ^ "clusterIP" - clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies+ , v1ServiceSpecClusterIps :: !(Maybe [Text]) -- ^ "clusterIPs" - ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value. This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies+ , v1ServiceSpecExternalIps :: !(Maybe [Text]) -- ^ "externalIPs" - externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.+ , v1ServiceSpecExternalName :: !(Maybe Text) -- ^ "externalName" - externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".+ , v1ServiceSpecExternalTrafficPolicy :: !(Maybe Text) -- ^ "externalTrafficPolicy" - externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.+ , v1ServiceSpecHealthCheckNodePort :: !(Maybe Int) -- ^ "healthCheckNodePort" - healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.+ , v1ServiceSpecInternalTrafficPolicy :: !(Maybe Text) -- ^ "internalTrafficPolicy" - InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).+ , v1ServiceSpecIpFamilies :: !(Maybe [Text]) -- ^ "ipFamilies" - IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName. This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.+ , v1ServiceSpecIpFamilyPolicy :: !(Maybe Text) -- ^ "ipFamilyPolicy" - IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.+ , v1ServiceSpecLoadBalancerClass :: !(Maybe Text) -- ^ "loadBalancerClass" - loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.+ , v1ServiceSpecLoadBalancerIp :: !(Maybe Text) -- ^ "loadBalancerIP" - Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.+ , v1ServiceSpecLoadBalancerSourceRanges :: !(Maybe [Text]) -- ^ "loadBalancerSourceRanges" - If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/+ , v1ServiceSpecPorts :: !(Maybe [V1ServicePort]) -- ^ "ports" - The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies+ , v1ServiceSpecPublishNotReadyAddresses :: !(Maybe Bool) -- ^ "publishNotReadyAddresses" - publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.+ , v1ServiceSpecSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/+ , v1ServiceSpecSessionAffinity :: !(Maybe Text) -- ^ "sessionAffinity" - 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+ , v1ServiceSpecSessionAffinityConfig :: !(Maybe V1SessionAffinityConfig) -- ^ "sessionAffinityConfig"+ , v1ServiceSpecTrafficDistribution :: !(Maybe Text) -- ^ "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 in the same zone.+ , v1ServiceSpecType :: !(Maybe Text) -- ^ "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+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceSpec+instance A.FromJSON V1ServiceSpec where+ parseJSON = A.withObject "V1ServiceSpec" $ \o ->+ V1ServiceSpec+ <$> (o .:? "allocateLoadBalancerNodePorts")+ <*> (o .:? "clusterIP")+ <*> (o .:? "clusterIPs")+ <*> (o .:? "externalIPs")+ <*> (o .:? "externalName")+ <*> (o .:? "externalTrafficPolicy")+ <*> (o .:? "healthCheckNodePort")+ <*> (o .:? "internalTrafficPolicy")+ <*> (o .:? "ipFamilies")+ <*> (o .:? "ipFamilyPolicy")+ <*> (o .:? "loadBalancerClass")+ <*> (o .:? "loadBalancerIP")+ <*> (o .:? "loadBalancerSourceRanges")+ <*> (o .:? "ports")+ <*> (o .:? "publishNotReadyAddresses")+ <*> (o .:? "selector")+ <*> (o .:? "sessionAffinity")+ <*> (o .:? "sessionAffinityConfig")+ <*> (o .:? "trafficDistribution")+ <*> (o .:? "type")++-- | ToJSON V1ServiceSpec+instance A.ToJSON V1ServiceSpec where+ toJSON V1ServiceSpec {..} =+ _omitNulls+ [ "allocateLoadBalancerNodePorts" .= v1ServiceSpecAllocateLoadBalancerNodePorts+ , "clusterIP" .= v1ServiceSpecClusterIp+ , "clusterIPs" .= v1ServiceSpecClusterIps+ , "externalIPs" .= v1ServiceSpecExternalIps+ , "externalName" .= v1ServiceSpecExternalName+ , "externalTrafficPolicy" .= v1ServiceSpecExternalTrafficPolicy+ , "healthCheckNodePort" .= v1ServiceSpecHealthCheckNodePort+ , "internalTrafficPolicy" .= v1ServiceSpecInternalTrafficPolicy+ , "ipFamilies" .= v1ServiceSpecIpFamilies+ , "ipFamilyPolicy" .= v1ServiceSpecIpFamilyPolicy+ , "loadBalancerClass" .= v1ServiceSpecLoadBalancerClass+ , "loadBalancerIP" .= v1ServiceSpecLoadBalancerIp+ , "loadBalancerSourceRanges" .= v1ServiceSpecLoadBalancerSourceRanges+ , "ports" .= v1ServiceSpecPorts+ , "publishNotReadyAddresses" .= v1ServiceSpecPublishNotReadyAddresses+ , "selector" .= v1ServiceSpecSelector+ , "sessionAffinity" .= v1ServiceSpecSessionAffinity+ , "sessionAffinityConfig" .= v1ServiceSpecSessionAffinityConfig+ , "trafficDistribution" .= v1ServiceSpecTrafficDistribution+ , "type" .= v1ServiceSpecType+ ]+++-- | Construct a value of type 'V1ServiceSpec' (by applying it's required fields, if any)+mkV1ServiceSpec+ :: V1ServiceSpec+mkV1ServiceSpec =+ V1ServiceSpec+ { v1ServiceSpecAllocateLoadBalancerNodePorts = Nothing+ , v1ServiceSpecClusterIp = Nothing+ , v1ServiceSpecClusterIps = Nothing+ , v1ServiceSpecExternalIps = Nothing+ , v1ServiceSpecExternalName = Nothing+ , v1ServiceSpecExternalTrafficPolicy = Nothing+ , v1ServiceSpecHealthCheckNodePort = Nothing+ , v1ServiceSpecInternalTrafficPolicy = Nothing+ , v1ServiceSpecIpFamilies = Nothing+ , v1ServiceSpecIpFamilyPolicy = Nothing+ , v1ServiceSpecLoadBalancerClass = Nothing+ , v1ServiceSpecLoadBalancerIp = Nothing+ , v1ServiceSpecLoadBalancerSourceRanges = Nothing+ , v1ServiceSpecPorts = Nothing+ , v1ServiceSpecPublishNotReadyAddresses = Nothing+ , v1ServiceSpecSelector = Nothing+ , v1ServiceSpecSessionAffinity = Nothing+ , v1ServiceSpecSessionAffinityConfig = Nothing+ , v1ServiceSpecTrafficDistribution = Nothing+ , v1ServiceSpecType = Nothing+ }++-- ** V1ServiceStatus+-- | V1ServiceStatus+-- ServiceStatus represents the current status of a service.+data V1ServiceStatus = V1ServiceStatus+ { v1ServiceStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - Current service state+ , v1ServiceStatusLoadBalancer :: !(Maybe V1LoadBalancerStatus) -- ^ "loadBalancer"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ServiceStatus+instance A.FromJSON V1ServiceStatus where+ parseJSON = A.withObject "V1ServiceStatus" $ \o ->+ V1ServiceStatus+ <$> (o .:? "conditions")+ <*> (o .:? "loadBalancer")++-- | ToJSON V1ServiceStatus+instance A.ToJSON V1ServiceStatus where+ toJSON V1ServiceStatus {..} =+ _omitNulls+ [ "conditions" .= v1ServiceStatusConditions+ , "loadBalancer" .= v1ServiceStatusLoadBalancer+ ]+++-- | Construct a value of type 'V1ServiceStatus' (by applying it's required fields, if any)+mkV1ServiceStatus+ :: V1ServiceStatus+mkV1ServiceStatus =+ V1ServiceStatus+ { v1ServiceStatusConditions = Nothing+ , v1ServiceStatusLoadBalancer = Nothing+ }++-- ** V1SessionAffinityConfig+-- | V1SessionAffinityConfig+-- SessionAffinityConfig represents the configurations of session affinity.+data V1SessionAffinityConfig = V1SessionAffinityConfig+ { v1SessionAffinityConfigClientIp :: !(Maybe V1ClientIPConfig) -- ^ "clientIP"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SessionAffinityConfig+instance A.FromJSON V1SessionAffinityConfig where+ parseJSON = A.withObject "V1SessionAffinityConfig" $ \o ->+ V1SessionAffinityConfig+ <$> (o .:? "clientIP")++-- | ToJSON V1SessionAffinityConfig+instance A.ToJSON V1SessionAffinityConfig where+ toJSON V1SessionAffinityConfig {..} =+ _omitNulls+ [ "clientIP" .= v1SessionAffinityConfigClientIp+ ]+++-- | Construct a value of type 'V1SessionAffinityConfig' (by applying it's required fields, if any)+mkV1SessionAffinityConfig+ :: V1SessionAffinityConfig+mkV1SessionAffinityConfig =+ V1SessionAffinityConfig+ { v1SessionAffinityConfigClientIp = Nothing+ }++-- ** V1SleepAction+-- | V1SleepAction+-- SleepAction describes a \"sleep\" action.+data V1SleepAction = V1SleepAction+ { v1SleepActionSeconds :: !(Integer) -- ^ /Required/ "seconds" - Seconds is the number of seconds to sleep.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SleepAction+instance A.FromJSON V1SleepAction where+ parseJSON = A.withObject "V1SleepAction" $ \o ->+ V1SleepAction+ <$> (o .: "seconds")++-- | ToJSON V1SleepAction+instance A.ToJSON V1SleepAction where+ toJSON V1SleepAction {..} =+ _omitNulls+ [ "seconds" .= v1SleepActionSeconds+ ]+++-- | Construct a value of type 'V1SleepAction' (by applying it's required fields, if any)+mkV1SleepAction+ :: Integer -- ^ 'v1SleepActionSeconds': Seconds is the number of seconds to sleep.+ -> V1SleepAction+mkV1SleepAction v1SleepActionSeconds =+ V1SleepAction+ { v1SleepActionSeconds+ }++-- ** V1StatefulSet+-- | V1StatefulSet+-- StatefulSet represents a set of pods with consistent identities. Identities are defined as: - Network: A single stable DNS and hostname. - Storage: As many VolumeClaims as requested. The StatefulSet guarantees that a given network identity will always map to the same storage identity.+data V1StatefulSet = V1StatefulSet+ { v1StatefulSetApiVersion :: !(Maybe Text) -- ^ "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+ , v1StatefulSetKind :: !(Maybe Text) -- ^ "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+ , v1StatefulSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1StatefulSetSpec :: !(Maybe V1StatefulSetSpec) -- ^ "spec"+ , v1StatefulSetStatus :: !(Maybe V1StatefulSetStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatefulSet+instance A.FromJSON V1StatefulSet where+ parseJSON = A.withObject "V1StatefulSet" $ \o ->+ V1StatefulSet+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1StatefulSet+instance A.ToJSON V1StatefulSet where+ toJSON V1StatefulSet {..} =+ _omitNulls+ [ "apiVersion" .= v1StatefulSetApiVersion+ , "kind" .= v1StatefulSetKind+ , "metadata" .= v1StatefulSetMetadata+ , "spec" .= v1StatefulSetSpec+ , "status" .= v1StatefulSetStatus+ ]+++-- | Construct a value of type 'V1StatefulSet' (by applying it's required fields, if any)+mkV1StatefulSet+ :: V1StatefulSet+mkV1StatefulSet =+ V1StatefulSet+ { v1StatefulSetApiVersion = Nothing+ , v1StatefulSetKind = Nothing+ , v1StatefulSetMetadata = Nothing+ , v1StatefulSetSpec = Nothing+ , v1StatefulSetStatus = Nothing+ }++-- ** V1StatefulSetCondition+-- | V1StatefulSetCondition+-- StatefulSetCondition describes the state of a statefulset at a certain point.+data V1StatefulSetCondition = V1StatefulSetCondition+ { v1StatefulSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.+ , v1StatefulSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.+ , v1StatefulSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition's last transition.+ , v1StatefulSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1StatefulSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of statefulset condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatefulSetCondition+instance A.FromJSON V1StatefulSetCondition where+ parseJSON = A.withObject "V1StatefulSetCondition" $ \o ->+ V1StatefulSetCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .:? "message")+ <*> (o .:? "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1StatefulSetCondition+instance A.ToJSON V1StatefulSetCondition where+ toJSON V1StatefulSetCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1StatefulSetConditionLastTransitionTime+ , "message" .= v1StatefulSetConditionMessage+ , "reason" .= v1StatefulSetConditionReason+ , "status" .= v1StatefulSetConditionStatus+ , "type" .= v1StatefulSetConditionType+ ]+++-- | Construct a value of type 'V1StatefulSetCondition' (by applying it's required fields, if any)+mkV1StatefulSetCondition+ :: Text -- ^ 'v1StatefulSetConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1StatefulSetConditionType': Type of statefulset condition.+ -> V1StatefulSetCondition+mkV1StatefulSetCondition v1StatefulSetConditionStatus v1StatefulSetConditionType =+ V1StatefulSetCondition+ { v1StatefulSetConditionLastTransitionTime = Nothing+ , v1StatefulSetConditionMessage = Nothing+ , v1StatefulSetConditionReason = Nothing+ , v1StatefulSetConditionStatus+ , v1StatefulSetConditionType+ }++-- ** V1StatefulSetList+-- | V1StatefulSetList+-- StatefulSetList is a collection of StatefulSets.+data V1StatefulSetList = V1StatefulSetList+ { v1StatefulSetListApiVersion :: !(Maybe Text) -- ^ "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+ , v1StatefulSetListItems :: !([V1StatefulSet]) -- ^ /Required/ "items" - Items is the list of stateful sets.+ , v1StatefulSetListKind :: !(Maybe Text) -- ^ "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+ , v1StatefulSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatefulSetList+instance A.FromJSON V1StatefulSetList where+ parseJSON = A.withObject "V1StatefulSetList" $ \o ->+ V1StatefulSetList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1StatefulSetList+instance A.ToJSON V1StatefulSetList where+ toJSON V1StatefulSetList {..} =+ _omitNulls+ [ "apiVersion" .= v1StatefulSetListApiVersion+ , "items" .= v1StatefulSetListItems+ , "kind" .= v1StatefulSetListKind+ , "metadata" .= v1StatefulSetListMetadata+ ]+++-- | Construct a value of type 'V1StatefulSetList' (by applying it's required fields, if any)+mkV1StatefulSetList+ :: [V1StatefulSet] -- ^ 'v1StatefulSetListItems': Items is the list of stateful sets.+ -> V1StatefulSetList+mkV1StatefulSetList v1StatefulSetListItems =+ V1StatefulSetList+ { v1StatefulSetListApiVersion = Nothing+ , v1StatefulSetListItems+ , v1StatefulSetListKind = Nothing+ , v1StatefulSetListMetadata = Nothing+ }++-- ** V1StatefulSetOrdinals+-- | V1StatefulSetOrdinals+-- StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.+data V1StatefulSetOrdinals = V1StatefulSetOrdinals+ { v1StatefulSetOrdinalsStart :: !(Maybe Int) -- ^ "start" - start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range: [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas). If unset, defaults to 0. Replica indices will be in the range: [0, .spec.replicas).+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatefulSetOrdinals+instance A.FromJSON V1StatefulSetOrdinals where+ parseJSON = A.withObject "V1StatefulSetOrdinals" $ \o ->+ V1StatefulSetOrdinals+ <$> (o .:? "start")++-- | ToJSON V1StatefulSetOrdinals+instance A.ToJSON V1StatefulSetOrdinals where+ toJSON V1StatefulSetOrdinals {..} =+ _omitNulls+ [ "start" .= v1StatefulSetOrdinalsStart+ ]+++-- | Construct a value of type 'V1StatefulSetOrdinals' (by applying it's required fields, if any)+mkV1StatefulSetOrdinals+ :: V1StatefulSetOrdinals+mkV1StatefulSetOrdinals =+ V1StatefulSetOrdinals+ { v1StatefulSetOrdinalsStart = Nothing+ }++-- ** V1StatefulSetPersistentVolumeClaimRetentionPolicy+-- | V1StatefulSetPersistentVolumeClaimRetentionPolicy+-- StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.+data V1StatefulSetPersistentVolumeClaimRetentionPolicy = V1StatefulSetPersistentVolumeClaimRetentionPolicy+ { v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenDeleted :: !(Maybe Text) -- ^ "whenDeleted" - WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.+ , v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenScaled :: !(Maybe Text) -- ^ "whenScaled" - WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy+instance A.FromJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy where+ parseJSON = A.withObject "V1StatefulSetPersistentVolumeClaimRetentionPolicy" $ \o ->+ V1StatefulSetPersistentVolumeClaimRetentionPolicy+ <$> (o .:? "whenDeleted")+ <*> (o .:? "whenScaled")++-- | ToJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy+instance A.ToJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy where+ toJSON V1StatefulSetPersistentVolumeClaimRetentionPolicy {..} =+ _omitNulls+ [ "whenDeleted" .= v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenDeleted+ , "whenScaled" .= v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenScaled+ ]+++-- | Construct a value of type 'V1StatefulSetPersistentVolumeClaimRetentionPolicy' (by applying it's required fields, if any)+mkV1StatefulSetPersistentVolumeClaimRetentionPolicy+ :: V1StatefulSetPersistentVolumeClaimRetentionPolicy+mkV1StatefulSetPersistentVolumeClaimRetentionPolicy =+ V1StatefulSetPersistentVolumeClaimRetentionPolicy+ { v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenDeleted = Nothing+ , v1StatefulSetPersistentVolumeClaimRetentionPolicyWhenScaled = Nothing+ }++-- ** V1StatefulSetSpec+-- | V1StatefulSetSpec+-- A StatefulSetSpec is the specification of a StatefulSet.+data V1StatefulSetSpec = V1StatefulSetSpec+ { v1StatefulSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - 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)+ , v1StatefulSetSpecOrdinals :: !(Maybe V1StatefulSetOrdinals) -- ^ "ordinals"+ , v1StatefulSetSpecPersistentVolumeClaimRetentionPolicy :: !(Maybe V1StatefulSetPersistentVolumeClaimRetentionPolicy) -- ^ "persistentVolumeClaimRetentionPolicy"+ , v1StatefulSetSpecPodManagementPolicy :: !(Maybe Text) -- ^ "podManagementPolicy" - 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.+ , v1StatefulSetSpecReplicas :: !(Maybe 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.+ , v1StatefulSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - 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.+ , v1StatefulSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"+ , v1StatefulSetSpecServiceName :: !(Maybe Text) -- ^ "serviceName" - serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.+ , v1StatefulSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"+ , v1StatefulSetSpecUpdateStrategy :: !(Maybe V1StatefulSetUpdateStrategy) -- ^ "updateStrategy"+ , v1StatefulSetSpecVolumeClaimTemplates :: !(Maybe [V1PersistentVolumeClaim]) -- ^ "volumeClaimTemplates" - volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatefulSetSpec+instance A.FromJSON V1StatefulSetSpec where+ parseJSON = A.withObject "V1StatefulSetSpec" $ \o ->+ V1StatefulSetSpec+ <$> (o .:? "minReadySeconds")+ <*> (o .:? "ordinals")+ <*> (o .:? "persistentVolumeClaimRetentionPolicy")+ <*> (o .:? "podManagementPolicy")+ <*> (o .:? "replicas")+ <*> (o .:? "revisionHistoryLimit")+ <*> (o .: "selector")+ <*> (o .:? "serviceName")+ <*> (o .: "template")+ <*> (o .:? "updateStrategy")+ <*> (o .:? "volumeClaimTemplates")++-- | ToJSON V1StatefulSetSpec+instance A.ToJSON V1StatefulSetSpec where+ toJSON V1StatefulSetSpec {..} =+ _omitNulls+ [ "minReadySeconds" .= v1StatefulSetSpecMinReadySeconds+ , "ordinals" .= v1StatefulSetSpecOrdinals+ , "persistentVolumeClaimRetentionPolicy" .= v1StatefulSetSpecPersistentVolumeClaimRetentionPolicy+ , "podManagementPolicy" .= v1StatefulSetSpecPodManagementPolicy+ , "replicas" .= v1StatefulSetSpecReplicas+ , "revisionHistoryLimit" .= v1StatefulSetSpecRevisionHistoryLimit+ , "selector" .= v1StatefulSetSpecSelector+ , "serviceName" .= v1StatefulSetSpecServiceName+ , "template" .= v1StatefulSetSpecTemplate+ , "updateStrategy" .= v1StatefulSetSpecUpdateStrategy+ , "volumeClaimTemplates" .= v1StatefulSetSpecVolumeClaimTemplates+ ]+++-- | Construct a value of type 'V1StatefulSetSpec' (by applying it's required fields, if any)+mkV1StatefulSetSpec+ :: V1LabelSelector -- ^ 'v1StatefulSetSpecSelector' + -> V1PodTemplateSpec -- ^ 'v1StatefulSetSpecTemplate' + -> V1StatefulSetSpec+mkV1StatefulSetSpec v1StatefulSetSpecSelector v1StatefulSetSpecTemplate =+ V1StatefulSetSpec+ { v1StatefulSetSpecMinReadySeconds = Nothing+ , v1StatefulSetSpecOrdinals = Nothing+ , v1StatefulSetSpecPersistentVolumeClaimRetentionPolicy = Nothing+ , v1StatefulSetSpecPodManagementPolicy = Nothing+ , v1StatefulSetSpecReplicas = Nothing+ , v1StatefulSetSpecRevisionHistoryLimit = Nothing+ , v1StatefulSetSpecSelector+ , v1StatefulSetSpecServiceName = Nothing+ , v1StatefulSetSpecTemplate+ , v1StatefulSetSpecUpdateStrategy = Nothing+ , v1StatefulSetSpecVolumeClaimTemplates = Nothing+ }++-- ** V1StatefulSetStatus+-- | V1StatefulSetStatus+-- StatefulSetStatus represents the current state of a StatefulSet.+data V1StatefulSetStatus = V1StatefulSetStatus+ { v1StatefulSetStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.+ , v1StatefulSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.+ , v1StatefulSetStatusConditions :: !(Maybe [V1StatefulSetCondition]) -- ^ "conditions" - Represents the latest available observations of a statefulset's current state.+ , v1StatefulSetStatusCurrentReplicas :: !(Maybe Int) -- ^ "currentReplicas" - currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.+ , v1StatefulSetStatusCurrentRevision :: !(Maybe Text) -- ^ "currentRevision" - currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).+ , v1StatefulSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.+ , v1StatefulSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.+ , v1StatefulSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - replicas is the number of Pods created by the StatefulSet controller.+ , v1StatefulSetStatusUpdateRevision :: !(Maybe Text) -- ^ "updateRevision" - updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)+ , v1StatefulSetStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatefulSetStatus+instance A.FromJSON V1StatefulSetStatus where+ parseJSON = A.withObject "V1StatefulSetStatus" $ \o ->+ V1StatefulSetStatus+ <$> (o .:? "availableReplicas")+ <*> (o .:? "collisionCount")+ <*> (o .:? "conditions")+ <*> (o .:? "currentReplicas")+ <*> (o .:? "currentRevision")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "readyReplicas")+ <*> (o .: "replicas")+ <*> (o .:? "updateRevision")+ <*> (o .:? "updatedReplicas")++-- | ToJSON V1StatefulSetStatus+instance A.ToJSON V1StatefulSetStatus where+ toJSON V1StatefulSetStatus {..} =+ _omitNulls+ [ "availableReplicas" .= v1StatefulSetStatusAvailableReplicas+ , "collisionCount" .= v1StatefulSetStatusCollisionCount+ , "conditions" .= v1StatefulSetStatusConditions+ , "currentReplicas" .= v1StatefulSetStatusCurrentReplicas+ , "currentRevision" .= v1StatefulSetStatusCurrentRevision+ , "observedGeneration" .= v1StatefulSetStatusObservedGeneration+ , "readyReplicas" .= v1StatefulSetStatusReadyReplicas+ , "replicas" .= v1StatefulSetStatusReplicas+ , "updateRevision" .= v1StatefulSetStatusUpdateRevision+ , "updatedReplicas" .= v1StatefulSetStatusUpdatedReplicas+ ]+++-- | Construct a value of type 'V1StatefulSetStatus' (by applying it's required fields, if any)+mkV1StatefulSetStatus+ :: Int -- ^ 'v1StatefulSetStatusReplicas': replicas is the number of Pods created by the StatefulSet controller.+ -> V1StatefulSetStatus+mkV1StatefulSetStatus v1StatefulSetStatusReplicas =+ V1StatefulSetStatus+ { v1StatefulSetStatusAvailableReplicas = Nothing+ , v1StatefulSetStatusCollisionCount = Nothing+ , v1StatefulSetStatusConditions = Nothing+ , v1StatefulSetStatusCurrentReplicas = Nothing+ , v1StatefulSetStatusCurrentRevision = Nothing+ , v1StatefulSetStatusObservedGeneration = Nothing+ , v1StatefulSetStatusReadyReplicas = Nothing+ , v1StatefulSetStatusReplicas+ , v1StatefulSetStatusUpdateRevision = Nothing+ , v1StatefulSetStatusUpdatedReplicas = Nothing+ }++-- ** V1StatefulSetUpdateStrategy+-- | V1StatefulSetUpdateStrategy+-- StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.+data V1StatefulSetUpdateStrategy = V1StatefulSetUpdateStrategy+ { v1StatefulSetUpdateStrategyRollingUpdate :: !(Maybe V1RollingUpdateStatefulSetStrategy) -- ^ "rollingUpdate"+ , v1StatefulSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatefulSetUpdateStrategy+instance A.FromJSON V1StatefulSetUpdateStrategy where+ parseJSON = A.withObject "V1StatefulSetUpdateStrategy" $ \o ->+ V1StatefulSetUpdateStrategy+ <$> (o .:? "rollingUpdate")+ <*> (o .:? "type")++-- | ToJSON V1StatefulSetUpdateStrategy+instance A.ToJSON V1StatefulSetUpdateStrategy where+ toJSON V1StatefulSetUpdateStrategy {..} =+ _omitNulls+ [ "rollingUpdate" .= v1StatefulSetUpdateStrategyRollingUpdate+ , "type" .= v1StatefulSetUpdateStrategyType+ ]+++-- | Construct a value of type 'V1StatefulSetUpdateStrategy' (by applying it's required fields, if any)+mkV1StatefulSetUpdateStrategy+ :: V1StatefulSetUpdateStrategy+mkV1StatefulSetUpdateStrategy =+ V1StatefulSetUpdateStrategy+ { v1StatefulSetUpdateStrategyRollingUpdate = Nothing+ , v1StatefulSetUpdateStrategyType = Nothing+ }++-- ** V1Status+-- | V1Status+-- Status is a return value for calls that don't return other objects.+data V1Status = V1Status+ { v1StatusApiVersion :: !(Maybe Text) -- ^ "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+ , v1StatusCode :: !(Maybe Int) -- ^ "code" - Suggested HTTP return code for this status, 0 if not set.+ , v1StatusDetails :: !(Maybe V1StatusDetails) -- ^ "details"+ , v1StatusKind :: !(Maybe Text) -- ^ "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+ , v1StatusMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the status of this operation.+ , v1StatusMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ , v1StatusReason :: !(Maybe Text) -- ^ "reason" - A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.+ , v1StatusStatus :: !(Maybe Text) -- ^ "status" - Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Status+instance A.FromJSON V1Status where+ parseJSON = A.withObject "V1Status" $ \o ->+ V1Status+ <$> (o .:? "apiVersion")+ <*> (o .:? "code")+ <*> (o .:? "details")+ <*> (o .:? "kind")+ <*> (o .:? "message")+ <*> (o .:? "metadata")+ <*> (o .:? "reason")+ <*> (o .:? "status")++-- | ToJSON V1Status+instance A.ToJSON V1Status where+ toJSON V1Status {..} =+ _omitNulls+ [ "apiVersion" .= v1StatusApiVersion+ , "code" .= v1StatusCode+ , "details" .= v1StatusDetails+ , "kind" .= v1StatusKind+ , "message" .= v1StatusMessage+ , "metadata" .= v1StatusMetadata+ , "reason" .= v1StatusReason+ , "status" .= v1StatusStatus+ ]+++-- | Construct a value of type 'V1Status' (by applying it's required fields, if any)+mkV1Status+ :: V1Status+mkV1Status =+ V1Status+ { v1StatusApiVersion = Nothing+ , v1StatusCode = Nothing+ , v1StatusDetails = Nothing+ , v1StatusKind = Nothing+ , v1StatusMessage = Nothing+ , v1StatusMetadata = Nothing+ , v1StatusReason = Nothing+ , v1StatusStatus = Nothing+ }++-- ** V1StatusCause+-- | V1StatusCause+-- StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.+data V1StatusCause = V1StatusCause+ { v1StatusCauseField :: !(Maybe Text) -- ^ "field" - The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional. Examples: \"name\" - the field \"name\" on the current resource \"items[0].name\" - the field \"name\" on the first array entry in \"items\"+ , v1StatusCauseMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the cause of the error. This field may be presented as-is to a reader.+ , v1StatusCauseReason :: !(Maybe Text) -- ^ "reason" - A machine-readable description of the cause of the error. If this value is empty there is no information available.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatusCause+instance A.FromJSON V1StatusCause where+ parseJSON = A.withObject "V1StatusCause" $ \o ->+ V1StatusCause+ <$> (o .:? "field")+ <*> (o .:? "message")+ <*> (o .:? "reason")++-- | ToJSON V1StatusCause+instance A.ToJSON V1StatusCause where+ toJSON V1StatusCause {..} =+ _omitNulls+ [ "field" .= v1StatusCauseField+ , "message" .= v1StatusCauseMessage+ , "reason" .= v1StatusCauseReason+ ]+++-- | Construct a value of type 'V1StatusCause' (by applying it's required fields, if any)+mkV1StatusCause+ :: V1StatusCause+mkV1StatusCause =+ V1StatusCause+ { v1StatusCauseField = Nothing+ , v1StatusCauseMessage = Nothing+ , v1StatusCauseReason = Nothing+ }++-- ** V1StatusDetails+-- | V1StatusDetails+-- StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.+data V1StatusDetails = V1StatusDetails+ { v1StatusDetailsCauses :: !(Maybe [V1StatusCause]) -- ^ "causes" - The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.+ , v1StatusDetailsGroup :: !(Maybe Text) -- ^ "group" - The group attribute of the resource associated with the status StatusReason.+ , v1StatusDetailsKind :: !(Maybe Text) -- ^ "kind" - The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds+ , v1StatusDetailsName :: !(Maybe Text) -- ^ "name" - The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).+ , v1StatusDetailsRetryAfterSeconds :: !(Maybe Int) -- ^ "retryAfterSeconds" - If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.+ , v1StatusDetailsUid :: !(Maybe Text) -- ^ "uid" - UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StatusDetails+instance A.FromJSON V1StatusDetails where+ parseJSON = A.withObject "V1StatusDetails" $ \o ->+ V1StatusDetails+ <$> (o .:? "causes")+ <*> (o .:? "group")+ <*> (o .:? "kind")+ <*> (o .:? "name")+ <*> (o .:? "retryAfterSeconds")+ <*> (o .:? "uid")++-- | ToJSON V1StatusDetails+instance A.ToJSON V1StatusDetails where+ toJSON V1StatusDetails {..} =+ _omitNulls+ [ "causes" .= v1StatusDetailsCauses+ , "group" .= v1StatusDetailsGroup+ , "kind" .= v1StatusDetailsKind+ , "name" .= v1StatusDetailsName+ , "retryAfterSeconds" .= v1StatusDetailsRetryAfterSeconds+ , "uid" .= v1StatusDetailsUid+ ]+++-- | Construct a value of type 'V1StatusDetails' (by applying it's required fields, if any)+mkV1StatusDetails+ :: V1StatusDetails+mkV1StatusDetails =+ V1StatusDetails+ { v1StatusDetailsCauses = Nothing+ , v1StatusDetailsGroup = Nothing+ , v1StatusDetailsKind = Nothing+ , v1StatusDetailsName = Nothing+ , v1StatusDetailsRetryAfterSeconds = Nothing+ , v1StatusDetailsUid = Nothing+ }++-- ** V1StorageClass+-- | V1StorageClass+-- StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned. StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.+data V1StorageClass = V1StorageClass+ { v1StorageClassAllowVolumeExpansion :: !(Maybe Bool) -- ^ "allowVolumeExpansion" - allowVolumeExpansion shows whether the storage class allow volume expand.+ , v1StorageClassAllowedTopologies :: !(Maybe [V1TopologySelectorTerm]) -- ^ "allowedTopologies" - allowedTopologies restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.+ , v1StorageClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1StorageClassKind :: !(Maybe Text) -- ^ "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+ , v1StorageClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1StorageClassMountOptions :: !(Maybe [Text]) -- ^ "mountOptions" - mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class. e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.+ , v1StorageClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - parameters holds the parameters for the provisioner that should create volumes of this storage class.+ , v1StorageClassProvisioner :: !(Text) -- ^ /Required/ "provisioner" - provisioner indicates the type of the provisioner.+ , v1StorageClassReclaimPolicy :: !(Maybe Text) -- ^ "reclaimPolicy" - reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete.+ , v1StorageClassVolumeBindingMode :: !(Maybe Text) -- ^ "volumeBindingMode" - volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StorageClass+instance A.FromJSON V1StorageClass where+ parseJSON = A.withObject "V1StorageClass" $ \o ->+ V1StorageClass+ <$> (o .:? "allowVolumeExpansion")+ <*> (o .:? "allowedTopologies")+ <*> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "mountOptions")+ <*> (o .:? "parameters")+ <*> (o .: "provisioner")+ <*> (o .:? "reclaimPolicy")+ <*> (o .:? "volumeBindingMode")++-- | ToJSON V1StorageClass+instance A.ToJSON V1StorageClass where+ toJSON V1StorageClass {..} =+ _omitNulls+ [ "allowVolumeExpansion" .= v1StorageClassAllowVolumeExpansion+ , "allowedTopologies" .= v1StorageClassAllowedTopologies+ , "apiVersion" .= v1StorageClassApiVersion+ , "kind" .= v1StorageClassKind+ , "metadata" .= v1StorageClassMetadata+ , "mountOptions" .= v1StorageClassMountOptions+ , "parameters" .= v1StorageClassParameters+ , "provisioner" .= v1StorageClassProvisioner+ , "reclaimPolicy" .= v1StorageClassReclaimPolicy+ , "volumeBindingMode" .= v1StorageClassVolumeBindingMode+ ]+++-- | Construct a value of type 'V1StorageClass' (by applying it's required fields, if any)+mkV1StorageClass+ :: Text -- ^ 'v1StorageClassProvisioner': provisioner indicates the type of the provisioner.+ -> V1StorageClass+mkV1StorageClass v1StorageClassProvisioner =+ V1StorageClass+ { v1StorageClassAllowVolumeExpansion = Nothing+ , v1StorageClassAllowedTopologies = Nothing+ , v1StorageClassApiVersion = Nothing+ , v1StorageClassKind = Nothing+ , v1StorageClassMetadata = Nothing+ , v1StorageClassMountOptions = Nothing+ , v1StorageClassParameters = Nothing+ , v1StorageClassProvisioner+ , v1StorageClassReclaimPolicy = Nothing+ , v1StorageClassVolumeBindingMode = Nothing+ }++-- ** V1StorageClassList+-- | V1StorageClassList+-- StorageClassList is a collection of storage classes.+data V1StorageClassList = V1StorageClassList+ { v1StorageClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1StorageClassListItems :: !([V1StorageClass]) -- ^ /Required/ "items" - items is the list of StorageClasses+ , v1StorageClassListKind :: !(Maybe Text) -- ^ "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+ , v1StorageClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StorageClassList+instance A.FromJSON V1StorageClassList where+ parseJSON = A.withObject "V1StorageClassList" $ \o ->+ V1StorageClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1StorageClassList+instance A.ToJSON V1StorageClassList where+ toJSON V1StorageClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1StorageClassListApiVersion+ , "items" .= v1StorageClassListItems+ , "kind" .= v1StorageClassListKind+ , "metadata" .= v1StorageClassListMetadata+ ]+++-- | Construct a value of type 'V1StorageClassList' (by applying it's required fields, if any)+mkV1StorageClassList+ :: [V1StorageClass] -- ^ 'v1StorageClassListItems': items is the list of StorageClasses+ -> V1StorageClassList+mkV1StorageClassList v1StorageClassListItems =+ V1StorageClassList+ { v1StorageClassListApiVersion = Nothing+ , v1StorageClassListItems+ , v1StorageClassListKind = Nothing+ , v1StorageClassListMetadata = Nothing+ }++-- ** V1StorageOSPersistentVolumeSource+-- | V1StorageOSPersistentVolumeSource+-- Represents a StorageOS persistent volume resource.+data V1StorageOSPersistentVolumeSource = V1StorageOSPersistentVolumeSource+ { v1StorageOSPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.+ , v1StorageOSPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1StorageOSPersistentVolumeSourceSecretRef :: !(Maybe V1ObjectReference) -- ^ "secretRef"+ , v1StorageOSPersistentVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.+ , v1StorageOSPersistentVolumeSourceVolumeNamespace :: !(Maybe Text) -- ^ "volumeNamespace" - volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StorageOSPersistentVolumeSource+instance A.FromJSON V1StorageOSPersistentVolumeSource where+ parseJSON = A.withObject "V1StorageOSPersistentVolumeSource" $ \o ->+ V1StorageOSPersistentVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")+ <*> (o .:? "volumeName")+ <*> (o .:? "volumeNamespace")++-- | ToJSON V1StorageOSPersistentVolumeSource+instance A.ToJSON V1StorageOSPersistentVolumeSource where+ toJSON V1StorageOSPersistentVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1StorageOSPersistentVolumeSourceFsType+ , "readOnly" .= v1StorageOSPersistentVolumeSourceReadOnly+ , "secretRef" .= v1StorageOSPersistentVolumeSourceSecretRef+ , "volumeName" .= v1StorageOSPersistentVolumeSourceVolumeName+ , "volumeNamespace" .= v1StorageOSPersistentVolumeSourceVolumeNamespace+ ]+++-- | Construct a value of type 'V1StorageOSPersistentVolumeSource' (by applying it's required fields, if any)+mkV1StorageOSPersistentVolumeSource+ :: V1StorageOSPersistentVolumeSource+mkV1StorageOSPersistentVolumeSource =+ V1StorageOSPersistentVolumeSource+ { v1StorageOSPersistentVolumeSourceFsType = Nothing+ , v1StorageOSPersistentVolumeSourceReadOnly = Nothing+ , v1StorageOSPersistentVolumeSourceSecretRef = Nothing+ , v1StorageOSPersistentVolumeSourceVolumeName = Nothing+ , v1StorageOSPersistentVolumeSourceVolumeNamespace = Nothing+ }++-- ** V1StorageOSVolumeSource+-- | V1StorageOSVolumeSource+-- Represents a StorageOS persistent volume resource.+data V1StorageOSVolumeSource = V1StorageOSVolumeSource+ { v1StorageOSVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.+ , v1StorageOSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.+ , v1StorageOSVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"+ , v1StorageOSVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.+ , v1StorageOSVolumeSourceVolumeNamespace :: !(Maybe Text) -- ^ "volumeNamespace" - volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1StorageOSVolumeSource+instance A.FromJSON V1StorageOSVolumeSource where+ parseJSON = A.withObject "V1StorageOSVolumeSource" $ \o ->+ V1StorageOSVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "readOnly")+ <*> (o .:? "secretRef")+ <*> (o .:? "volumeName")+ <*> (o .:? "volumeNamespace")++-- | ToJSON V1StorageOSVolumeSource+instance A.ToJSON V1StorageOSVolumeSource where+ toJSON V1StorageOSVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1StorageOSVolumeSourceFsType+ , "readOnly" .= v1StorageOSVolumeSourceReadOnly+ , "secretRef" .= v1StorageOSVolumeSourceSecretRef+ , "volumeName" .= v1StorageOSVolumeSourceVolumeName+ , "volumeNamespace" .= v1StorageOSVolumeSourceVolumeNamespace+ ]+++-- | Construct a value of type 'V1StorageOSVolumeSource' (by applying it's required fields, if any)+mkV1StorageOSVolumeSource+ :: V1StorageOSVolumeSource+mkV1StorageOSVolumeSource =+ V1StorageOSVolumeSource+ { v1StorageOSVolumeSourceFsType = Nothing+ , v1StorageOSVolumeSourceReadOnly = Nothing+ , v1StorageOSVolumeSourceSecretRef = Nothing+ , v1StorageOSVolumeSourceVolumeName = Nothing+ , v1StorageOSVolumeSourceVolumeNamespace = Nothing+ }++-- ** V1SubjectAccessReview+-- | V1SubjectAccessReview+-- SubjectAccessReview checks whether or not a user or group can perform an action.+data V1SubjectAccessReview = V1SubjectAccessReview+ { v1SubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "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+ , v1SubjectAccessReviewKind :: !(Maybe Text) -- ^ "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+ , v1SubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1SubjectAccessReviewSpec :: !(V1SubjectAccessReviewSpec) -- ^ /Required/ "spec"+ , v1SubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SubjectAccessReview+instance A.FromJSON V1SubjectAccessReview where+ parseJSON = A.withObject "V1SubjectAccessReview" $ \o ->+ V1SubjectAccessReview+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1SubjectAccessReview+instance A.ToJSON V1SubjectAccessReview where+ toJSON V1SubjectAccessReview {..} =+ _omitNulls+ [ "apiVersion" .= v1SubjectAccessReviewApiVersion+ , "kind" .= v1SubjectAccessReviewKind+ , "metadata" .= v1SubjectAccessReviewMetadata+ , "spec" .= v1SubjectAccessReviewSpec+ , "status" .= v1SubjectAccessReviewStatus+ ]+++-- | Construct a value of type 'V1SubjectAccessReview' (by applying it's required fields, if any)+mkV1SubjectAccessReview+ :: V1SubjectAccessReviewSpec -- ^ 'v1SubjectAccessReviewSpec' + -> V1SubjectAccessReview+mkV1SubjectAccessReview v1SubjectAccessReviewSpec =+ V1SubjectAccessReview+ { v1SubjectAccessReviewApiVersion = Nothing+ , v1SubjectAccessReviewKind = Nothing+ , v1SubjectAccessReviewMetadata = Nothing+ , v1SubjectAccessReviewSpec+ , v1SubjectAccessReviewStatus = Nothing+ }++-- ** V1SubjectAccessReviewSpec+-- | V1SubjectAccessReviewSpec+-- SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set+data V1SubjectAccessReviewSpec = V1SubjectAccessReviewSpec+ { v1SubjectAccessReviewSpecExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.+ , v1SubjectAccessReviewSpecGroups :: !(Maybe [Text]) -- ^ "groups" - Groups is the groups you're testing for.+ , v1SubjectAccessReviewSpecNonResourceAttributes :: !(Maybe V1NonResourceAttributes) -- ^ "nonResourceAttributes"+ , v1SubjectAccessReviewSpecResourceAttributes :: !(Maybe V1ResourceAttributes) -- ^ "resourceAttributes"+ , v1SubjectAccessReviewSpecUid :: !(Maybe Text) -- ^ "uid" - UID information about the requesting user.+ , v1SubjectAccessReviewSpecUser :: !(Maybe Text) -- ^ "user" - User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SubjectAccessReviewSpec+instance A.FromJSON V1SubjectAccessReviewSpec where+ parseJSON = A.withObject "V1SubjectAccessReviewSpec" $ \o ->+ V1SubjectAccessReviewSpec+ <$> (o .:? "extra")+ <*> (o .:? "groups")+ <*> (o .:? "nonResourceAttributes")+ <*> (o .:? "resourceAttributes")+ <*> (o .:? "uid")+ <*> (o .:? "user")++-- | ToJSON V1SubjectAccessReviewSpec+instance A.ToJSON V1SubjectAccessReviewSpec where+ toJSON V1SubjectAccessReviewSpec {..} =+ _omitNulls+ [ "extra" .= v1SubjectAccessReviewSpecExtra+ , "groups" .= v1SubjectAccessReviewSpecGroups+ , "nonResourceAttributes" .= v1SubjectAccessReviewSpecNonResourceAttributes+ , "resourceAttributes" .= v1SubjectAccessReviewSpecResourceAttributes+ , "uid" .= v1SubjectAccessReviewSpecUid+ , "user" .= v1SubjectAccessReviewSpecUser+ ]+++-- | Construct a value of type 'V1SubjectAccessReviewSpec' (by applying it's required fields, if any)+mkV1SubjectAccessReviewSpec+ :: V1SubjectAccessReviewSpec+mkV1SubjectAccessReviewSpec =+ V1SubjectAccessReviewSpec+ { v1SubjectAccessReviewSpecExtra = Nothing+ , v1SubjectAccessReviewSpecGroups = Nothing+ , v1SubjectAccessReviewSpecNonResourceAttributes = Nothing+ , v1SubjectAccessReviewSpecResourceAttributes = Nothing+ , v1SubjectAccessReviewSpecUid = Nothing+ , v1SubjectAccessReviewSpecUser = Nothing+ }++-- ** V1SubjectAccessReviewStatus+-- | V1SubjectAccessReviewStatus+-- SubjectAccessReviewStatus+data V1SubjectAccessReviewStatus = V1SubjectAccessReviewStatus+ { v1SubjectAccessReviewStatusAllowed :: !(Bool) -- ^ /Required/ "allowed" - Allowed is required. True if the action would be allowed, false otherwise.+ , v1SubjectAccessReviewStatusDenied :: !(Maybe Bool) -- ^ "denied" - Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.+ , v1SubjectAccessReviewStatusEvaluationError :: !(Maybe Text) -- ^ "evaluationError" - EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.+ , v1SubjectAccessReviewStatusReason :: !(Maybe Text) -- ^ "reason" - Reason is optional. It indicates why a request was allowed or denied.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SubjectAccessReviewStatus+instance A.FromJSON V1SubjectAccessReviewStatus where+ parseJSON = A.withObject "V1SubjectAccessReviewStatus" $ \o ->+ V1SubjectAccessReviewStatus+ <$> (o .: "allowed")+ <*> (o .:? "denied")+ <*> (o .:? "evaluationError")+ <*> (o .:? "reason")++-- | ToJSON V1SubjectAccessReviewStatus+instance A.ToJSON V1SubjectAccessReviewStatus where+ toJSON V1SubjectAccessReviewStatus {..} =+ _omitNulls+ [ "allowed" .= v1SubjectAccessReviewStatusAllowed+ , "denied" .= v1SubjectAccessReviewStatusDenied+ , "evaluationError" .= v1SubjectAccessReviewStatusEvaluationError+ , "reason" .= v1SubjectAccessReviewStatusReason+ ]+++-- | Construct a value of type 'V1SubjectAccessReviewStatus' (by applying it's required fields, if any)+mkV1SubjectAccessReviewStatus+ :: Bool -- ^ 'v1SubjectAccessReviewStatusAllowed': Allowed is required. True if the action would be allowed, false otherwise.+ -> V1SubjectAccessReviewStatus+mkV1SubjectAccessReviewStatus v1SubjectAccessReviewStatusAllowed =+ V1SubjectAccessReviewStatus+ { v1SubjectAccessReviewStatusAllowed+ , v1SubjectAccessReviewStatusDenied = Nothing+ , v1SubjectAccessReviewStatusEvaluationError = Nothing+ , v1SubjectAccessReviewStatusReason = Nothing+ }++-- ** V1SubjectRulesReviewStatus+-- | V1SubjectRulesReviewStatus+-- SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.+data V1SubjectRulesReviewStatus = V1SubjectRulesReviewStatus+ { v1SubjectRulesReviewStatusEvaluationError :: !(Maybe Text) -- ^ "evaluationError" - EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.+ , v1SubjectRulesReviewStatusIncomplete :: !(Bool) -- ^ /Required/ "incomplete" - Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.+ , v1SubjectRulesReviewStatusNonResourceRules :: !([V1NonResourceRule]) -- ^ /Required/ "nonResourceRules" - NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.+ , v1SubjectRulesReviewStatusResourceRules :: !([V1ResourceRule]) -- ^ /Required/ "resourceRules" - ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SubjectRulesReviewStatus+instance A.FromJSON V1SubjectRulesReviewStatus where+ parseJSON = A.withObject "V1SubjectRulesReviewStatus" $ \o ->+ V1SubjectRulesReviewStatus+ <$> (o .:? "evaluationError")+ <*> (o .: "incomplete")+ <*> (o .: "nonResourceRules")+ <*> (o .: "resourceRules")++-- | ToJSON V1SubjectRulesReviewStatus+instance A.ToJSON V1SubjectRulesReviewStatus where+ toJSON V1SubjectRulesReviewStatus {..} =+ _omitNulls+ [ "evaluationError" .= v1SubjectRulesReviewStatusEvaluationError+ , "incomplete" .= v1SubjectRulesReviewStatusIncomplete+ , "nonResourceRules" .= v1SubjectRulesReviewStatusNonResourceRules+ , "resourceRules" .= v1SubjectRulesReviewStatusResourceRules+ ]+++-- | Construct a value of type 'V1SubjectRulesReviewStatus' (by applying it's required fields, if any)+mkV1SubjectRulesReviewStatus+ :: Bool -- ^ 'v1SubjectRulesReviewStatusIncomplete': Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.+ -> [V1NonResourceRule] -- ^ 'v1SubjectRulesReviewStatusNonResourceRules': NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.+ -> [V1ResourceRule] -- ^ 'v1SubjectRulesReviewStatusResourceRules': ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.+ -> V1SubjectRulesReviewStatus+mkV1SubjectRulesReviewStatus v1SubjectRulesReviewStatusIncomplete v1SubjectRulesReviewStatusNonResourceRules v1SubjectRulesReviewStatusResourceRules =+ V1SubjectRulesReviewStatus+ { v1SubjectRulesReviewStatusEvaluationError = Nothing+ , v1SubjectRulesReviewStatusIncomplete+ , v1SubjectRulesReviewStatusNonResourceRules+ , v1SubjectRulesReviewStatusResourceRules+ }++-- ** V1SuccessPolicy+-- | V1SuccessPolicy+-- SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.+data V1SuccessPolicy = V1SuccessPolicy+ { v1SuccessPolicyRules :: !([V1SuccessPolicyRule]) -- ^ /Required/ "rules" - rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \"SuccessCriteriaMet\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \"Complete\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SuccessPolicy+instance A.FromJSON V1SuccessPolicy where+ parseJSON = A.withObject "V1SuccessPolicy" $ \o ->+ V1SuccessPolicy+ <$> (o .: "rules")++-- | ToJSON V1SuccessPolicy+instance A.ToJSON V1SuccessPolicy where+ toJSON V1SuccessPolicy {..} =+ _omitNulls+ [ "rules" .= v1SuccessPolicyRules+ ]+++-- | Construct a value of type 'V1SuccessPolicy' (by applying it's required fields, if any)+mkV1SuccessPolicy+ :: [V1SuccessPolicyRule] -- ^ 'v1SuccessPolicyRules': rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \"SuccessCriteriaMet\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \"Complete\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed.+ -> V1SuccessPolicy+mkV1SuccessPolicy v1SuccessPolicyRules =+ V1SuccessPolicy+ { v1SuccessPolicyRules+ }++-- ** V1SuccessPolicyRule+-- | V1SuccessPolicyRule+-- SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the \"succeededIndexes\" or \"succeededCount\" specified.+data V1SuccessPolicyRule = V1SuccessPolicyRule+ { v1SuccessPolicyRuleSucceededCount :: !(Maybe Int) -- ^ "succeededCount" - succeededCount specifies the minimal required size of the actual set of the succeeded indexes for the Job. When succeededCount is used along with succeededIndexes, the check is constrained only to the set of indexes specified by succeededIndexes. For example, given that succeededIndexes is \"1-4\", succeededCount is \"3\", and completed indexes are \"1\", \"3\", and \"5\", the Job isn't declared as succeeded because only \"1\" and \"3\" indexes are considered in that rules. When this field is null, this doesn't default to any value and is never evaluated at any time. When specified it needs to be a positive integer.+ , v1SuccessPolicyRuleSucceededIndexes :: !(Maybe Text) -- ^ "succeededIndexes" - succeededIndexes specifies the set of indexes which need to be contained in the actual set of the succeeded indexes for the Job. The list of indexes must be within 0 to \".spec.completions-1\" and must not contain duplicates. At least one element is required. The indexes are represented as intervals separated by commas. The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen. The number are listed in represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". When this field is null, this field doesn't default to any value and is never evaluated at any time.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1SuccessPolicyRule+instance A.FromJSON V1SuccessPolicyRule where+ parseJSON = A.withObject "V1SuccessPolicyRule" $ \o ->+ V1SuccessPolicyRule+ <$> (o .:? "succeededCount")+ <*> (o .:? "succeededIndexes")++-- | ToJSON V1SuccessPolicyRule+instance A.ToJSON V1SuccessPolicyRule where+ toJSON V1SuccessPolicyRule {..} =+ _omitNulls+ [ "succeededCount" .= v1SuccessPolicyRuleSucceededCount+ , "succeededIndexes" .= v1SuccessPolicyRuleSucceededIndexes+ ]+++-- | Construct a value of type 'V1SuccessPolicyRule' (by applying it's required fields, if any)+mkV1SuccessPolicyRule+ :: V1SuccessPolicyRule+mkV1SuccessPolicyRule =+ V1SuccessPolicyRule+ { v1SuccessPolicyRuleSucceededCount = Nothing+ , v1SuccessPolicyRuleSucceededIndexes = Nothing+ }++-- ** V1Sysctl+-- | V1Sysctl+-- Sysctl defines a kernel parameter to be set+data V1Sysctl = V1Sysctl+ { v1SysctlName :: !(Text) -- ^ /Required/ "name" - Name of a property to set+ , v1SysctlValue :: !(Text) -- ^ /Required/ "value" - Value of a property to set+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Sysctl+instance A.FromJSON V1Sysctl where+ parseJSON = A.withObject "V1Sysctl" $ \o ->+ V1Sysctl+ <$> (o .: "name")+ <*> (o .: "value")++-- | ToJSON V1Sysctl+instance A.ToJSON V1Sysctl where+ toJSON V1Sysctl {..} =+ _omitNulls+ [ "name" .= v1SysctlName+ , "value" .= v1SysctlValue+ ]+++-- | Construct a value of type 'V1Sysctl' (by applying it's required fields, if any)+mkV1Sysctl+ :: Text -- ^ 'v1SysctlName': Name of a property to set+ -> Text -- ^ 'v1SysctlValue': Value of a property to set+ -> V1Sysctl+mkV1Sysctl v1SysctlName v1SysctlValue =+ V1Sysctl+ { v1SysctlName+ , v1SysctlValue+ }++-- ** V1TCPSocketAction+-- | V1TCPSocketAction+-- TCPSocketAction describes an action based on opening a socket+data V1TCPSocketAction = V1TCPSocketAction+ { v1TCPSocketActionHost :: !(Maybe Text) -- ^ "host" - Optional: Host name to connect to, defaults to the pod IP.+ , v1TCPSocketActionPort :: !(IntOrString) -- ^ /Required/ "port"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TCPSocketAction+instance A.FromJSON V1TCPSocketAction where+ parseJSON = A.withObject "V1TCPSocketAction" $ \o ->+ V1TCPSocketAction+ <$> (o .:? "host")+ <*> (o .: "port")++-- | ToJSON V1TCPSocketAction+instance A.ToJSON V1TCPSocketAction where+ toJSON V1TCPSocketAction {..} =+ _omitNulls+ [ "host" .= v1TCPSocketActionHost+ , "port" .= v1TCPSocketActionPort+ ]+++-- | Construct a value of type 'V1TCPSocketAction' (by applying it's required fields, if any)+mkV1TCPSocketAction+ :: IntOrString -- ^ 'v1TCPSocketActionPort' + -> V1TCPSocketAction+mkV1TCPSocketAction v1TCPSocketActionPort =+ V1TCPSocketAction+ { v1TCPSocketActionHost = Nothing+ , v1TCPSocketActionPort+ }++-- ** V1Taint+-- | V1Taint+-- The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.+data V1Taint = V1Taint+ { v1TaintEffect :: !(Text) -- ^ /Required/ "effect" - Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.+ , v1TaintKey :: !(Text) -- ^ /Required/ "key" - Required. The taint key to be applied to a node.+ , v1TaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added.+ , v1TaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Taint+instance A.FromJSON V1Taint where+ parseJSON = A.withObject "V1Taint" $ \o ->+ V1Taint+ <$> (o .: "effect")+ <*> (o .: "key")+ <*> (o .:? "timeAdded")+ <*> (o .:? "value")++-- | ToJSON V1Taint+instance A.ToJSON V1Taint where+ toJSON V1Taint {..} =+ _omitNulls+ [ "effect" .= v1TaintEffect+ , "key" .= v1TaintKey+ , "timeAdded" .= v1TaintTimeAdded+ , "value" .= v1TaintValue+ ]+++-- | Construct a value of type 'V1Taint' (by applying it's required fields, if any)+mkV1Taint+ :: Text -- ^ 'v1TaintEffect': Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.+ -> Text -- ^ 'v1TaintKey': Required. The taint key to be applied to a node.+ -> V1Taint+mkV1Taint v1TaintEffect v1TaintKey =+ V1Taint+ { v1TaintEffect+ , v1TaintKey+ , v1TaintTimeAdded = Nothing+ , v1TaintValue = Nothing+ }++-- ** V1TokenRequestSpec+-- | V1TokenRequestSpec+-- TokenRequestSpec contains client provided parameters of a token request.+data V1TokenRequestSpec = V1TokenRequestSpec+ { v1TokenRequestSpecAudiences :: !([Text]) -- ^ /Required/ "audiences" - Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.+ , v1TokenRequestSpecBoundObjectRef :: !(Maybe V1BoundObjectReference) -- ^ "boundObjectRef"+ , v1TokenRequestSpecExpirationSeconds :: !(Maybe Integer) -- ^ "expirationSeconds" - ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TokenRequestSpec+instance A.FromJSON V1TokenRequestSpec where+ parseJSON = A.withObject "V1TokenRequestSpec" $ \o ->+ V1TokenRequestSpec+ <$> (o .: "audiences")+ <*> (o .:? "boundObjectRef")+ <*> (o .:? "expirationSeconds")++-- | ToJSON V1TokenRequestSpec+instance A.ToJSON V1TokenRequestSpec where+ toJSON V1TokenRequestSpec {..} =+ _omitNulls+ [ "audiences" .= v1TokenRequestSpecAudiences+ , "boundObjectRef" .= v1TokenRequestSpecBoundObjectRef+ , "expirationSeconds" .= v1TokenRequestSpecExpirationSeconds+ ]+++-- | Construct a value of type 'V1TokenRequestSpec' (by applying it's required fields, if any)+mkV1TokenRequestSpec+ :: [Text] -- ^ 'v1TokenRequestSpecAudiences': Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.+ -> V1TokenRequestSpec+mkV1TokenRequestSpec v1TokenRequestSpecAudiences =+ V1TokenRequestSpec+ { v1TokenRequestSpecAudiences+ , v1TokenRequestSpecBoundObjectRef = Nothing+ , v1TokenRequestSpecExpirationSeconds = Nothing+ }++-- ** V1TokenRequestStatus+-- | V1TokenRequestStatus+-- TokenRequestStatus is the result of a token request.+data V1TokenRequestStatus = V1TokenRequestStatus+ { v1TokenRequestStatusExpirationTimestamp :: !(DateTime) -- ^ /Required/ "expirationTimestamp" - ExpirationTimestamp is the time of expiration of the returned token.+ , v1TokenRequestStatusToken :: !(Text) -- ^ /Required/ "token" - Token is the opaque bearer token.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TokenRequestStatus+instance A.FromJSON V1TokenRequestStatus where+ parseJSON = A.withObject "V1TokenRequestStatus" $ \o ->+ V1TokenRequestStatus+ <$> (o .: "expirationTimestamp")+ <*> (o .: "token")++-- | ToJSON V1TokenRequestStatus+instance A.ToJSON V1TokenRequestStatus where+ toJSON V1TokenRequestStatus {..} =+ _omitNulls+ [ "expirationTimestamp" .= v1TokenRequestStatusExpirationTimestamp+ , "token" .= v1TokenRequestStatusToken+ ]+++-- | Construct a value of type 'V1TokenRequestStatus' (by applying it's required fields, if any)+mkV1TokenRequestStatus+ :: DateTime -- ^ 'v1TokenRequestStatusExpirationTimestamp': ExpirationTimestamp is the time of expiration of the returned token.+ -> Text -- ^ 'v1TokenRequestStatusToken': Token is the opaque bearer token.+ -> V1TokenRequestStatus+mkV1TokenRequestStatus v1TokenRequestStatusExpirationTimestamp v1TokenRequestStatusToken =+ V1TokenRequestStatus+ { v1TokenRequestStatusExpirationTimestamp+ , v1TokenRequestStatusToken+ }++-- ** V1TokenReview+-- | V1TokenReview+-- TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.+data V1TokenReview = V1TokenReview+ { v1TokenReviewApiVersion :: !(Maybe Text) -- ^ "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+ , v1TokenReviewKind :: !(Maybe Text) -- ^ "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+ , v1TokenReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1TokenReviewSpec :: !(V1TokenReviewSpec) -- ^ /Required/ "spec"+ , v1TokenReviewStatus :: !(Maybe V1TokenReviewStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TokenReview+instance A.FromJSON V1TokenReview where+ parseJSON = A.withObject "V1TokenReview" $ \o ->+ V1TokenReview+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1TokenReview+instance A.ToJSON V1TokenReview where+ toJSON V1TokenReview {..} =+ _omitNulls+ [ "apiVersion" .= v1TokenReviewApiVersion+ , "kind" .= v1TokenReviewKind+ , "metadata" .= v1TokenReviewMetadata+ , "spec" .= v1TokenReviewSpec+ , "status" .= v1TokenReviewStatus+ ]+++-- | Construct a value of type 'V1TokenReview' (by applying it's required fields, if any)+mkV1TokenReview+ :: V1TokenReviewSpec -- ^ 'v1TokenReviewSpec' + -> V1TokenReview+mkV1TokenReview v1TokenReviewSpec =+ V1TokenReview+ { v1TokenReviewApiVersion = Nothing+ , v1TokenReviewKind = Nothing+ , v1TokenReviewMetadata = Nothing+ , v1TokenReviewSpec+ , v1TokenReviewStatus = Nothing+ }++-- ** V1TokenReviewSpec+-- | V1TokenReviewSpec+-- TokenReviewSpec is a description of the token authentication request.+data V1TokenReviewSpec = V1TokenReviewSpec+ { v1TokenReviewSpecAudiences :: !(Maybe [Text]) -- ^ "audiences" - Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.+ , v1TokenReviewSpecToken :: !(Maybe Text) -- ^ "token" - Token is the opaque bearer token.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TokenReviewSpec+instance A.FromJSON V1TokenReviewSpec where+ parseJSON = A.withObject "V1TokenReviewSpec" $ \o ->+ V1TokenReviewSpec+ <$> (o .:? "audiences")+ <*> (o .:? "token")++-- | ToJSON V1TokenReviewSpec+instance A.ToJSON V1TokenReviewSpec where+ toJSON V1TokenReviewSpec {..} =+ _omitNulls+ [ "audiences" .= v1TokenReviewSpecAudiences+ , "token" .= v1TokenReviewSpecToken+ ]+++-- | Construct a value of type 'V1TokenReviewSpec' (by applying it's required fields, if any)+mkV1TokenReviewSpec+ :: V1TokenReviewSpec+mkV1TokenReviewSpec =+ V1TokenReviewSpec+ { v1TokenReviewSpecAudiences = Nothing+ , v1TokenReviewSpecToken = Nothing+ }++-- ** V1TokenReviewStatus+-- | V1TokenReviewStatus+-- TokenReviewStatus is the result of the token authentication request.+data V1TokenReviewStatus = V1TokenReviewStatus+ { v1TokenReviewStatusAudiences :: !(Maybe [Text]) -- ^ "audiences" - Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.+ , v1TokenReviewStatusAuthenticated :: !(Maybe Bool) -- ^ "authenticated" - Authenticated indicates that the token was associated with a known user.+ , v1TokenReviewStatusError :: !(Maybe Text) -- ^ "error" - Error indicates that the token couldn't be checked+ , v1TokenReviewStatusUser :: !(Maybe V1UserInfo) -- ^ "user"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TokenReviewStatus+instance A.FromJSON V1TokenReviewStatus where+ parseJSON = A.withObject "V1TokenReviewStatus" $ \o ->+ V1TokenReviewStatus+ <$> (o .:? "audiences")+ <*> (o .:? "authenticated")+ <*> (o .:? "error")+ <*> (o .:? "user")++-- | ToJSON V1TokenReviewStatus+instance A.ToJSON V1TokenReviewStatus where+ toJSON V1TokenReviewStatus {..} =+ _omitNulls+ [ "audiences" .= v1TokenReviewStatusAudiences+ , "authenticated" .= v1TokenReviewStatusAuthenticated+ , "error" .= v1TokenReviewStatusError+ , "user" .= v1TokenReviewStatusUser+ ]+++-- | Construct a value of type 'V1TokenReviewStatus' (by applying it's required fields, if any)+mkV1TokenReviewStatus+ :: V1TokenReviewStatus+mkV1TokenReviewStatus =+ V1TokenReviewStatus+ { v1TokenReviewStatusAudiences = Nothing+ , v1TokenReviewStatusAuthenticated = Nothing+ , v1TokenReviewStatusError = Nothing+ , v1TokenReviewStatusUser = Nothing+ }++-- ** V1Toleration+-- | V1Toleration+-- The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.+data V1Toleration = V1Toleration+ { v1TolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.+ , v1TolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.+ , v1TolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).+ , v1TolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.+ , v1TolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Toleration+instance A.FromJSON V1Toleration where+ parseJSON = A.withObject "V1Toleration" $ \o ->+ V1Toleration+ <$> (o .:? "effect")+ <*> (o .:? "key")+ <*> (o .:? "operator")+ <*> (o .:? "tolerationSeconds")+ <*> (o .:? "value")++-- | ToJSON V1Toleration+instance A.ToJSON V1Toleration where+ toJSON V1Toleration {..} =+ _omitNulls+ [ "effect" .= v1TolerationEffect+ , "key" .= v1TolerationKey+ , "operator" .= v1TolerationOperator+ , "tolerationSeconds" .= v1TolerationTolerationSeconds+ , "value" .= v1TolerationValue+ ]+++-- | Construct a value of type 'V1Toleration' (by applying it's required fields, if any)+mkV1Toleration+ :: V1Toleration+mkV1Toleration =+ V1Toleration+ { v1TolerationEffect = Nothing+ , v1TolerationKey = Nothing+ , v1TolerationOperator = Nothing+ , v1TolerationTolerationSeconds = Nothing+ , v1TolerationValue = Nothing+ }++-- ** V1TopologySelectorLabelRequirement+-- | V1TopologySelectorLabelRequirement+-- A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.+data V1TopologySelectorLabelRequirement = V1TopologySelectorLabelRequirement+ { v1TopologySelectorLabelRequirementKey :: !(Text) -- ^ /Required/ "key" - The label key that the selector applies to.+ , v1TopologySelectorLabelRequirementValues :: !([Text]) -- ^ /Required/ "values" - An array of string values. One value must match the label to be selected. Each entry in Values is ORed.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TopologySelectorLabelRequirement+instance A.FromJSON V1TopologySelectorLabelRequirement where+ parseJSON = A.withObject "V1TopologySelectorLabelRequirement" $ \o ->+ V1TopologySelectorLabelRequirement+ <$> (o .: "key")+ <*> (o .: "values")++-- | ToJSON V1TopologySelectorLabelRequirement+instance A.ToJSON V1TopologySelectorLabelRequirement where+ toJSON V1TopologySelectorLabelRequirement {..} =+ _omitNulls+ [ "key" .= v1TopologySelectorLabelRequirementKey+ , "values" .= v1TopologySelectorLabelRequirementValues+ ]+++-- | Construct a value of type 'V1TopologySelectorLabelRequirement' (by applying it's required fields, if any)+mkV1TopologySelectorLabelRequirement+ :: Text -- ^ 'v1TopologySelectorLabelRequirementKey': The label key that the selector applies to.+ -> [Text] -- ^ 'v1TopologySelectorLabelRequirementValues': An array of string values. One value must match the label to be selected. Each entry in Values is ORed.+ -> V1TopologySelectorLabelRequirement+mkV1TopologySelectorLabelRequirement v1TopologySelectorLabelRequirementKey v1TopologySelectorLabelRequirementValues =+ V1TopologySelectorLabelRequirement+ { v1TopologySelectorLabelRequirementKey+ , v1TopologySelectorLabelRequirementValues+ }++-- ** V1TopologySelectorTerm+-- | V1TopologySelectorTerm+-- A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.+data V1TopologySelectorTerm = V1TopologySelectorTerm+ { v1TopologySelectorTermMatchLabelExpressions :: !(Maybe [V1TopologySelectorLabelRequirement]) -- ^ "matchLabelExpressions" - A list of topology selector requirements by labels.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TopologySelectorTerm+instance A.FromJSON V1TopologySelectorTerm where+ parseJSON = A.withObject "V1TopologySelectorTerm" $ \o ->+ V1TopologySelectorTerm+ <$> (o .:? "matchLabelExpressions")++-- | ToJSON V1TopologySelectorTerm+instance A.ToJSON V1TopologySelectorTerm where+ toJSON V1TopologySelectorTerm {..} =+ _omitNulls+ [ "matchLabelExpressions" .= v1TopologySelectorTermMatchLabelExpressions+ ]+++-- | Construct a value of type 'V1TopologySelectorTerm' (by applying it's required fields, if any)+mkV1TopologySelectorTerm+ :: V1TopologySelectorTerm+mkV1TopologySelectorTerm =+ V1TopologySelectorTerm+ { v1TopologySelectorTermMatchLabelExpressions = Nothing+ }++-- ** V1TopologySpreadConstraint+-- | V1TopologySpreadConstraint+-- TopologySpreadConstraint specifies how to spread matching pods among the given topology.+data V1TopologySpreadConstraint = V1TopologySpreadConstraint+ { v1TopologySpreadConstraintLabelSelector :: !(Maybe V1LabelSelector) -- ^ "labelSelector"+ , v1TopologySpreadConstraintMatchLabelKeys :: !(Maybe [Text]) -- ^ "matchLabelKeys" - MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).+ , v1TopologySpreadConstraintMaxSkew :: !(Int) -- ^ /Required/ "maxSkew" - MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.+ , v1TopologySpreadConstraintMinDomains :: !(Maybe Int) -- ^ "minDomains" - MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.+ , v1TopologySpreadConstraintNodeAffinityPolicy :: !(Maybe Text) -- ^ "nodeAffinityPolicy" - NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy.+ , v1TopologySpreadConstraintNodeTaintsPolicy :: !(Maybe Text) -- ^ "nodeTaintsPolicy" - NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy.+ , v1TopologySpreadConstraintTopologyKey :: !(Text) -- ^ /Required/ "topologyKey" - TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field.+ , v1TopologySpreadConstraintWhenUnsatisfiable :: !(Text) -- ^ /Required/ "whenUnsatisfiable" - WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assignment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TopologySpreadConstraint+instance A.FromJSON V1TopologySpreadConstraint where+ parseJSON = A.withObject "V1TopologySpreadConstraint" $ \o ->+ V1TopologySpreadConstraint+ <$> (o .:? "labelSelector")+ <*> (o .:? "matchLabelKeys")+ <*> (o .: "maxSkew")+ <*> (o .:? "minDomains")+ <*> (o .:? "nodeAffinityPolicy")+ <*> (o .:? "nodeTaintsPolicy")+ <*> (o .: "topologyKey")+ <*> (o .: "whenUnsatisfiable")++-- | ToJSON V1TopologySpreadConstraint+instance A.ToJSON V1TopologySpreadConstraint where+ toJSON V1TopologySpreadConstraint {..} =+ _omitNulls+ [ "labelSelector" .= v1TopologySpreadConstraintLabelSelector+ , "matchLabelKeys" .= v1TopologySpreadConstraintMatchLabelKeys+ , "maxSkew" .= v1TopologySpreadConstraintMaxSkew+ , "minDomains" .= v1TopologySpreadConstraintMinDomains+ , "nodeAffinityPolicy" .= v1TopologySpreadConstraintNodeAffinityPolicy+ , "nodeTaintsPolicy" .= v1TopologySpreadConstraintNodeTaintsPolicy+ , "topologyKey" .= v1TopologySpreadConstraintTopologyKey+ , "whenUnsatisfiable" .= v1TopologySpreadConstraintWhenUnsatisfiable+ ]+++-- | Construct a value of type 'V1TopologySpreadConstraint' (by applying it's required fields, if any)+mkV1TopologySpreadConstraint+ :: Int -- ^ 'v1TopologySpreadConstraintMaxSkew': MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.+ -> Text -- ^ 'v1TopologySpreadConstraintTopologyKey': TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field.+ -> Text -- ^ 'v1TopologySpreadConstraintWhenUnsatisfiable': WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assignment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.+ -> V1TopologySpreadConstraint+mkV1TopologySpreadConstraint v1TopologySpreadConstraintMaxSkew v1TopologySpreadConstraintTopologyKey v1TopologySpreadConstraintWhenUnsatisfiable =+ V1TopologySpreadConstraint+ { v1TopologySpreadConstraintLabelSelector = Nothing+ , v1TopologySpreadConstraintMatchLabelKeys = Nothing+ , v1TopologySpreadConstraintMaxSkew+ , v1TopologySpreadConstraintMinDomains = Nothing+ , v1TopologySpreadConstraintNodeAffinityPolicy = Nothing+ , v1TopologySpreadConstraintNodeTaintsPolicy = Nothing+ , v1TopologySpreadConstraintTopologyKey+ , v1TopologySpreadConstraintWhenUnsatisfiable+ }++-- ** V1TypeChecking+-- | V1TypeChecking+-- TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy+data V1TypeChecking = V1TypeChecking+ { v1TypeCheckingExpressionWarnings :: !(Maybe [V1ExpressionWarning]) -- ^ "expressionWarnings" - The type checking warnings for each expression.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TypeChecking+instance A.FromJSON V1TypeChecking where+ parseJSON = A.withObject "V1TypeChecking" $ \o ->+ V1TypeChecking+ <$> (o .:? "expressionWarnings")++-- | ToJSON V1TypeChecking+instance A.ToJSON V1TypeChecking where+ toJSON V1TypeChecking {..} =+ _omitNulls+ [ "expressionWarnings" .= v1TypeCheckingExpressionWarnings+ ]+++-- | Construct a value of type 'V1TypeChecking' (by applying it's required fields, if any)+mkV1TypeChecking+ :: V1TypeChecking+mkV1TypeChecking =+ V1TypeChecking+ { v1TypeCheckingExpressionWarnings = Nothing+ }++-- ** V1TypedLocalObjectReference+-- | V1TypedLocalObjectReference+-- TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.+data V1TypedLocalObjectReference = V1TypedLocalObjectReference+ { v1TypedLocalObjectReferenceApiGroup :: !(Maybe Text) -- ^ "apiGroup" - 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.+ , v1TypedLocalObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced+ , v1TypedLocalObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TypedLocalObjectReference+instance A.FromJSON V1TypedLocalObjectReference where+ parseJSON = A.withObject "V1TypedLocalObjectReference" $ \o ->+ V1TypedLocalObjectReference+ <$> (o .:? "apiGroup")+ <*> (o .: "kind")+ <*> (o .: "name")++-- | ToJSON V1TypedLocalObjectReference+instance A.ToJSON V1TypedLocalObjectReference where+ toJSON V1TypedLocalObjectReference {..} =+ _omitNulls+ [ "apiGroup" .= v1TypedLocalObjectReferenceApiGroup+ , "kind" .= v1TypedLocalObjectReferenceKind+ , "name" .= v1TypedLocalObjectReferenceName+ ]+++-- | Construct a value of type 'V1TypedLocalObjectReference' (by applying it's required fields, if any)+mkV1TypedLocalObjectReference+ :: Text -- ^ 'v1TypedLocalObjectReferenceKind': Kind is the type of resource being referenced+ -> Text -- ^ 'v1TypedLocalObjectReferenceName': Name is the name of resource being referenced+ -> V1TypedLocalObjectReference+mkV1TypedLocalObjectReference v1TypedLocalObjectReferenceKind v1TypedLocalObjectReferenceName =+ V1TypedLocalObjectReference+ { v1TypedLocalObjectReferenceApiGroup = Nothing+ , v1TypedLocalObjectReferenceKind+ , v1TypedLocalObjectReferenceName+ }++-- ** V1TypedObjectReference+-- | V1TypedObjectReference+-- TypedObjectReference contains enough information to let you locate the typed referenced object+data V1TypedObjectReference = V1TypedObjectReference+ { v1TypedObjectReferenceApiGroup :: !(Maybe Text) -- ^ "apiGroup" - 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.+ , v1TypedObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced+ , v1TypedObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced+ , v1TypedObjectReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1TypedObjectReference+instance A.FromJSON V1TypedObjectReference where+ parseJSON = A.withObject "V1TypedObjectReference" $ \o ->+ V1TypedObjectReference+ <$> (o .:? "apiGroup")+ <*> (o .: "kind")+ <*> (o .: "name")+ <*> (o .:? "namespace")++-- | ToJSON V1TypedObjectReference+instance A.ToJSON V1TypedObjectReference where+ toJSON V1TypedObjectReference {..} =+ _omitNulls+ [ "apiGroup" .= v1TypedObjectReferenceApiGroup+ , "kind" .= v1TypedObjectReferenceKind+ , "name" .= v1TypedObjectReferenceName+ , "namespace" .= v1TypedObjectReferenceNamespace+ ]+++-- | Construct a value of type 'V1TypedObjectReference' (by applying it's required fields, if any)+mkV1TypedObjectReference+ :: Text -- ^ 'v1TypedObjectReferenceKind': Kind is the type of resource being referenced+ -> Text -- ^ 'v1TypedObjectReferenceName': Name is the name of resource being referenced+ -> V1TypedObjectReference+mkV1TypedObjectReference v1TypedObjectReferenceKind v1TypedObjectReferenceName =+ V1TypedObjectReference+ { v1TypedObjectReferenceApiGroup = Nothing+ , v1TypedObjectReferenceKind+ , v1TypedObjectReferenceName+ , v1TypedObjectReferenceNamespace = Nothing+ }++-- ** V1UncountedTerminatedPods+-- | V1UncountedTerminatedPods+-- UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.+data V1UncountedTerminatedPods = V1UncountedTerminatedPods+ { v1UncountedTerminatedPodsFailed :: !(Maybe [Text]) -- ^ "failed" - failed holds UIDs of failed Pods.+ , v1UncountedTerminatedPodsSucceeded :: !(Maybe [Text]) -- ^ "succeeded" - succeeded holds UIDs of succeeded Pods.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1UncountedTerminatedPods+instance A.FromJSON V1UncountedTerminatedPods where+ parseJSON = A.withObject "V1UncountedTerminatedPods" $ \o ->+ V1UncountedTerminatedPods+ <$> (o .:? "failed")+ <*> (o .:? "succeeded")++-- | ToJSON V1UncountedTerminatedPods+instance A.ToJSON V1UncountedTerminatedPods where+ toJSON V1UncountedTerminatedPods {..} =+ _omitNulls+ [ "failed" .= v1UncountedTerminatedPodsFailed+ , "succeeded" .= v1UncountedTerminatedPodsSucceeded+ ]+++-- | Construct a value of type 'V1UncountedTerminatedPods' (by applying it's required fields, if any)+mkV1UncountedTerminatedPods+ :: V1UncountedTerminatedPods+mkV1UncountedTerminatedPods =+ V1UncountedTerminatedPods+ { v1UncountedTerminatedPodsFailed = Nothing+ , v1UncountedTerminatedPodsSucceeded = Nothing+ }++-- ** V1UserInfo+-- | V1UserInfo+-- UserInfo holds the information about the user needed to implement the user.Info interface.+data V1UserInfo = V1UserInfo+ { v1UserInfoExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Any additional information provided by the authenticator.+ , v1UserInfoGroups :: !(Maybe [Text]) -- ^ "groups" - The names of groups this user is a part of.+ , v1UserInfoUid :: !(Maybe Text) -- ^ "uid" - A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.+ , v1UserInfoUsername :: !(Maybe Text) -- ^ "username" - The name that uniquely identifies this user among all active users.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1UserInfo+instance A.FromJSON V1UserInfo where+ parseJSON = A.withObject "V1UserInfo" $ \o ->+ V1UserInfo+ <$> (o .:? "extra")+ <*> (o .:? "groups")+ <*> (o .:? "uid")+ <*> (o .:? "username")++-- | ToJSON V1UserInfo+instance A.ToJSON V1UserInfo where+ toJSON V1UserInfo {..} =+ _omitNulls+ [ "extra" .= v1UserInfoExtra+ , "groups" .= v1UserInfoGroups+ , "uid" .= v1UserInfoUid+ , "username" .= v1UserInfoUsername+ ]+++-- | Construct a value of type 'V1UserInfo' (by applying it's required fields, if any)+mkV1UserInfo+ :: V1UserInfo+mkV1UserInfo =+ V1UserInfo+ { v1UserInfoExtra = Nothing+ , v1UserInfoGroups = Nothing+ , v1UserInfoUid = Nothing+ , v1UserInfoUsername = Nothing+ }++-- ** V1UserSubject+-- | V1UserSubject+-- UserSubject holds detailed information for user-kind subject.+data V1UserSubject = V1UserSubject+ { v1UserSubjectName :: !(Text) -- ^ /Required/ "name" - `name` is the username that matches, or \"*\" to match all usernames. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1UserSubject+instance A.FromJSON V1UserSubject where+ parseJSON = A.withObject "V1UserSubject" $ \o ->+ V1UserSubject+ <$> (o .: "name")++-- | ToJSON V1UserSubject+instance A.ToJSON V1UserSubject where+ toJSON V1UserSubject {..} =+ _omitNulls+ [ "name" .= v1UserSubjectName+ ]+++-- | Construct a value of type 'V1UserSubject' (by applying it's required fields, if any)+mkV1UserSubject+ :: Text -- ^ 'v1UserSubjectName': `name` is the username that matches, or \"*\" to match all usernames. Required.+ -> V1UserSubject+mkV1UserSubject v1UserSubjectName =+ V1UserSubject+ { v1UserSubjectName+ }++-- ** V1ValidatingAdmissionPolicy+-- | V1ValidatingAdmissionPolicy+-- ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.+data V1ValidatingAdmissionPolicy = V1ValidatingAdmissionPolicy+ { v1ValidatingAdmissionPolicyApiVersion :: !(Maybe Text) -- ^ "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+ , v1ValidatingAdmissionPolicyKind :: !(Maybe Text) -- ^ "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+ , v1ValidatingAdmissionPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ValidatingAdmissionPolicySpec :: !(Maybe V1ValidatingAdmissionPolicySpec) -- ^ "spec"+ , v1ValidatingAdmissionPolicyStatus :: !(Maybe V1ValidatingAdmissionPolicyStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingAdmissionPolicy+instance A.FromJSON V1ValidatingAdmissionPolicy where+ parseJSON = A.withObject "V1ValidatingAdmissionPolicy" $ \o ->+ V1ValidatingAdmissionPolicy+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1ValidatingAdmissionPolicy+instance A.ToJSON V1ValidatingAdmissionPolicy where+ toJSON V1ValidatingAdmissionPolicy {..} =+ _omitNulls+ [ "apiVersion" .= v1ValidatingAdmissionPolicyApiVersion+ , "kind" .= v1ValidatingAdmissionPolicyKind+ , "metadata" .= v1ValidatingAdmissionPolicyMetadata+ , "spec" .= v1ValidatingAdmissionPolicySpec+ , "status" .= v1ValidatingAdmissionPolicyStatus+ ]+++-- | Construct a value of type 'V1ValidatingAdmissionPolicy' (by applying it's required fields, if any)+mkV1ValidatingAdmissionPolicy+ :: V1ValidatingAdmissionPolicy+mkV1ValidatingAdmissionPolicy =+ V1ValidatingAdmissionPolicy+ { v1ValidatingAdmissionPolicyApiVersion = Nothing+ , v1ValidatingAdmissionPolicyKind = Nothing+ , v1ValidatingAdmissionPolicyMetadata = Nothing+ , v1ValidatingAdmissionPolicySpec = Nothing+ , v1ValidatingAdmissionPolicyStatus = Nothing+ }++-- ** V1ValidatingAdmissionPolicyBinding+-- | V1ValidatingAdmissionPolicyBinding+-- 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.+data V1ValidatingAdmissionPolicyBinding = V1ValidatingAdmissionPolicyBinding+ { v1ValidatingAdmissionPolicyBindingApiVersion :: !(Maybe Text) -- ^ "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+ , v1ValidatingAdmissionPolicyBindingKind :: !(Maybe Text) -- ^ "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+ , v1ValidatingAdmissionPolicyBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ValidatingAdmissionPolicyBindingSpec :: !(Maybe V1ValidatingAdmissionPolicyBindingSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingAdmissionPolicyBinding+instance A.FromJSON V1ValidatingAdmissionPolicyBinding where+ parseJSON = A.withObject "V1ValidatingAdmissionPolicyBinding" $ \o ->+ V1ValidatingAdmissionPolicyBinding+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1ValidatingAdmissionPolicyBinding+instance A.ToJSON V1ValidatingAdmissionPolicyBinding where+ toJSON V1ValidatingAdmissionPolicyBinding {..} =+ _omitNulls+ [ "apiVersion" .= v1ValidatingAdmissionPolicyBindingApiVersion+ , "kind" .= v1ValidatingAdmissionPolicyBindingKind+ , "metadata" .= v1ValidatingAdmissionPolicyBindingMetadata+ , "spec" .= v1ValidatingAdmissionPolicyBindingSpec+ ]+++-- | Construct a value of type 'V1ValidatingAdmissionPolicyBinding' (by applying it's required fields, if any)+mkV1ValidatingAdmissionPolicyBinding+ :: V1ValidatingAdmissionPolicyBinding+mkV1ValidatingAdmissionPolicyBinding =+ V1ValidatingAdmissionPolicyBinding+ { v1ValidatingAdmissionPolicyBindingApiVersion = Nothing+ , v1ValidatingAdmissionPolicyBindingKind = Nothing+ , v1ValidatingAdmissionPolicyBindingMetadata = Nothing+ , v1ValidatingAdmissionPolicyBindingSpec = Nothing+ }++-- ** V1ValidatingAdmissionPolicyBindingList+-- | V1ValidatingAdmissionPolicyBindingList+-- ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.+data V1ValidatingAdmissionPolicyBindingList = V1ValidatingAdmissionPolicyBindingList+ { v1ValidatingAdmissionPolicyBindingListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ValidatingAdmissionPolicyBindingListItems :: !([V1ValidatingAdmissionPolicyBinding]) -- ^ /Required/ "items" - List of PolicyBinding.+ , v1ValidatingAdmissionPolicyBindingListKind :: !(Maybe Text) -- ^ "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+ , v1ValidatingAdmissionPolicyBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingAdmissionPolicyBindingList+instance A.FromJSON V1ValidatingAdmissionPolicyBindingList where+ parseJSON = A.withObject "V1ValidatingAdmissionPolicyBindingList" $ \o ->+ V1ValidatingAdmissionPolicyBindingList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ValidatingAdmissionPolicyBindingList+instance A.ToJSON V1ValidatingAdmissionPolicyBindingList where+ toJSON V1ValidatingAdmissionPolicyBindingList {..} =+ _omitNulls+ [ "apiVersion" .= v1ValidatingAdmissionPolicyBindingListApiVersion+ , "items" .= v1ValidatingAdmissionPolicyBindingListItems+ , "kind" .= v1ValidatingAdmissionPolicyBindingListKind+ , "metadata" .= v1ValidatingAdmissionPolicyBindingListMetadata+ ]+++-- | Construct a value of type 'V1ValidatingAdmissionPolicyBindingList' (by applying it's required fields, if any)+mkV1ValidatingAdmissionPolicyBindingList+ :: [V1ValidatingAdmissionPolicyBinding] -- ^ 'v1ValidatingAdmissionPolicyBindingListItems': List of PolicyBinding.+ -> V1ValidatingAdmissionPolicyBindingList+mkV1ValidatingAdmissionPolicyBindingList v1ValidatingAdmissionPolicyBindingListItems =+ V1ValidatingAdmissionPolicyBindingList+ { v1ValidatingAdmissionPolicyBindingListApiVersion = Nothing+ , v1ValidatingAdmissionPolicyBindingListItems+ , v1ValidatingAdmissionPolicyBindingListKind = Nothing+ , v1ValidatingAdmissionPolicyBindingListMetadata = Nothing+ }++-- ** V1ValidatingAdmissionPolicyBindingSpec+-- | V1ValidatingAdmissionPolicyBindingSpec+-- ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.+data V1ValidatingAdmissionPolicyBindingSpec = V1ValidatingAdmissionPolicyBindingSpec+ { v1ValidatingAdmissionPolicyBindingSpecMatchResources :: !(Maybe V1MatchResources) -- ^ "matchResources"+ , v1ValidatingAdmissionPolicyBindingSpecParamRef :: !(Maybe V1ParamRef) -- ^ "paramRef"+ , v1ValidatingAdmissionPolicyBindingSpecPolicyName :: !(Maybe Text) -- ^ "policyName" - 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.+ , v1ValidatingAdmissionPolicyBindingSpecValidationActions :: !(Maybe [Text]) -- ^ "validationActions" - validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions. Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy. validationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action. The supported actions values are: \"Deny\" specifies that a validation failure results in a denied request. \"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\\\"]}]\"` Clients should expect to handle additional values by ignoring any values not recognized. \"Deny\" and \"Warn\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingAdmissionPolicyBindingSpec+instance A.FromJSON V1ValidatingAdmissionPolicyBindingSpec where+ parseJSON = A.withObject "V1ValidatingAdmissionPolicyBindingSpec" $ \o ->+ V1ValidatingAdmissionPolicyBindingSpec+ <$> (o .:? "matchResources")+ <*> (o .:? "paramRef")+ <*> (o .:? "policyName")+ <*> (o .:? "validationActions")++-- | ToJSON V1ValidatingAdmissionPolicyBindingSpec+instance A.ToJSON V1ValidatingAdmissionPolicyBindingSpec where+ toJSON V1ValidatingAdmissionPolicyBindingSpec {..} =+ _omitNulls+ [ "matchResources" .= v1ValidatingAdmissionPolicyBindingSpecMatchResources+ , "paramRef" .= v1ValidatingAdmissionPolicyBindingSpecParamRef+ , "policyName" .= v1ValidatingAdmissionPolicyBindingSpecPolicyName+ , "validationActions" .= v1ValidatingAdmissionPolicyBindingSpecValidationActions+ ]+++-- | Construct a value of type 'V1ValidatingAdmissionPolicyBindingSpec' (by applying it's required fields, if any)+mkV1ValidatingAdmissionPolicyBindingSpec+ :: V1ValidatingAdmissionPolicyBindingSpec+mkV1ValidatingAdmissionPolicyBindingSpec =+ V1ValidatingAdmissionPolicyBindingSpec+ { v1ValidatingAdmissionPolicyBindingSpecMatchResources = Nothing+ , v1ValidatingAdmissionPolicyBindingSpecParamRef = Nothing+ , v1ValidatingAdmissionPolicyBindingSpecPolicyName = Nothing+ , v1ValidatingAdmissionPolicyBindingSpecValidationActions = Nothing+ }++-- ** V1ValidatingAdmissionPolicyList+-- | V1ValidatingAdmissionPolicyList+-- ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.+data V1ValidatingAdmissionPolicyList = V1ValidatingAdmissionPolicyList+ { v1ValidatingAdmissionPolicyListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ValidatingAdmissionPolicyListItems :: !([V1ValidatingAdmissionPolicy]) -- ^ /Required/ "items" - List of ValidatingAdmissionPolicy.+ , v1ValidatingAdmissionPolicyListKind :: !(Maybe Text) -- ^ "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+ , v1ValidatingAdmissionPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingAdmissionPolicyList+instance A.FromJSON V1ValidatingAdmissionPolicyList where+ parseJSON = A.withObject "V1ValidatingAdmissionPolicyList" $ \o ->+ V1ValidatingAdmissionPolicyList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ValidatingAdmissionPolicyList+instance A.ToJSON V1ValidatingAdmissionPolicyList where+ toJSON V1ValidatingAdmissionPolicyList {..} =+ _omitNulls+ [ "apiVersion" .= v1ValidatingAdmissionPolicyListApiVersion+ , "items" .= v1ValidatingAdmissionPolicyListItems+ , "kind" .= v1ValidatingAdmissionPolicyListKind+ , "metadata" .= v1ValidatingAdmissionPolicyListMetadata+ ]+++-- | Construct a value of type 'V1ValidatingAdmissionPolicyList' (by applying it's required fields, if any)+mkV1ValidatingAdmissionPolicyList+ :: [V1ValidatingAdmissionPolicy] -- ^ 'v1ValidatingAdmissionPolicyListItems': List of ValidatingAdmissionPolicy.+ -> V1ValidatingAdmissionPolicyList+mkV1ValidatingAdmissionPolicyList v1ValidatingAdmissionPolicyListItems =+ V1ValidatingAdmissionPolicyList+ { v1ValidatingAdmissionPolicyListApiVersion = Nothing+ , v1ValidatingAdmissionPolicyListItems+ , v1ValidatingAdmissionPolicyListKind = Nothing+ , v1ValidatingAdmissionPolicyListMetadata = Nothing+ }++-- ** V1ValidatingAdmissionPolicySpec+-- | V1ValidatingAdmissionPolicySpec+-- ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.+data V1ValidatingAdmissionPolicySpec = V1ValidatingAdmissionPolicySpec+ { v1ValidatingAdmissionPolicySpecAuditAnnotations :: !(Maybe [V1AuditAnnotation]) -- ^ "auditAnnotations" - 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.+ , v1ValidatingAdmissionPolicySpecFailurePolicy :: !(Maybe Text) -- ^ "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.+ , v1ValidatingAdmissionPolicySpecMatchConditions :: !(Maybe [V1MatchCondition]) -- ^ "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 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. 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+ , v1ValidatingAdmissionPolicySpecMatchConstraints :: !(Maybe V1MatchResources) -- ^ "matchConstraints"+ , v1ValidatingAdmissionPolicySpecParamKind :: !(Maybe V1ParamKind) -- ^ "paramKind"+ , v1ValidatingAdmissionPolicySpecValidations :: !(Maybe [V1Validation]) -- ^ "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.+ , v1ValidatingAdmissionPolicySpecVariables :: !(Maybe [V1Variable]) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingAdmissionPolicySpec+instance A.FromJSON V1ValidatingAdmissionPolicySpec where+ parseJSON = A.withObject "V1ValidatingAdmissionPolicySpec" $ \o ->+ V1ValidatingAdmissionPolicySpec+ <$> (o .:? "auditAnnotations")+ <*> (o .:? "failurePolicy")+ <*> (o .:? "matchConditions")+ <*> (o .:? "matchConstraints")+ <*> (o .:? "paramKind")+ <*> (o .:? "validations")+ <*> (o .:? "variables")++-- | ToJSON V1ValidatingAdmissionPolicySpec+instance A.ToJSON V1ValidatingAdmissionPolicySpec where+ toJSON V1ValidatingAdmissionPolicySpec {..} =+ _omitNulls+ [ "auditAnnotations" .= v1ValidatingAdmissionPolicySpecAuditAnnotations+ , "failurePolicy" .= v1ValidatingAdmissionPolicySpecFailurePolicy+ , "matchConditions" .= v1ValidatingAdmissionPolicySpecMatchConditions+ , "matchConstraints" .= v1ValidatingAdmissionPolicySpecMatchConstraints+ , "paramKind" .= v1ValidatingAdmissionPolicySpecParamKind+ , "validations" .= v1ValidatingAdmissionPolicySpecValidations+ , "variables" .= v1ValidatingAdmissionPolicySpecVariables+ ]+++-- | Construct a value of type 'V1ValidatingAdmissionPolicySpec' (by applying it's required fields, if any)+mkV1ValidatingAdmissionPolicySpec+ :: V1ValidatingAdmissionPolicySpec+mkV1ValidatingAdmissionPolicySpec =+ V1ValidatingAdmissionPolicySpec+ { v1ValidatingAdmissionPolicySpecAuditAnnotations = Nothing+ , v1ValidatingAdmissionPolicySpecFailurePolicy = Nothing+ , v1ValidatingAdmissionPolicySpecMatchConditions = Nothing+ , v1ValidatingAdmissionPolicySpecMatchConstraints = Nothing+ , v1ValidatingAdmissionPolicySpecParamKind = Nothing+ , v1ValidatingAdmissionPolicySpecValidations = Nothing+ , v1ValidatingAdmissionPolicySpecVariables = Nothing+ }++-- ** V1ValidatingAdmissionPolicyStatus+-- | V1ValidatingAdmissionPolicyStatus+-- ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.+data V1ValidatingAdmissionPolicyStatus = V1ValidatingAdmissionPolicyStatus+ { v1ValidatingAdmissionPolicyStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - The conditions represent the latest available observations of a policy's current state.+ , v1ValidatingAdmissionPolicyStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the controller.+ , v1ValidatingAdmissionPolicyStatusTypeChecking :: !(Maybe V1TypeChecking) -- ^ "typeChecking"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingAdmissionPolicyStatus+instance A.FromJSON V1ValidatingAdmissionPolicyStatus where+ parseJSON = A.withObject "V1ValidatingAdmissionPolicyStatus" $ \o ->+ V1ValidatingAdmissionPolicyStatus+ <$> (o .:? "conditions")+ <*> (o .:? "observedGeneration")+ <*> (o .:? "typeChecking")++-- | ToJSON V1ValidatingAdmissionPolicyStatus+instance A.ToJSON V1ValidatingAdmissionPolicyStatus where+ toJSON V1ValidatingAdmissionPolicyStatus {..} =+ _omitNulls+ [ "conditions" .= v1ValidatingAdmissionPolicyStatusConditions+ , "observedGeneration" .= v1ValidatingAdmissionPolicyStatusObservedGeneration+ , "typeChecking" .= v1ValidatingAdmissionPolicyStatusTypeChecking+ ]+++-- | Construct a value of type 'V1ValidatingAdmissionPolicyStatus' (by applying it's required fields, if any)+mkV1ValidatingAdmissionPolicyStatus+ :: V1ValidatingAdmissionPolicyStatus+mkV1ValidatingAdmissionPolicyStatus =+ V1ValidatingAdmissionPolicyStatus+ { v1ValidatingAdmissionPolicyStatusConditions = Nothing+ , v1ValidatingAdmissionPolicyStatusObservedGeneration = Nothing+ , v1ValidatingAdmissionPolicyStatusTypeChecking = Nothing+ }++-- ** V1ValidatingWebhook+-- | V1ValidatingWebhook+-- ValidatingWebhook describes an admission webhook and the resources and operations it applies to.+data V1ValidatingWebhook = V1ValidatingWebhook+ { v1ValidatingWebhookAdmissionReviewVersions :: !([Text]) -- ^ /Required/ "admissionReviewVersions" - AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.+ , v1ValidatingWebhookClientConfig :: !(AdmissionregistrationV1WebhookClientConfig) -- ^ /Required/ "clientConfig"+ , v1ValidatingWebhookFailurePolicy :: !(Maybe Text) -- ^ "failurePolicy" - FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.+ , v1ValidatingWebhookMatchConditions :: !(Maybe [V1MatchCondition]) -- ^ "matchConditions" - MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. 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. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped. 2. If ALL matchConditions evaluate to TRUE, the webhook is called. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the error is ignored and the webhook is skipped+ , v1ValidatingWebhookMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - matchPolicy defines how the \"rules\" 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 webhook. - 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 webhook. Defaults to \"Equivalent\"+ , v1ValidatingWebhookName :: !(Text) -- ^ /Required/ "name" - The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.+ , v1ValidatingWebhookNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"+ , v1ValidatingWebhookObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"+ , v1ValidatingWebhookRules :: !(Maybe [V1RuleWithOperations]) -- ^ "rules" - Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.+ , v1ValidatingWebhookSideEffects :: !(Text) -- ^ /Required/ "sideEffects" - SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.+ , v1ValidatingWebhookTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingWebhook+instance A.FromJSON V1ValidatingWebhook where+ parseJSON = A.withObject "V1ValidatingWebhook" $ \o ->+ V1ValidatingWebhook+ <$> (o .: "admissionReviewVersions")+ <*> (o .: "clientConfig")+ <*> (o .:? "failurePolicy")+ <*> (o .:? "matchConditions")+ <*> (o .:? "matchPolicy")+ <*> (o .: "name")+ <*> (o .:? "namespaceSelector")+ <*> (o .:? "objectSelector")+ <*> (o .:? "rules")+ <*> (o .: "sideEffects")+ <*> (o .:? "timeoutSeconds")++-- | ToJSON V1ValidatingWebhook+instance A.ToJSON V1ValidatingWebhook where+ toJSON V1ValidatingWebhook {..} =+ _omitNulls+ [ "admissionReviewVersions" .= v1ValidatingWebhookAdmissionReviewVersions+ , "clientConfig" .= v1ValidatingWebhookClientConfig+ , "failurePolicy" .= v1ValidatingWebhookFailurePolicy+ , "matchConditions" .= v1ValidatingWebhookMatchConditions+ , "matchPolicy" .= v1ValidatingWebhookMatchPolicy+ , "name" .= v1ValidatingWebhookName+ , "namespaceSelector" .= v1ValidatingWebhookNamespaceSelector+ , "objectSelector" .= v1ValidatingWebhookObjectSelector+ , "rules" .= v1ValidatingWebhookRules+ , "sideEffects" .= v1ValidatingWebhookSideEffects+ , "timeoutSeconds" .= v1ValidatingWebhookTimeoutSeconds+ ]+++-- | Construct a value of type 'V1ValidatingWebhook' (by applying it's required fields, if any)+mkV1ValidatingWebhook+ :: [Text] -- ^ 'v1ValidatingWebhookAdmissionReviewVersions': AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.+ -> AdmissionregistrationV1WebhookClientConfig -- ^ 'v1ValidatingWebhookClientConfig' + -> Text -- ^ 'v1ValidatingWebhookName': The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.+ -> Text -- ^ 'v1ValidatingWebhookSideEffects': SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.+ -> V1ValidatingWebhook+mkV1ValidatingWebhook v1ValidatingWebhookAdmissionReviewVersions v1ValidatingWebhookClientConfig v1ValidatingWebhookName v1ValidatingWebhookSideEffects =+ V1ValidatingWebhook+ { v1ValidatingWebhookAdmissionReviewVersions+ , v1ValidatingWebhookClientConfig+ , v1ValidatingWebhookFailurePolicy = Nothing+ , v1ValidatingWebhookMatchConditions = Nothing+ , v1ValidatingWebhookMatchPolicy = Nothing+ , v1ValidatingWebhookName+ , v1ValidatingWebhookNamespaceSelector = Nothing+ , v1ValidatingWebhookObjectSelector = Nothing+ , v1ValidatingWebhookRules = Nothing+ , v1ValidatingWebhookSideEffects+ , v1ValidatingWebhookTimeoutSeconds = Nothing+ }++-- ** V1ValidatingWebhookConfiguration+-- | V1ValidatingWebhookConfiguration+-- ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.+data V1ValidatingWebhookConfiguration = V1ValidatingWebhookConfiguration+ { v1ValidatingWebhookConfigurationApiVersion :: !(Maybe Text) -- ^ "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+ , v1ValidatingWebhookConfigurationKind :: !(Maybe Text) -- ^ "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+ , v1ValidatingWebhookConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1ValidatingWebhookConfigurationWebhooks :: !(Maybe [V1ValidatingWebhook]) -- ^ "webhooks" - Webhooks is a list of webhooks and the affected resources and operations.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingWebhookConfiguration+instance A.FromJSON V1ValidatingWebhookConfiguration where+ parseJSON = A.withObject "V1ValidatingWebhookConfiguration" $ \o ->+ V1ValidatingWebhookConfiguration+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "webhooks")++-- | ToJSON V1ValidatingWebhookConfiguration+instance A.ToJSON V1ValidatingWebhookConfiguration where+ toJSON V1ValidatingWebhookConfiguration {..} =+ _omitNulls+ [ "apiVersion" .= v1ValidatingWebhookConfigurationApiVersion+ , "kind" .= v1ValidatingWebhookConfigurationKind+ , "metadata" .= v1ValidatingWebhookConfigurationMetadata+ , "webhooks" .= v1ValidatingWebhookConfigurationWebhooks+ ]+++-- | Construct a value of type 'V1ValidatingWebhookConfiguration' (by applying it's required fields, if any)+mkV1ValidatingWebhookConfiguration+ :: V1ValidatingWebhookConfiguration+mkV1ValidatingWebhookConfiguration =+ V1ValidatingWebhookConfiguration+ { v1ValidatingWebhookConfigurationApiVersion = Nothing+ , v1ValidatingWebhookConfigurationKind = Nothing+ , v1ValidatingWebhookConfigurationMetadata = Nothing+ , v1ValidatingWebhookConfigurationWebhooks = Nothing+ }++-- ** V1ValidatingWebhookConfigurationList+-- | V1ValidatingWebhookConfigurationList+-- ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.+data V1ValidatingWebhookConfigurationList = V1ValidatingWebhookConfigurationList+ { v1ValidatingWebhookConfigurationListApiVersion :: !(Maybe Text) -- ^ "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+ , v1ValidatingWebhookConfigurationListItems :: !([V1ValidatingWebhookConfiguration]) -- ^ /Required/ "items" - List of ValidatingWebhookConfiguration.+ , v1ValidatingWebhookConfigurationListKind :: !(Maybe Text) -- ^ "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+ , v1ValidatingWebhookConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidatingWebhookConfigurationList+instance A.FromJSON V1ValidatingWebhookConfigurationList where+ parseJSON = A.withObject "V1ValidatingWebhookConfigurationList" $ \o ->+ V1ValidatingWebhookConfigurationList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1ValidatingWebhookConfigurationList+instance A.ToJSON V1ValidatingWebhookConfigurationList where+ toJSON V1ValidatingWebhookConfigurationList {..} =+ _omitNulls+ [ "apiVersion" .= v1ValidatingWebhookConfigurationListApiVersion+ , "items" .= v1ValidatingWebhookConfigurationListItems+ , "kind" .= v1ValidatingWebhookConfigurationListKind+ , "metadata" .= v1ValidatingWebhookConfigurationListMetadata+ ]+++-- | Construct a value of type 'V1ValidatingWebhookConfigurationList' (by applying it's required fields, if any)+mkV1ValidatingWebhookConfigurationList+ :: [V1ValidatingWebhookConfiguration] -- ^ 'v1ValidatingWebhookConfigurationListItems': List of ValidatingWebhookConfiguration.+ -> V1ValidatingWebhookConfigurationList+mkV1ValidatingWebhookConfigurationList v1ValidatingWebhookConfigurationListItems =+ V1ValidatingWebhookConfigurationList+ { v1ValidatingWebhookConfigurationListApiVersion = Nothing+ , v1ValidatingWebhookConfigurationListItems+ , v1ValidatingWebhookConfigurationListKind = Nothing+ , v1ValidatingWebhookConfigurationListMetadata = Nothing+ }++-- ** V1Validation+-- | V1Validation+-- Validation specifies the CEL expression which is used to apply the validation.+data V1Validation = V1Validation+ { v1ValidationExpression :: !(Text) -- ^ /Required/ "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: - '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. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"} - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"} - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"} Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. Required.+ , v1ValidationMessage :: !(Maybe Text) -- ^ "message" - Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \"failed Expression: {Expression}\".+ , v1ValidationMessageExpression :: !(Maybe Text) -- ^ "messageExpression" - messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \"object.x must be less than max (\"+string(params.max)+\")\"+ , v1ValidationReason :: !(Maybe Text) -- ^ "reason" - Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\". If not set, StatusReasonInvalid is used in the response to the client.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Validation+instance A.FromJSON V1Validation where+ parseJSON = A.withObject "V1Validation" $ \o ->+ V1Validation+ <$> (o .: "expression")+ <*> (o .:? "message")+ <*> (o .:? "messageExpression")+ <*> (o .:? "reason")++-- | ToJSON V1Validation+instance A.ToJSON V1Validation where+ toJSON V1Validation {..} =+ _omitNulls+ [ "expression" .= v1ValidationExpression+ , "message" .= v1ValidationMessage+ , "messageExpression" .= v1ValidationMessageExpression+ , "reason" .= v1ValidationReason+ ]+++-- | Construct a value of type 'V1Validation' (by applying it's required fields, if any)+mkV1Validation+ :: Text -- ^ 'v1ValidationExpression': 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. 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. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"} - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"} - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"} Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. Required.+ -> V1Validation+mkV1Validation v1ValidationExpression =+ V1Validation+ { v1ValidationExpression+ , v1ValidationMessage = Nothing+ , v1ValidationMessageExpression = Nothing+ , v1ValidationReason = Nothing+ }++-- ** V1ValidationRule+-- | V1ValidationRule+-- ValidationRule describes a validation rule written in the CEL expression language.+data V1ValidationRule = V1ValidationRule+ { v1ValidationRuleFieldPath :: !(Maybe Text) -- ^ "fieldPath" - fieldPath represents the field path returned when the validation fails. It must be a relative JSON path (i.e. with array notation) scoped to the location of this x-kubernetes-validations extension in the schema and refer to an existing field. e.g. when validation checks if a specific attribute `foo` under a map `testMap`, the fieldPath could be set to `.testMap.foo` If the validation checks two lists must have unique attributes, the fieldPath could be set to either of the list: e.g. `.testList` It does not support list numeric index. It supports child operation to refer to an existing field currently. Refer to [JSONPath support in Kubernetes](https://kubernetes.io/docs/reference/kubectl/jsonpath/) for more info. Numeric index of array is not supported. For field name which contains special characters, use `['specialName']` to refer the field name. e.g. for attribute `foo.34$` appears in a list `testList`, the fieldPath could be set to `.testList['foo.34$']`+ , v1ValidationRuleMessage :: !(Maybe Text) -- ^ "message" - Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\"+ , v1ValidationRuleMessageExpression :: !(Maybe Text) -- ^ "messageExpression" - MessageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a rule, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the rule; the only difference is the return type. Example: \"x must be less than max (\"+string(self.max)+\")\"+ , v1ValidationRuleOptionalOldSelf :: !(Maybe Bool) -- ^ "optionalOldSelf" - optionalOldSelf is used to opt a transition rule into evaluation even when the object is first created, or if the old object is missing the value. When enabled `oldSelf` will be a CEL optional whose value will be `None` if there is no old value, or when the object is initially created. You may check for presence of oldSelf using `oldSelf.hasValue()` and unwrap it after checking using `oldSelf.value()`. Check the CEL documentation for Optional types for more information: https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes May not be set unless `oldSelf` is used in `rule`.+ , v1ValidationRuleReason :: !(Maybe Text) -- ^ "reason" - reason provides a machine-readable validation failure reason that is returned to the caller when a request fails this validation rule. The HTTP status code returned to the caller will match the reason of the reason of the first failed validation rule. The currently supported reasons are: \"FieldValueInvalid\", \"FieldValueForbidden\", \"FieldValueRequired\", \"FieldValueDuplicate\". If not set, default to use \"FieldValueInvalid\". All future added reasons must be accepted by clients when reading this value and unknown reasons should be treated as FieldValueInvalid.+ , v1ValidationRuleRule :: !(Text) -- ^ /Required/ "rule" - Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\"rule\": \"self.status.actual <= self.spec.maxDesired\"} If the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\"rule\": \"self.components['Widget'].priority < 10\"} - Rule scoped to a list of integers: {\"rule\": \"self.values.all(value, value >= 0 && value < 100)\"} - Rule scoped to a string value: {\"rule\": \"self.startsWith('kube')\"} The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible. Unknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \"unknown type\". An \"unknown type\" is recursively defined as: - A schema with no type and x-kubernetes-preserve-unknown-fields set to true - An array where the items schema is of an \"unknown type\" - An object where the additionalProperties schema is of an \"unknown type\" Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Rule accessing a property named \"namespace\": {\"rule\": \"self.__namespace__ > 0\"} - Rule accessing a property named \"x-prop\": {\"rule\": \"self.x__dash__prop > 0\"} - Rule accessing a property named \"redact__d\": {\"rule\": \"self.redact__underscores__d > 0\"} Equality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. If `rule` makes use of the `oldSelf` variable it is implicitly a `transition rule`. By default, the `oldSelf` variable is the same type as `self`. When `optionalOldSelf` is true, the `oldSelf` variable is a CEL optional variable whose value() is the same type as `self`. See the documentation for the `optionalOldSelf` field for details. Transition rules by default are applied only on UPDATE requests and are skipped if an old value could not be found. You can opt a transition rule into unconditional evaluation by setting `optionalOldSelf` to true.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1ValidationRule+instance A.FromJSON V1ValidationRule where+ parseJSON = A.withObject "V1ValidationRule" $ \o ->+ V1ValidationRule+ <$> (o .:? "fieldPath")+ <*> (o .:? "message")+ <*> (o .:? "messageExpression")+ <*> (o .:? "optionalOldSelf")+ <*> (o .:? "reason")+ <*> (o .: "rule")++-- | ToJSON V1ValidationRule+instance A.ToJSON V1ValidationRule where+ toJSON V1ValidationRule {..} =+ _omitNulls+ [ "fieldPath" .= v1ValidationRuleFieldPath+ , "message" .= v1ValidationRuleMessage+ , "messageExpression" .= v1ValidationRuleMessageExpression+ , "optionalOldSelf" .= v1ValidationRuleOptionalOldSelf+ , "reason" .= v1ValidationRuleReason+ , "rule" .= v1ValidationRuleRule+ ]+++-- | Construct a value of type 'V1ValidationRule' (by applying it's required fields, if any)+mkV1ValidationRule+ :: Text -- ^ 'v1ValidationRuleRule': Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\"rule\": \"self.status.actual <= self.spec.maxDesired\"} If the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\"rule\": \"self.components['Widget'].priority < 10\"} - Rule scoped to a list of integers: {\"rule\": \"self.values.all(value, value >= 0 && value < 100)\"} - Rule scoped to a string value: {\"rule\": \"self.startsWith('kube')\"} The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible. Unknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \"unknown type\". An \"unknown type\" is recursively defined as: - A schema with no type and x-kubernetes-preserve-unknown-fields set to true - An array where the items schema is of an \"unknown type\" - An object where the additionalProperties schema is of an \"unknown type\" Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Rule accessing a property named \"namespace\": {\"rule\": \"self.__namespace__ > 0\"} - Rule accessing a property named \"x-prop\": {\"rule\": \"self.x__dash__prop > 0\"} - Rule accessing a property named \"redact__d\": {\"rule\": \"self.redact__underscores__d > 0\"} Equality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. If `rule` makes use of the `oldSelf` variable it is implicitly a `transition rule`. By default, the `oldSelf` variable is the same type as `self`. When `optionalOldSelf` is true, the `oldSelf` variable is a CEL optional variable whose value() is the same type as `self`. See the documentation for the `optionalOldSelf` field for details. Transition rules by default are applied only on UPDATE requests and are skipped if an old value could not be found. You can opt a transition rule into unconditional evaluation by setting `optionalOldSelf` to true.+ -> V1ValidationRule+mkV1ValidationRule v1ValidationRuleRule =+ V1ValidationRule+ { v1ValidationRuleFieldPath = Nothing+ , v1ValidationRuleMessage = Nothing+ , v1ValidationRuleMessageExpression = Nothing+ , v1ValidationRuleOptionalOldSelf = Nothing+ , v1ValidationRuleReason = Nothing+ , v1ValidationRuleRule+ }++-- ** V1Variable+-- | V1Variable+-- Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.+data V1Variable = V1Variable+ { v1VariableExpression :: !(Text) -- ^ /Required/ "expression" - Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.+ , v1VariableName :: !(Text) -- ^ /Required/ "name" - Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Variable+instance A.FromJSON V1Variable where+ parseJSON = A.withObject "V1Variable" $ \o ->+ V1Variable+ <$> (o .: "expression")+ <*> (o .: "name")++-- | ToJSON V1Variable+instance A.ToJSON V1Variable where+ toJSON V1Variable {..} =+ _omitNulls+ [ "expression" .= v1VariableExpression+ , "name" .= v1VariableName+ ]+++-- | Construct a value of type 'V1Variable' (by applying it's required fields, if any)+mkV1Variable+ :: Text -- ^ 'v1VariableExpression': Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.+ -> Text -- ^ 'v1VariableName': Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`+ -> V1Variable+mkV1Variable v1VariableExpression v1VariableName =+ V1Variable+ { v1VariableExpression+ , v1VariableName+ }++-- ** V1Volume+-- | V1Volume+-- Volume represents a named volume in a pod that may be accessed by any container in the pod.+data V1Volume = V1Volume+ { v1VolumeAwsElasticBlockStore :: !(Maybe V1AWSElasticBlockStoreVolumeSource) -- ^ "awsElasticBlockStore"+ , v1VolumeAzureDisk :: !(Maybe V1AzureDiskVolumeSource) -- ^ "azureDisk"+ , v1VolumeAzureFile :: !(Maybe V1AzureFileVolumeSource) -- ^ "azureFile"+ , v1VolumeCephfs :: !(Maybe V1CephFSVolumeSource) -- ^ "cephfs"+ , v1VolumeCinder :: !(Maybe V1CinderVolumeSource) -- ^ "cinder"+ , v1VolumeConfigMap :: !(Maybe V1ConfigMapVolumeSource) -- ^ "configMap"+ , v1VolumeCsi :: !(Maybe V1CSIVolumeSource) -- ^ "csi"+ , v1VolumeDownwardApi :: !(Maybe V1DownwardAPIVolumeSource) -- ^ "downwardAPI"+ , v1VolumeEmptyDir :: !(Maybe V1EmptyDirVolumeSource) -- ^ "emptyDir"+ , v1VolumeEphemeral :: !(Maybe V1EphemeralVolumeSource) -- ^ "ephemeral"+ , v1VolumeFc :: !(Maybe V1FCVolumeSource) -- ^ "fc"+ , v1VolumeFlexVolume :: !(Maybe V1FlexVolumeSource) -- ^ "flexVolume"+ , v1VolumeFlocker :: !(Maybe V1FlockerVolumeSource) -- ^ "flocker"+ , v1VolumeGcePersistentDisk :: !(Maybe V1GCEPersistentDiskVolumeSource) -- ^ "gcePersistentDisk"+ , v1VolumeGitRepo :: !(Maybe V1GitRepoVolumeSource) -- ^ "gitRepo"+ , v1VolumeGlusterfs :: !(Maybe V1GlusterfsVolumeSource) -- ^ "glusterfs"+ , v1VolumeHostPath :: !(Maybe V1HostPathVolumeSource) -- ^ "hostPath"+ , v1VolumeImage :: !(Maybe V1ImageVolumeSource) -- ^ "image"+ , v1VolumeIscsi :: !(Maybe V1ISCSIVolumeSource) -- ^ "iscsi"+ , v1VolumeName :: !(Text) -- ^ /Required/ "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+ , v1VolumeNfs :: !(Maybe V1NFSVolumeSource) -- ^ "nfs"+ , v1VolumePersistentVolumeClaim :: !(Maybe V1PersistentVolumeClaimVolumeSource) -- ^ "persistentVolumeClaim"+ , v1VolumePhotonPersistentDisk :: !(Maybe V1PhotonPersistentDiskVolumeSource) -- ^ "photonPersistentDisk"+ , v1VolumePortworxVolume :: !(Maybe V1PortworxVolumeSource) -- ^ "portworxVolume"+ , v1VolumeProjected :: !(Maybe V1ProjectedVolumeSource) -- ^ "projected"+ , v1VolumeQuobyte :: !(Maybe V1QuobyteVolumeSource) -- ^ "quobyte"+ , v1VolumeRbd :: !(Maybe V1RBDVolumeSource) -- ^ "rbd"+ , v1VolumeScaleIo :: !(Maybe V1ScaleIOVolumeSource) -- ^ "scaleIO"+ , v1VolumeSecret :: !(Maybe V1SecretVolumeSource) -- ^ "secret"+ , v1VolumeStorageos :: !(Maybe V1StorageOSVolumeSource) -- ^ "storageos"+ , v1VolumeVsphereVolume :: !(Maybe V1VsphereVirtualDiskVolumeSource) -- ^ "vsphereVolume"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1Volume+instance A.FromJSON V1Volume where+ parseJSON = A.withObject "V1Volume" $ \o ->+ V1Volume+ <$> (o .:? "awsElasticBlockStore")+ <*> (o .:? "azureDisk")+ <*> (o .:? "azureFile")+ <*> (o .:? "cephfs")+ <*> (o .:? "cinder")+ <*> (o .:? "configMap")+ <*> (o .:? "csi")+ <*> (o .:? "downwardAPI")+ <*> (o .:? "emptyDir")+ <*> (o .:? "ephemeral")+ <*> (o .:? "fc")+ <*> (o .:? "flexVolume")+ <*> (o .:? "flocker")+ <*> (o .:? "gcePersistentDisk")+ <*> (o .:? "gitRepo")+ <*> (o .:? "glusterfs")+ <*> (o .:? "hostPath")+ <*> (o .:? "image")+ <*> (o .:? "iscsi")+ <*> (o .: "name")+ <*> (o .:? "nfs")+ <*> (o .:? "persistentVolumeClaim")+ <*> (o .:? "photonPersistentDisk")+ <*> (o .:? "portworxVolume")+ <*> (o .:? "projected")+ <*> (o .:? "quobyte")+ <*> (o .:? "rbd")+ <*> (o .:? "scaleIO")+ <*> (o .:? "secret")+ <*> (o .:? "storageos")+ <*> (o .:? "vsphereVolume")++-- | ToJSON V1Volume+instance A.ToJSON V1Volume where+ toJSON V1Volume {..} =+ _omitNulls+ [ "awsElasticBlockStore" .= v1VolumeAwsElasticBlockStore+ , "azureDisk" .= v1VolumeAzureDisk+ , "azureFile" .= v1VolumeAzureFile+ , "cephfs" .= v1VolumeCephfs+ , "cinder" .= v1VolumeCinder+ , "configMap" .= v1VolumeConfigMap+ , "csi" .= v1VolumeCsi+ , "downwardAPI" .= v1VolumeDownwardApi+ , "emptyDir" .= v1VolumeEmptyDir+ , "ephemeral" .= v1VolumeEphemeral+ , "fc" .= v1VolumeFc+ , "flexVolume" .= v1VolumeFlexVolume+ , "flocker" .= v1VolumeFlocker+ , "gcePersistentDisk" .= v1VolumeGcePersistentDisk+ , "gitRepo" .= v1VolumeGitRepo+ , "glusterfs" .= v1VolumeGlusterfs+ , "hostPath" .= v1VolumeHostPath+ , "image" .= v1VolumeImage+ , "iscsi" .= v1VolumeIscsi+ , "name" .= v1VolumeName+ , "nfs" .= v1VolumeNfs+ , "persistentVolumeClaim" .= v1VolumePersistentVolumeClaim+ , "photonPersistentDisk" .= v1VolumePhotonPersistentDisk+ , "portworxVolume" .= v1VolumePortworxVolume+ , "projected" .= v1VolumeProjected+ , "quobyte" .= v1VolumeQuobyte+ , "rbd" .= v1VolumeRbd+ , "scaleIO" .= v1VolumeScaleIo+ , "secret" .= v1VolumeSecret+ , "storageos" .= v1VolumeStorageos+ , "vsphereVolume" .= v1VolumeVsphereVolume+ ]+++-- | Construct a value of type 'V1Volume' (by applying it's required fields, if any)+mkV1Volume+ :: Text -- ^ 'v1VolumeName': 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+ -> V1Volume+mkV1Volume v1VolumeName =+ V1Volume+ { v1VolumeAwsElasticBlockStore = Nothing+ , v1VolumeAzureDisk = Nothing+ , v1VolumeAzureFile = Nothing+ , v1VolumeCephfs = Nothing+ , v1VolumeCinder = Nothing+ , v1VolumeConfigMap = Nothing+ , v1VolumeCsi = Nothing+ , v1VolumeDownwardApi = Nothing+ , v1VolumeEmptyDir = Nothing+ , v1VolumeEphemeral = Nothing+ , v1VolumeFc = Nothing+ , v1VolumeFlexVolume = Nothing+ , v1VolumeFlocker = Nothing+ , v1VolumeGcePersistentDisk = Nothing+ , v1VolumeGitRepo = Nothing+ , v1VolumeGlusterfs = Nothing+ , v1VolumeHostPath = Nothing+ , v1VolumeImage = Nothing+ , v1VolumeIscsi = Nothing+ , v1VolumeName+ , v1VolumeNfs = Nothing+ , v1VolumePersistentVolumeClaim = Nothing+ , v1VolumePhotonPersistentDisk = Nothing+ , v1VolumePortworxVolume = Nothing+ , v1VolumeProjected = Nothing+ , v1VolumeQuobyte = Nothing+ , v1VolumeRbd = Nothing+ , v1VolumeScaleIo = Nothing+ , v1VolumeSecret = Nothing+ , v1VolumeStorageos = Nothing+ , v1VolumeVsphereVolume = Nothing+ }++-- ** V1VolumeAttachment+-- | V1VolumeAttachment+-- VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node. VolumeAttachment objects are non-namespaced.+data V1VolumeAttachment = V1VolumeAttachment+ { v1VolumeAttachmentApiVersion :: !(Maybe Text) -- ^ "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+ , v1VolumeAttachmentKind :: !(Maybe Text) -- ^ "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+ , v1VolumeAttachmentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1VolumeAttachmentSpec :: !(V1VolumeAttachmentSpec) -- ^ /Required/ "spec"+ , v1VolumeAttachmentStatus :: !(Maybe V1VolumeAttachmentStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeAttachment+instance A.FromJSON V1VolumeAttachment where+ parseJSON = A.withObject "V1VolumeAttachment" $ \o ->+ V1VolumeAttachment+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1VolumeAttachment+instance A.ToJSON V1VolumeAttachment where+ toJSON V1VolumeAttachment {..} =+ _omitNulls+ [ "apiVersion" .= v1VolumeAttachmentApiVersion+ , "kind" .= v1VolumeAttachmentKind+ , "metadata" .= v1VolumeAttachmentMetadata+ , "spec" .= v1VolumeAttachmentSpec+ , "status" .= v1VolumeAttachmentStatus+ ]+++-- | Construct a value of type 'V1VolumeAttachment' (by applying it's required fields, if any)+mkV1VolumeAttachment+ :: V1VolumeAttachmentSpec -- ^ 'v1VolumeAttachmentSpec' + -> V1VolumeAttachment+mkV1VolumeAttachment v1VolumeAttachmentSpec =+ V1VolumeAttachment+ { v1VolumeAttachmentApiVersion = Nothing+ , v1VolumeAttachmentKind = Nothing+ , v1VolumeAttachmentMetadata = Nothing+ , v1VolumeAttachmentSpec+ , v1VolumeAttachmentStatus = Nothing+ }++-- ** V1VolumeAttachmentList+-- | V1VolumeAttachmentList+-- VolumeAttachmentList is a collection of VolumeAttachment objects.+data V1VolumeAttachmentList = V1VolumeAttachmentList+ { v1VolumeAttachmentListApiVersion :: !(Maybe Text) -- ^ "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+ , v1VolumeAttachmentListItems :: !([V1VolumeAttachment]) -- ^ /Required/ "items" - items is the list of VolumeAttachments+ , v1VolumeAttachmentListKind :: !(Maybe Text) -- ^ "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+ , v1VolumeAttachmentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeAttachmentList+instance A.FromJSON V1VolumeAttachmentList where+ parseJSON = A.withObject "V1VolumeAttachmentList" $ \o ->+ V1VolumeAttachmentList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1VolumeAttachmentList+instance A.ToJSON V1VolumeAttachmentList where+ toJSON V1VolumeAttachmentList {..} =+ _omitNulls+ [ "apiVersion" .= v1VolumeAttachmentListApiVersion+ , "items" .= v1VolumeAttachmentListItems+ , "kind" .= v1VolumeAttachmentListKind+ , "metadata" .= v1VolumeAttachmentListMetadata+ ]+++-- | Construct a value of type 'V1VolumeAttachmentList' (by applying it's required fields, if any)+mkV1VolumeAttachmentList+ :: [V1VolumeAttachment] -- ^ 'v1VolumeAttachmentListItems': items is the list of VolumeAttachments+ -> V1VolumeAttachmentList+mkV1VolumeAttachmentList v1VolumeAttachmentListItems =+ V1VolumeAttachmentList+ { v1VolumeAttachmentListApiVersion = Nothing+ , v1VolumeAttachmentListItems+ , v1VolumeAttachmentListKind = Nothing+ , v1VolumeAttachmentListMetadata = Nothing+ }++-- ** V1VolumeAttachmentSource+-- | V1VolumeAttachmentSource+-- 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.+data V1VolumeAttachmentSource = V1VolumeAttachmentSource+ { v1VolumeAttachmentSourceInlineVolumeSpec :: !(Maybe V1PersistentVolumeSpec) -- ^ "inlineVolumeSpec"+ , v1VolumeAttachmentSourcePersistentVolumeName :: !(Maybe Text) -- ^ "persistentVolumeName" - persistentVolumeName represents the name of the persistent volume to attach.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeAttachmentSource+instance A.FromJSON V1VolumeAttachmentSource where+ parseJSON = A.withObject "V1VolumeAttachmentSource" $ \o ->+ V1VolumeAttachmentSource+ <$> (o .:? "inlineVolumeSpec")+ <*> (o .:? "persistentVolumeName")++-- | ToJSON V1VolumeAttachmentSource+instance A.ToJSON V1VolumeAttachmentSource where+ toJSON V1VolumeAttachmentSource {..} =+ _omitNulls+ [ "inlineVolumeSpec" .= v1VolumeAttachmentSourceInlineVolumeSpec+ , "persistentVolumeName" .= v1VolumeAttachmentSourcePersistentVolumeName+ ]+++-- | Construct a value of type 'V1VolumeAttachmentSource' (by applying it's required fields, if any)+mkV1VolumeAttachmentSource+ :: V1VolumeAttachmentSource+mkV1VolumeAttachmentSource =+ V1VolumeAttachmentSource+ { v1VolumeAttachmentSourceInlineVolumeSpec = Nothing+ , v1VolumeAttachmentSourcePersistentVolumeName = Nothing+ }++-- ** V1VolumeAttachmentSpec+-- | V1VolumeAttachmentSpec+-- VolumeAttachmentSpec is the specification of a VolumeAttachment request.+data V1VolumeAttachmentSpec = V1VolumeAttachmentSpec+ { v1VolumeAttachmentSpecAttacher :: !(Text) -- ^ /Required/ "attacher" - attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().+ , v1VolumeAttachmentSpecNodeName :: !(Text) -- ^ /Required/ "nodeName" - nodeName represents the node that the volume should be attached to.+ , v1VolumeAttachmentSpecSource :: !(V1VolumeAttachmentSource) -- ^ /Required/ "source"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeAttachmentSpec+instance A.FromJSON V1VolumeAttachmentSpec where+ parseJSON = A.withObject "V1VolumeAttachmentSpec" $ \o ->+ V1VolumeAttachmentSpec+ <$> (o .: "attacher")+ <*> (o .: "nodeName")+ <*> (o .: "source")++-- | ToJSON V1VolumeAttachmentSpec+instance A.ToJSON V1VolumeAttachmentSpec where+ toJSON V1VolumeAttachmentSpec {..} =+ _omitNulls+ [ "attacher" .= v1VolumeAttachmentSpecAttacher+ , "nodeName" .= v1VolumeAttachmentSpecNodeName+ , "source" .= v1VolumeAttachmentSpecSource+ ]+++-- | Construct a value of type 'V1VolumeAttachmentSpec' (by applying it's required fields, if any)+mkV1VolumeAttachmentSpec+ :: Text -- ^ 'v1VolumeAttachmentSpecAttacher': attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().+ -> Text -- ^ 'v1VolumeAttachmentSpecNodeName': nodeName represents the node that the volume should be attached to.+ -> V1VolumeAttachmentSource -- ^ 'v1VolumeAttachmentSpecSource' + -> V1VolumeAttachmentSpec+mkV1VolumeAttachmentSpec v1VolumeAttachmentSpecAttacher v1VolumeAttachmentSpecNodeName v1VolumeAttachmentSpecSource =+ V1VolumeAttachmentSpec+ { v1VolumeAttachmentSpecAttacher+ , v1VolumeAttachmentSpecNodeName+ , v1VolumeAttachmentSpecSource+ }++-- ** V1VolumeAttachmentStatus+-- | V1VolumeAttachmentStatus+-- VolumeAttachmentStatus is the status of a VolumeAttachment request.+data V1VolumeAttachmentStatus = V1VolumeAttachmentStatus+ { v1VolumeAttachmentStatusAttachError :: !(Maybe V1VolumeError) -- ^ "attachError"+ , v1VolumeAttachmentStatusAttached :: !(Bool) -- ^ /Required/ "attached" - attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.+ , v1VolumeAttachmentStatusAttachmentMetadata :: !(Maybe (Map.Map String Text)) -- ^ "attachmentMetadata" - attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.+ , v1VolumeAttachmentStatusDetachError :: !(Maybe V1VolumeError) -- ^ "detachError"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeAttachmentStatus+instance A.FromJSON V1VolumeAttachmentStatus where+ parseJSON = A.withObject "V1VolumeAttachmentStatus" $ \o ->+ V1VolumeAttachmentStatus+ <$> (o .:? "attachError")+ <*> (o .: "attached")+ <*> (o .:? "attachmentMetadata")+ <*> (o .:? "detachError")++-- | ToJSON V1VolumeAttachmentStatus+instance A.ToJSON V1VolumeAttachmentStatus where+ toJSON V1VolumeAttachmentStatus {..} =+ _omitNulls+ [ "attachError" .= v1VolumeAttachmentStatusAttachError+ , "attached" .= v1VolumeAttachmentStatusAttached+ , "attachmentMetadata" .= v1VolumeAttachmentStatusAttachmentMetadata+ , "detachError" .= v1VolumeAttachmentStatusDetachError+ ]+++-- | Construct a value of type 'V1VolumeAttachmentStatus' (by applying it's required fields, if any)+mkV1VolumeAttachmentStatus+ :: Bool -- ^ 'v1VolumeAttachmentStatusAttached': attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.+ -> V1VolumeAttachmentStatus+mkV1VolumeAttachmentStatus v1VolumeAttachmentStatusAttached =+ V1VolumeAttachmentStatus+ { v1VolumeAttachmentStatusAttachError = Nothing+ , v1VolumeAttachmentStatusAttached+ , v1VolumeAttachmentStatusAttachmentMetadata = Nothing+ , v1VolumeAttachmentStatusDetachError = Nothing+ }++-- ** V1VolumeAttributesClass+-- | V1VolumeAttributesClass+-- VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.+data V1VolumeAttributesClass = V1VolumeAttributesClass+ { v1VolumeAttributesClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1VolumeAttributesClassDriverName :: !(Text) -- ^ /Required/ "driverName" - Name of the CSI driver This field is immutable.+ , v1VolumeAttributesClassKind :: !(Maybe Text) -- ^ "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+ , v1VolumeAttributesClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1VolumeAttributesClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass. This field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the modifyVolumeStatus field.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeAttributesClass+instance A.FromJSON V1VolumeAttributesClass where+ parseJSON = A.withObject "V1VolumeAttributesClass" $ \o ->+ V1VolumeAttributesClass+ <$> (o .:? "apiVersion")+ <*> (o .: "driverName")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "parameters")++-- | ToJSON V1VolumeAttributesClass+instance A.ToJSON V1VolumeAttributesClass where+ toJSON V1VolumeAttributesClass {..} =+ _omitNulls+ [ "apiVersion" .= v1VolumeAttributesClassApiVersion+ , "driverName" .= v1VolumeAttributesClassDriverName+ , "kind" .= v1VolumeAttributesClassKind+ , "metadata" .= v1VolumeAttributesClassMetadata+ , "parameters" .= v1VolumeAttributesClassParameters+ ]+++-- | Construct a value of type 'V1VolumeAttributesClass' (by applying it's required fields, if any)+mkV1VolumeAttributesClass+ :: Text -- ^ 'v1VolumeAttributesClassDriverName': Name of the CSI driver This field is immutable.+ -> V1VolumeAttributesClass+mkV1VolumeAttributesClass v1VolumeAttributesClassDriverName =+ V1VolumeAttributesClass+ { v1VolumeAttributesClassApiVersion = Nothing+ , v1VolumeAttributesClassDriverName+ , v1VolumeAttributesClassKind = Nothing+ , v1VolumeAttributesClassMetadata = Nothing+ , v1VolumeAttributesClassParameters = Nothing+ }++-- ** V1VolumeAttributesClassList+-- | V1VolumeAttributesClassList+-- VolumeAttributesClassList is a collection of VolumeAttributesClass objects.+data V1VolumeAttributesClassList = V1VolumeAttributesClassList+ { v1VolumeAttributesClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1VolumeAttributesClassListItems :: !([V1VolumeAttributesClass]) -- ^ /Required/ "items" - items is the list of VolumeAttributesClass objects.+ , v1VolumeAttributesClassListKind :: !(Maybe Text) -- ^ "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+ , v1VolumeAttributesClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeAttributesClassList+instance A.FromJSON V1VolumeAttributesClassList where+ parseJSON = A.withObject "V1VolumeAttributesClassList" $ \o ->+ V1VolumeAttributesClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1VolumeAttributesClassList+instance A.ToJSON V1VolumeAttributesClassList where+ toJSON V1VolumeAttributesClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1VolumeAttributesClassListApiVersion+ , "items" .= v1VolumeAttributesClassListItems+ , "kind" .= v1VolumeAttributesClassListKind+ , "metadata" .= v1VolumeAttributesClassListMetadata+ ]+++-- | Construct a value of type 'V1VolumeAttributesClassList' (by applying it's required fields, if any)+mkV1VolumeAttributesClassList+ :: [V1VolumeAttributesClass] -- ^ 'v1VolumeAttributesClassListItems': items is the list of VolumeAttributesClass objects.+ -> V1VolumeAttributesClassList+mkV1VolumeAttributesClassList v1VolumeAttributesClassListItems =+ V1VolumeAttributesClassList+ { v1VolumeAttributesClassListApiVersion = Nothing+ , v1VolumeAttributesClassListItems+ , v1VolumeAttributesClassListKind = Nothing+ , v1VolumeAttributesClassListMetadata = Nothing+ }++-- ** V1VolumeDevice+-- | V1VolumeDevice+-- volumeDevice describes a mapping of a raw block device within a container.+data V1VolumeDevice = V1VolumeDevice+ { v1VolumeDeviceDevicePath :: !(Text) -- ^ /Required/ "devicePath" - devicePath is the path inside of the container that the device will be mapped to.+ , v1VolumeDeviceName :: !(Text) -- ^ /Required/ "name" - name must match the name of a persistentVolumeClaim in the pod+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeDevice+instance A.FromJSON V1VolumeDevice where+ parseJSON = A.withObject "V1VolumeDevice" $ \o ->+ V1VolumeDevice+ <$> (o .: "devicePath")+ <*> (o .: "name")++-- | ToJSON V1VolumeDevice+instance A.ToJSON V1VolumeDevice where+ toJSON V1VolumeDevice {..} =+ _omitNulls+ [ "devicePath" .= v1VolumeDeviceDevicePath+ , "name" .= v1VolumeDeviceName+ ]+++-- | Construct a value of type 'V1VolumeDevice' (by applying it's required fields, if any)+mkV1VolumeDevice+ :: Text -- ^ 'v1VolumeDeviceDevicePath': devicePath is the path inside of the container that the device will be mapped to.+ -> Text -- ^ 'v1VolumeDeviceName': name must match the name of a persistentVolumeClaim in the pod+ -> V1VolumeDevice+mkV1VolumeDevice v1VolumeDeviceDevicePath v1VolumeDeviceName =+ V1VolumeDevice+ { v1VolumeDeviceDevicePath+ , v1VolumeDeviceName+ }++-- ** V1VolumeError+-- | V1VolumeError+-- VolumeError captures an error encountered during a volume operation.+data V1VolumeError = V1VolumeError+ { v1VolumeErrorErrorCode :: !(Maybe Int) -- ^ "errorCode" - errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations. This is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.+ , v1VolumeErrorMessage :: !(Maybe Text) -- ^ "message" - message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.+ , v1VolumeErrorTime :: !(Maybe DateTime) -- ^ "time" - time represents the time the error was encountered.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeError+instance A.FromJSON V1VolumeError where+ parseJSON = A.withObject "V1VolumeError" $ \o ->+ V1VolumeError+ <$> (o .:? "errorCode")+ <*> (o .:? "message")+ <*> (o .:? "time")++-- | ToJSON V1VolumeError+instance A.ToJSON V1VolumeError where+ toJSON V1VolumeError {..} =+ _omitNulls+ [ "errorCode" .= v1VolumeErrorErrorCode+ , "message" .= v1VolumeErrorMessage+ , "time" .= v1VolumeErrorTime+ ]+++-- | Construct a value of type 'V1VolumeError' (by applying it's required fields, if any)+mkV1VolumeError+ :: V1VolumeError+mkV1VolumeError =+ V1VolumeError+ { v1VolumeErrorErrorCode = Nothing+ , v1VolumeErrorMessage = Nothing+ , v1VolumeErrorTime = Nothing+ }++-- ** V1VolumeMount+-- | V1VolumeMount+-- VolumeMount describes a mounting of a Volume within a container.+data V1VolumeMount = V1VolumeMount+ { v1VolumeMountMountPath :: !(Text) -- ^ /Required/ "mountPath" - Path within the container at which the volume should be mounted. Must not contain ':'.+ , v1VolumeMountMountPropagation :: !(Maybe Text) -- ^ "mountPropagation" - mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).+ , v1VolumeMountName :: !(Text) -- ^ /Required/ "name" - This must match the Name of a Volume.+ , v1VolumeMountReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.+ , v1VolumeMountRecursiveReadOnly :: !(Maybe Text) -- ^ "recursiveReadOnly" - RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled.+ , v1VolumeMountSubPath :: !(Maybe Text) -- ^ "subPath" - Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).+ , v1VolumeMountSubPathExpr :: !(Maybe Text) -- ^ "subPathExpr" - Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeMount+instance A.FromJSON V1VolumeMount where+ parseJSON = A.withObject "V1VolumeMount" $ \o ->+ V1VolumeMount+ <$> (o .: "mountPath")+ <*> (o .:? "mountPropagation")+ <*> (o .: "name")+ <*> (o .:? "readOnly")+ <*> (o .:? "recursiveReadOnly")+ <*> (o .:? "subPath")+ <*> (o .:? "subPathExpr")++-- | ToJSON V1VolumeMount+instance A.ToJSON V1VolumeMount where+ toJSON V1VolumeMount {..} =+ _omitNulls+ [ "mountPath" .= v1VolumeMountMountPath+ , "mountPropagation" .= v1VolumeMountMountPropagation+ , "name" .= v1VolumeMountName+ , "readOnly" .= v1VolumeMountReadOnly+ , "recursiveReadOnly" .= v1VolumeMountRecursiveReadOnly+ , "subPath" .= v1VolumeMountSubPath+ , "subPathExpr" .= v1VolumeMountSubPathExpr+ ]+++-- | Construct a value of type 'V1VolumeMount' (by applying it's required fields, if any)+mkV1VolumeMount+ :: Text -- ^ 'v1VolumeMountMountPath': Path within the container at which the volume should be mounted. Must not contain ':'.+ -> Text -- ^ 'v1VolumeMountName': This must match the Name of a Volume.+ -> V1VolumeMount+mkV1VolumeMount v1VolumeMountMountPath v1VolumeMountName =+ V1VolumeMount+ { v1VolumeMountMountPath+ , v1VolumeMountMountPropagation = Nothing+ , v1VolumeMountName+ , v1VolumeMountReadOnly = Nothing+ , v1VolumeMountRecursiveReadOnly = Nothing+ , v1VolumeMountSubPath = Nothing+ , v1VolumeMountSubPathExpr = Nothing+ }++-- ** V1VolumeMountStatus+-- | V1VolumeMountStatus+-- VolumeMountStatus shows status of volume mounts.+data V1VolumeMountStatus = V1VolumeMountStatus+ { v1VolumeMountStatusMountPath :: !(Text) -- ^ /Required/ "mountPath" - MountPath corresponds to the original VolumeMount.+ , v1VolumeMountStatusName :: !(Text) -- ^ /Required/ "name" - Name corresponds to the name of the original VolumeMount.+ , v1VolumeMountStatusReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly corresponds to the original VolumeMount.+ , v1VolumeMountStatusRecursiveReadOnly :: !(Maybe Text) -- ^ "recursiveReadOnly" - RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeMountStatus+instance A.FromJSON V1VolumeMountStatus where+ parseJSON = A.withObject "V1VolumeMountStatus" $ \o ->+ V1VolumeMountStatus+ <$> (o .: "mountPath")+ <*> (o .: "name")+ <*> (o .:? "readOnly")+ <*> (o .:? "recursiveReadOnly")++-- | ToJSON V1VolumeMountStatus+instance A.ToJSON V1VolumeMountStatus where+ toJSON V1VolumeMountStatus {..} =+ _omitNulls+ [ "mountPath" .= v1VolumeMountStatusMountPath+ , "name" .= v1VolumeMountStatusName+ , "readOnly" .= v1VolumeMountStatusReadOnly+ , "recursiveReadOnly" .= v1VolumeMountStatusRecursiveReadOnly+ ]+++-- | Construct a value of type 'V1VolumeMountStatus' (by applying it's required fields, if any)+mkV1VolumeMountStatus+ :: Text -- ^ 'v1VolumeMountStatusMountPath': MountPath corresponds to the original VolumeMount.+ -> Text -- ^ 'v1VolumeMountStatusName': Name corresponds to the name of the original VolumeMount.+ -> V1VolumeMountStatus+mkV1VolumeMountStatus v1VolumeMountStatusMountPath v1VolumeMountStatusName =+ V1VolumeMountStatus+ { v1VolumeMountStatusMountPath+ , v1VolumeMountStatusName+ , v1VolumeMountStatusReadOnly = Nothing+ , v1VolumeMountStatusRecursiveReadOnly = Nothing+ }++-- ** V1VolumeNodeAffinity+-- | V1VolumeNodeAffinity+-- VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.+data V1VolumeNodeAffinity = V1VolumeNodeAffinity+ { v1VolumeNodeAffinityRequired :: !(Maybe V1NodeSelector) -- ^ "required"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeNodeAffinity+instance A.FromJSON V1VolumeNodeAffinity where+ parseJSON = A.withObject "V1VolumeNodeAffinity" $ \o ->+ V1VolumeNodeAffinity+ <$> (o .:? "required")++-- | ToJSON V1VolumeNodeAffinity+instance A.ToJSON V1VolumeNodeAffinity where+ toJSON V1VolumeNodeAffinity {..} =+ _omitNulls+ [ "required" .= v1VolumeNodeAffinityRequired+ ]+++-- | Construct a value of type 'V1VolumeNodeAffinity' (by applying it's required fields, if any)+mkV1VolumeNodeAffinity+ :: V1VolumeNodeAffinity+mkV1VolumeNodeAffinity =+ V1VolumeNodeAffinity+ { v1VolumeNodeAffinityRequired = Nothing+ }++-- ** V1VolumeNodeResources+-- | V1VolumeNodeResources+-- VolumeNodeResources is a set of resource limits for scheduling of volumes.+data V1VolumeNodeResources = V1VolumeNodeResources+ { v1VolumeNodeResourcesCount :: !(Maybe Int) -- ^ "count" - count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeNodeResources+instance A.FromJSON V1VolumeNodeResources where+ parseJSON = A.withObject "V1VolumeNodeResources" $ \o ->+ V1VolumeNodeResources+ <$> (o .:? "count")++-- | ToJSON V1VolumeNodeResources+instance A.ToJSON V1VolumeNodeResources where+ toJSON V1VolumeNodeResources {..} =+ _omitNulls+ [ "count" .= v1VolumeNodeResourcesCount+ ]+++-- | Construct a value of type 'V1VolumeNodeResources' (by applying it's required fields, if any)+mkV1VolumeNodeResources+ :: V1VolumeNodeResources+mkV1VolumeNodeResources =+ V1VolumeNodeResources+ { v1VolumeNodeResourcesCount = Nothing+ }++-- ** V1VolumeProjection+-- | V1VolumeProjection+-- Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.+data V1VolumeProjection = V1VolumeProjection+ { v1VolumeProjectionClusterTrustBundle :: !(Maybe V1ClusterTrustBundleProjection) -- ^ "clusterTrustBundle"+ , v1VolumeProjectionConfigMap :: !(Maybe V1ConfigMapProjection) -- ^ "configMap"+ , v1VolumeProjectionDownwardApi :: !(Maybe V1DownwardAPIProjection) -- ^ "downwardAPI"+ , v1VolumeProjectionPodCertificate :: !(Maybe V1PodCertificateProjection) -- ^ "podCertificate"+ , v1VolumeProjectionSecret :: !(Maybe V1SecretProjection) -- ^ "secret"+ , v1VolumeProjectionServiceAccountToken :: !(Maybe V1ServiceAccountTokenProjection) -- ^ "serviceAccountToken"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeProjection+instance A.FromJSON V1VolumeProjection where+ parseJSON = A.withObject "V1VolumeProjection" $ \o ->+ V1VolumeProjection+ <$> (o .:? "clusterTrustBundle")+ <*> (o .:? "configMap")+ <*> (o .:? "downwardAPI")+ <*> (o .:? "podCertificate")+ <*> (o .:? "secret")+ <*> (o .:? "serviceAccountToken")++-- | ToJSON V1VolumeProjection+instance A.ToJSON V1VolumeProjection where+ toJSON V1VolumeProjection {..} =+ _omitNulls+ [ "clusterTrustBundle" .= v1VolumeProjectionClusterTrustBundle+ , "configMap" .= v1VolumeProjectionConfigMap+ , "downwardAPI" .= v1VolumeProjectionDownwardApi+ , "podCertificate" .= v1VolumeProjectionPodCertificate+ , "secret" .= v1VolumeProjectionSecret+ , "serviceAccountToken" .= v1VolumeProjectionServiceAccountToken+ ]+++-- | Construct a value of type 'V1VolumeProjection' (by applying it's required fields, if any)+mkV1VolumeProjection+ :: V1VolumeProjection+mkV1VolumeProjection =+ V1VolumeProjection+ { v1VolumeProjectionClusterTrustBundle = Nothing+ , v1VolumeProjectionConfigMap = Nothing+ , v1VolumeProjectionDownwardApi = Nothing+ , v1VolumeProjectionPodCertificate = Nothing+ , v1VolumeProjectionSecret = Nothing+ , v1VolumeProjectionServiceAccountToken = Nothing+ }++-- ** V1VolumeResourceRequirements+-- | V1VolumeResourceRequirements+-- VolumeResourceRequirements describes the storage resource requirements for a volume.+data V1VolumeResourceRequirements = V1VolumeResourceRequirements+ { v1VolumeResourceRequirementsLimits :: !(Maybe (Map.Map String Quantity)) -- ^ "limits" - Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/+ , v1VolumeResourceRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VolumeResourceRequirements+instance A.FromJSON V1VolumeResourceRequirements where+ parseJSON = A.withObject "V1VolumeResourceRequirements" $ \o ->+ V1VolumeResourceRequirements+ <$> (o .:? "limits")+ <*> (o .:? "requests")++-- | ToJSON V1VolumeResourceRequirements+instance A.ToJSON V1VolumeResourceRequirements where+ toJSON V1VolumeResourceRequirements {..} =+ _omitNulls+ [ "limits" .= v1VolumeResourceRequirementsLimits+ , "requests" .= v1VolumeResourceRequirementsRequests+ ]+++-- | Construct a value of type 'V1VolumeResourceRequirements' (by applying it's required fields, if any)+mkV1VolumeResourceRequirements+ :: V1VolumeResourceRequirements+mkV1VolumeResourceRequirements =+ V1VolumeResourceRequirements+ { v1VolumeResourceRequirementsLimits = Nothing+ , v1VolumeResourceRequirementsRequests = Nothing+ }++-- ** V1VsphereVirtualDiskVolumeSource+-- | V1VsphereVirtualDiskVolumeSource+-- Represents a vSphere volume resource.+data V1VsphereVirtualDiskVolumeSource = V1VsphereVirtualDiskVolumeSource+ { v1VsphereVirtualDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.+ , v1VsphereVirtualDiskVolumeSourceStoragePolicyId :: !(Maybe Text) -- ^ "storagePolicyID" - storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.+ , v1VsphereVirtualDiskVolumeSourceStoragePolicyName :: !(Maybe Text) -- ^ "storagePolicyName" - storagePolicyName is the storage Policy Based Management (SPBM) profile name.+ , v1VsphereVirtualDiskVolumeSourceVolumePath :: !(Text) -- ^ /Required/ "volumePath" - volumePath is the path that identifies vSphere volume vmdk+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1VsphereVirtualDiskVolumeSource+instance A.FromJSON V1VsphereVirtualDiskVolumeSource where+ parseJSON = A.withObject "V1VsphereVirtualDiskVolumeSource" $ \o ->+ V1VsphereVirtualDiskVolumeSource+ <$> (o .:? "fsType")+ <*> (o .:? "storagePolicyID")+ <*> (o .:? "storagePolicyName")+ <*> (o .: "volumePath")++-- | ToJSON V1VsphereVirtualDiskVolumeSource+instance A.ToJSON V1VsphereVirtualDiskVolumeSource where+ toJSON V1VsphereVirtualDiskVolumeSource {..} =+ _omitNulls+ [ "fsType" .= v1VsphereVirtualDiskVolumeSourceFsType+ , "storagePolicyID" .= v1VsphereVirtualDiskVolumeSourceStoragePolicyId+ , "storagePolicyName" .= v1VsphereVirtualDiskVolumeSourceStoragePolicyName+ , "volumePath" .= v1VsphereVirtualDiskVolumeSourceVolumePath+ ]+++-- | Construct a value of type 'V1VsphereVirtualDiskVolumeSource' (by applying it's required fields, if any)+mkV1VsphereVirtualDiskVolumeSource+ :: Text -- ^ 'v1VsphereVirtualDiskVolumeSourceVolumePath': volumePath is the path that identifies vSphere volume vmdk+ -> V1VsphereVirtualDiskVolumeSource+mkV1VsphereVirtualDiskVolumeSource v1VsphereVirtualDiskVolumeSourceVolumePath =+ V1VsphereVirtualDiskVolumeSource+ { v1VsphereVirtualDiskVolumeSourceFsType = Nothing+ , v1VsphereVirtualDiskVolumeSourceStoragePolicyId = Nothing+ , v1VsphereVirtualDiskVolumeSourceStoragePolicyName = Nothing+ , v1VsphereVirtualDiskVolumeSourceVolumePath+ }++-- ** V1WatchEvent+-- | V1WatchEvent+-- Event represents a single event to a watched resource.+data V1WatchEvent = V1WatchEvent+ { v1WatchEventObject :: !(A.Value) -- ^ /Required/ "object" - Object is: * If Type is Added or Modified: the new state of the object. * If Type is Deleted: the state of the object immediately before deletion. * If Type is Error: *Status is recommended; other types may make sense depending on context.+ , v1WatchEventType :: !(Text) -- ^ /Required/ "type"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1WatchEvent+instance A.FromJSON V1WatchEvent where+ parseJSON = A.withObject "V1WatchEvent" $ \o ->+ V1WatchEvent+ <$> (o .: "object")+ <*> (o .: "type")++-- | ToJSON V1WatchEvent+instance A.ToJSON V1WatchEvent where+ toJSON V1WatchEvent {..} =+ _omitNulls+ [ "object" .= v1WatchEventObject+ , "type" .= v1WatchEventType+ ]+++-- | Construct a value of type 'V1WatchEvent' (by applying it's required fields, if any)+mkV1WatchEvent+ :: A.Value -- ^ 'v1WatchEventObject': Object is: * If Type is Added or Modified: the new state of the object. * If Type is Deleted: the state of the object immediately before deletion. * If Type is Error: *Status is recommended; other types may make sense depending on context.+ -> Text -- ^ 'v1WatchEventType' + -> V1WatchEvent+mkV1WatchEvent v1WatchEventObject v1WatchEventType =+ V1WatchEvent+ { v1WatchEventObject+ , v1WatchEventType+ }++-- ** V1WebhookConversion+-- | V1WebhookConversion+-- WebhookConversion describes how to call a conversion webhook+data V1WebhookConversion = V1WebhookConversion+ { v1WebhookConversionClientConfig :: !(Maybe ApiextensionsV1WebhookClientConfig) -- ^ "clientConfig"+ , v1WebhookConversionConversionReviewVersions :: !([Text]) -- ^ /Required/ "conversionReviewVersions" - conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1WebhookConversion+instance A.FromJSON V1WebhookConversion where+ parseJSON = A.withObject "V1WebhookConversion" $ \o ->+ V1WebhookConversion+ <$> (o .:? "clientConfig")+ <*> (o .: "conversionReviewVersions")++-- | ToJSON V1WebhookConversion+instance A.ToJSON V1WebhookConversion where+ toJSON V1WebhookConversion {..} =+ _omitNulls+ [ "clientConfig" .= v1WebhookConversionClientConfig+ , "conversionReviewVersions" .= v1WebhookConversionConversionReviewVersions+ ]+++-- | Construct a value of type 'V1WebhookConversion' (by applying it's required fields, if any)+mkV1WebhookConversion+ :: [Text] -- ^ 'v1WebhookConversionConversionReviewVersions': conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.+ -> V1WebhookConversion+mkV1WebhookConversion v1WebhookConversionConversionReviewVersions =+ V1WebhookConversion+ { v1WebhookConversionClientConfig = Nothing+ , v1WebhookConversionConversionReviewVersions+ }++-- ** V1WeightedPodAffinityTerm+-- | V1WeightedPodAffinityTerm+-- The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)+data V1WeightedPodAffinityTerm = V1WeightedPodAffinityTerm+ { v1WeightedPodAffinityTermPodAffinityTerm :: !(V1PodAffinityTerm) -- ^ /Required/ "podAffinityTerm"+ , v1WeightedPodAffinityTermWeight :: !(Int) -- ^ /Required/ "weight" - weight associated with matching the corresponding podAffinityTerm, in the range 1-100.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1WeightedPodAffinityTerm+instance A.FromJSON V1WeightedPodAffinityTerm where+ parseJSON = A.withObject "V1WeightedPodAffinityTerm" $ \o ->+ V1WeightedPodAffinityTerm+ <$> (o .: "podAffinityTerm")+ <*> (o .: "weight")++-- | ToJSON V1WeightedPodAffinityTerm+instance A.ToJSON V1WeightedPodAffinityTerm where+ toJSON V1WeightedPodAffinityTerm {..} =+ _omitNulls+ [ "podAffinityTerm" .= v1WeightedPodAffinityTermPodAffinityTerm+ , "weight" .= v1WeightedPodAffinityTermWeight+ ]+++-- | Construct a value of type 'V1WeightedPodAffinityTerm' (by applying it's required fields, if any)+mkV1WeightedPodAffinityTerm+ :: V1PodAffinityTerm -- ^ 'v1WeightedPodAffinityTermPodAffinityTerm' + -> Int -- ^ 'v1WeightedPodAffinityTermWeight': weight associated with matching the corresponding podAffinityTerm, in the range 1-100.+ -> V1WeightedPodAffinityTerm+mkV1WeightedPodAffinityTerm v1WeightedPodAffinityTermPodAffinityTerm v1WeightedPodAffinityTermWeight =+ V1WeightedPodAffinityTerm+ { v1WeightedPodAffinityTermPodAffinityTerm+ , v1WeightedPodAffinityTermWeight+ }++-- ** V1WindowsSecurityContextOptions+-- | V1WindowsSecurityContextOptions+-- WindowsSecurityContextOptions contain Windows-specific options and credentials.+data V1WindowsSecurityContextOptions = V1WindowsSecurityContextOptions+ { v1WindowsSecurityContextOptionsGmsaCredentialSpec :: !(Maybe Text) -- ^ "gmsaCredentialSpec" - GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.+ , v1WindowsSecurityContextOptionsGmsaCredentialSpecName :: !(Maybe Text) -- ^ "gmsaCredentialSpecName" - GMSACredentialSpecName is the name of the GMSA credential spec to use.+ , v1WindowsSecurityContextOptionsHostProcess :: !(Maybe Bool) -- ^ "hostProcess" - HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.+ , v1WindowsSecurityContextOptionsRunAsUserName :: !(Maybe Text) -- ^ "runAsUserName" - The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1WindowsSecurityContextOptions+instance A.FromJSON V1WindowsSecurityContextOptions where+ parseJSON = A.withObject "V1WindowsSecurityContextOptions" $ \o ->+ V1WindowsSecurityContextOptions+ <$> (o .:? "gmsaCredentialSpec")+ <*> (o .:? "gmsaCredentialSpecName")+ <*> (o .:? "hostProcess")+ <*> (o .:? "runAsUserName")++-- | ToJSON V1WindowsSecurityContextOptions+instance A.ToJSON V1WindowsSecurityContextOptions where+ toJSON V1WindowsSecurityContextOptions {..} =+ _omitNulls+ [ "gmsaCredentialSpec" .= v1WindowsSecurityContextOptionsGmsaCredentialSpec+ , "gmsaCredentialSpecName" .= v1WindowsSecurityContextOptionsGmsaCredentialSpecName+ , "hostProcess" .= v1WindowsSecurityContextOptionsHostProcess+ , "runAsUserName" .= v1WindowsSecurityContextOptionsRunAsUserName+ ]+++-- | Construct a value of type 'V1WindowsSecurityContextOptions' (by applying it's required fields, if any)+mkV1WindowsSecurityContextOptions+ :: V1WindowsSecurityContextOptions+mkV1WindowsSecurityContextOptions =+ V1WindowsSecurityContextOptions+ { v1WindowsSecurityContextOptionsGmsaCredentialSpec = Nothing+ , v1WindowsSecurityContextOptionsGmsaCredentialSpecName = Nothing+ , v1WindowsSecurityContextOptionsHostProcess = Nothing+ , v1WindowsSecurityContextOptionsRunAsUserName = Nothing+ }++-- ** V1WorkloadReference+-- | V1WorkloadReference+-- WorkloadReference identifies the Workload object and PodGroup membership that a Pod belongs to. The scheduler uses this information to apply workload-aware scheduling semantics.+data V1WorkloadReference = V1WorkloadReference+ { v1WorkloadReferenceName :: !(Text) -- ^ /Required/ "name" - Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain.+ , v1WorkloadReferencePodGroup :: !(Text) -- ^ /Required/ "podGroup" - PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label.+ , v1WorkloadReferencePodGroupReplicaKey :: !(Maybe Text) -- ^ "podGroupReplicaKey" - PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1WorkloadReference+instance A.FromJSON V1WorkloadReference where+ parseJSON = A.withObject "V1WorkloadReference" $ \o ->+ V1WorkloadReference+ <$> (o .: "name")+ <*> (o .: "podGroup")+ <*> (o .:? "podGroupReplicaKey")++-- | ToJSON V1WorkloadReference+instance A.ToJSON V1WorkloadReference where+ toJSON V1WorkloadReference {..} =+ _omitNulls+ [ "name" .= v1WorkloadReferenceName+ , "podGroup" .= v1WorkloadReferencePodGroup+ , "podGroupReplicaKey" .= v1WorkloadReferencePodGroupReplicaKey+ ]+++-- | Construct a value of type 'V1WorkloadReference' (by applying it's required fields, if any)+mkV1WorkloadReference+ :: Text -- ^ 'v1WorkloadReferenceName': Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain.+ -> Text -- ^ 'v1WorkloadReferencePodGroup': PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label.+ -> V1WorkloadReference+mkV1WorkloadReference v1WorkloadReferenceName v1WorkloadReferencePodGroup =+ V1WorkloadReference+ { v1WorkloadReferenceName+ , v1WorkloadReferencePodGroup+ , v1WorkloadReferencePodGroupReplicaKey = Nothing+ }++-- ** V1alpha1ApplyConfiguration+-- | V1alpha1ApplyConfiguration+-- ApplyConfiguration defines the desired configuration values of an object.+data V1alpha1ApplyConfiguration = V1alpha1ApplyConfiguration+ { v1alpha1ApplyConfigurationExpression :: !(Maybe Text) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1ApplyConfiguration+instance A.FromJSON V1alpha1ApplyConfiguration where+ parseJSON = A.withObject "V1alpha1ApplyConfiguration" $ \o ->+ V1alpha1ApplyConfiguration+ <$> (o .:? "expression")++-- | ToJSON V1alpha1ApplyConfiguration+instance A.ToJSON V1alpha1ApplyConfiguration where+ toJSON V1alpha1ApplyConfiguration {..} =+ _omitNulls+ [ "expression" .= v1alpha1ApplyConfigurationExpression+ ]+++-- | Construct a value of type 'V1alpha1ApplyConfiguration' (by applying it's required fields, if any)+mkV1alpha1ApplyConfiguration+ :: V1alpha1ApplyConfiguration+mkV1alpha1ApplyConfiguration =+ V1alpha1ApplyConfiguration+ { v1alpha1ApplyConfigurationExpression = Nothing+ }++-- ** V1alpha1ClusterTrustBundle+-- | V1alpha1ClusterTrustBundle+-- ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates). ClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to. It can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.+data V1alpha1ClusterTrustBundle = V1alpha1ClusterTrustBundle+ { v1alpha1ClusterTrustBundleApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1ClusterTrustBundleKind :: !(Maybe Text) -- ^ "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+ , v1alpha1ClusterTrustBundleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1alpha1ClusterTrustBundleSpec :: !(V1alpha1ClusterTrustBundleSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1ClusterTrustBundle+instance A.FromJSON V1alpha1ClusterTrustBundle where+ parseJSON = A.withObject "V1alpha1ClusterTrustBundle" $ \o ->+ V1alpha1ClusterTrustBundle+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1alpha1ClusterTrustBundle+instance A.ToJSON V1alpha1ClusterTrustBundle where+ toJSON V1alpha1ClusterTrustBundle {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1ClusterTrustBundleApiVersion+ , "kind" .= v1alpha1ClusterTrustBundleKind+ , "metadata" .= v1alpha1ClusterTrustBundleMetadata+ , "spec" .= v1alpha1ClusterTrustBundleSpec+ ]+++-- | Construct a value of type 'V1alpha1ClusterTrustBundle' (by applying it's required fields, if any)+mkV1alpha1ClusterTrustBundle+ :: V1alpha1ClusterTrustBundleSpec -- ^ 'v1alpha1ClusterTrustBundleSpec' + -> V1alpha1ClusterTrustBundle+mkV1alpha1ClusterTrustBundle v1alpha1ClusterTrustBundleSpec =+ V1alpha1ClusterTrustBundle+ { v1alpha1ClusterTrustBundleApiVersion = Nothing+ , v1alpha1ClusterTrustBundleKind = Nothing+ , v1alpha1ClusterTrustBundleMetadata = Nothing+ , v1alpha1ClusterTrustBundleSpec+ }++-- ** V1alpha1ClusterTrustBundleList+-- | V1alpha1ClusterTrustBundleList+-- ClusterTrustBundleList is a collection of ClusterTrustBundle objects+data V1alpha1ClusterTrustBundleList = V1alpha1ClusterTrustBundleList+ { v1alpha1ClusterTrustBundleListApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1ClusterTrustBundleListItems :: !([V1alpha1ClusterTrustBundle]) -- ^ /Required/ "items" - items is a collection of ClusterTrustBundle objects+ , v1alpha1ClusterTrustBundleListKind :: !(Maybe Text) -- ^ "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+ , v1alpha1ClusterTrustBundleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1ClusterTrustBundleList+instance A.FromJSON V1alpha1ClusterTrustBundleList where+ parseJSON = A.withObject "V1alpha1ClusterTrustBundleList" $ \o ->+ V1alpha1ClusterTrustBundleList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1alpha1ClusterTrustBundleList+instance A.ToJSON V1alpha1ClusterTrustBundleList where+ toJSON V1alpha1ClusterTrustBundleList {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1ClusterTrustBundleListApiVersion+ , "items" .= v1alpha1ClusterTrustBundleListItems+ , "kind" .= v1alpha1ClusterTrustBundleListKind+ , "metadata" .= v1alpha1ClusterTrustBundleListMetadata+ ]+++-- | Construct a value of type 'V1alpha1ClusterTrustBundleList' (by applying it's required fields, if any)+mkV1alpha1ClusterTrustBundleList+ :: [V1alpha1ClusterTrustBundle] -- ^ 'v1alpha1ClusterTrustBundleListItems': items is a collection of ClusterTrustBundle objects+ -> V1alpha1ClusterTrustBundleList+mkV1alpha1ClusterTrustBundleList v1alpha1ClusterTrustBundleListItems =+ V1alpha1ClusterTrustBundleList+ { v1alpha1ClusterTrustBundleListApiVersion = Nothing+ , v1alpha1ClusterTrustBundleListItems+ , v1alpha1ClusterTrustBundleListKind = Nothing+ , v1alpha1ClusterTrustBundleListMetadata = Nothing+ }++-- ** V1alpha1ClusterTrustBundleSpec+-- | V1alpha1ClusterTrustBundleSpec+-- ClusterTrustBundleSpec contains the signer and trust anchors.+data V1alpha1ClusterTrustBundleSpec = V1alpha1ClusterTrustBundleSpec+ { v1alpha1ClusterTrustBundleSpecSignerName :: !(Maybe Text) -- ^ "signerName" - signerName indicates the associated signer, if any. In order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName=<the signer name> verb=attest. If signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`. If signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix. List/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.+ , v1alpha1ClusterTrustBundleSpecTrustBundle :: !(Text) -- ^ /Required/ "trustBundle" - trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1ClusterTrustBundleSpec+instance A.FromJSON V1alpha1ClusterTrustBundleSpec where+ parseJSON = A.withObject "V1alpha1ClusterTrustBundleSpec" $ \o ->+ V1alpha1ClusterTrustBundleSpec+ <$> (o .:? "signerName")+ <*> (o .: "trustBundle")++-- | ToJSON V1alpha1ClusterTrustBundleSpec+instance A.ToJSON V1alpha1ClusterTrustBundleSpec where+ toJSON V1alpha1ClusterTrustBundleSpec {..} =+ _omitNulls+ [ "signerName" .= v1alpha1ClusterTrustBundleSpecSignerName+ , "trustBundle" .= v1alpha1ClusterTrustBundleSpecTrustBundle+ ]+++-- | Construct a value of type 'V1alpha1ClusterTrustBundleSpec' (by applying it's required fields, if any)+mkV1alpha1ClusterTrustBundleSpec+ :: Text -- ^ 'v1alpha1ClusterTrustBundleSpecTrustBundle': trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.+ -> V1alpha1ClusterTrustBundleSpec+mkV1alpha1ClusterTrustBundleSpec v1alpha1ClusterTrustBundleSpecTrustBundle =+ V1alpha1ClusterTrustBundleSpec+ { v1alpha1ClusterTrustBundleSpecSignerName = Nothing+ , v1alpha1ClusterTrustBundleSpecTrustBundle+ }++-- ** V1alpha1GangSchedulingPolicy+-- | V1alpha1GangSchedulingPolicy+-- GangSchedulingPolicy defines the parameters for gang scheduling.+data V1alpha1GangSchedulingPolicy = V1alpha1GangSchedulingPolicy+ { v1alpha1GangSchedulingPolicyMinCount :: !(Int) -- ^ /Required/ "minCount" - MinCount is the minimum number of pods that must be schedulable or scheduled at the same time for the scheduler to admit the entire group. It must be a positive integer.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1GangSchedulingPolicy+instance A.FromJSON V1alpha1GangSchedulingPolicy where+ parseJSON = A.withObject "V1alpha1GangSchedulingPolicy" $ \o ->+ V1alpha1GangSchedulingPolicy+ <$> (o .: "minCount")++-- | ToJSON V1alpha1GangSchedulingPolicy+instance A.ToJSON V1alpha1GangSchedulingPolicy where+ toJSON V1alpha1GangSchedulingPolicy {..} =+ _omitNulls+ [ "minCount" .= v1alpha1GangSchedulingPolicyMinCount+ ]+++-- | Construct a value of type 'V1alpha1GangSchedulingPolicy' (by applying it's required fields, if any)+mkV1alpha1GangSchedulingPolicy+ :: Int -- ^ 'v1alpha1GangSchedulingPolicyMinCount': MinCount is the minimum number of pods that must be schedulable or scheduled at the same time for the scheduler to admit the entire group. It must be a positive integer.+ -> V1alpha1GangSchedulingPolicy+mkV1alpha1GangSchedulingPolicy v1alpha1GangSchedulingPolicyMinCount =+ V1alpha1GangSchedulingPolicy+ { v1alpha1GangSchedulingPolicyMinCount+ }++-- ** V1alpha1JSONPatch+-- | V1alpha1JSONPatch+-- JSONPatch defines a JSON Patch.+data V1alpha1JSONPatch = V1alpha1JSONPatch+ { v1alpha1JSONPatchExpression :: !(Maybe Text) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1JSONPatch+instance A.FromJSON V1alpha1JSONPatch where+ parseJSON = A.withObject "V1alpha1JSONPatch" $ \o ->+ V1alpha1JSONPatch+ <$> (o .:? "expression")++-- | ToJSON V1alpha1JSONPatch+instance A.ToJSON V1alpha1JSONPatch where+ toJSON V1alpha1JSONPatch {..} =+ _omitNulls+ [ "expression" .= v1alpha1JSONPatchExpression+ ]+++-- | Construct a value of type 'V1alpha1JSONPatch' (by applying it's required fields, if any)+mkV1alpha1JSONPatch+ :: V1alpha1JSONPatch+mkV1alpha1JSONPatch =+ V1alpha1JSONPatch+ { v1alpha1JSONPatchExpression = Nothing+ }++-- ** V1alpha1MatchCondition+-- | V1alpha1MatchCondition+data V1alpha1MatchCondition = V1alpha1MatchCondition+ { v1alpha1MatchConditionExpression :: !(Text) -- ^ /Required/ "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.+ , v1alpha1MatchConditionName :: !(Text) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1MatchCondition+instance A.FromJSON V1alpha1MatchCondition where+ parseJSON = A.withObject "V1alpha1MatchCondition" $ \o ->+ V1alpha1MatchCondition+ <$> (o .: "expression")+ <*> (o .: "name")++-- | ToJSON V1alpha1MatchCondition+instance A.ToJSON V1alpha1MatchCondition where+ toJSON V1alpha1MatchCondition {..} =+ _omitNulls+ [ "expression" .= v1alpha1MatchConditionExpression+ , "name" .= v1alpha1MatchConditionName+ ]+++-- | Construct a value of type 'V1alpha1MatchCondition' (by applying it's required fields, if any)+mkV1alpha1MatchCondition+ :: Text -- ^ 'v1alpha1MatchConditionExpression': 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.+ -> Text -- ^ 'v1alpha1MatchConditionName': 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.+ -> V1alpha1MatchCondition+mkV1alpha1MatchCondition v1alpha1MatchConditionExpression v1alpha1MatchConditionName =+ V1alpha1MatchCondition+ { v1alpha1MatchConditionExpression+ , v1alpha1MatchConditionName+ }++-- ** V1alpha1MatchResources+-- | V1alpha1MatchResources+-- 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)+data V1alpha1MatchResources = V1alpha1MatchResources+ { v1alpha1MatchResourcesExcludeResourceRules :: !(Maybe [V1alpha1NamedRuleWithOperations]) -- ^ "excludeResourceRules" - ExcludeResourceRules describes what operations on what resources/subresources the policy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)+ , v1alpha1MatchResourcesMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - 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\"]`, the admission policy does not consider requests to apps/v1beta1 or extensions/v1beta1 API groups. - 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\"]`, the admission policy **does** consider requests made to apps/v1beta1 or extensions/v1beta1 API groups. The API server translates the request to a matched resource API if necessary. Defaults to \"Equivalent\"+ , v1alpha1MatchResourcesNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"+ , v1alpha1MatchResourcesObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"+ , v1alpha1MatchResourcesResourceRules :: !(Maybe [V1alpha1NamedRuleWithOperations]) -- ^ "resourceRules" - ResourceRules describes what operations on what resources/subresources the admission policy matches. The policy cares about an operation if it matches _any_ Rule.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1MatchResources+instance A.FromJSON V1alpha1MatchResources where+ parseJSON = A.withObject "V1alpha1MatchResources" $ \o ->+ V1alpha1MatchResources+ <$> (o .:? "excludeResourceRules")+ <*> (o .:? "matchPolicy")+ <*> (o .:? "namespaceSelector")+ <*> (o .:? "objectSelector")+ <*> (o .:? "resourceRules")++-- | ToJSON V1alpha1MatchResources+instance A.ToJSON V1alpha1MatchResources where+ toJSON V1alpha1MatchResources {..} =+ _omitNulls+ [ "excludeResourceRules" .= v1alpha1MatchResourcesExcludeResourceRules+ , "matchPolicy" .= v1alpha1MatchResourcesMatchPolicy+ , "namespaceSelector" .= v1alpha1MatchResourcesNamespaceSelector+ , "objectSelector" .= v1alpha1MatchResourcesObjectSelector+ , "resourceRules" .= v1alpha1MatchResourcesResourceRules+ ]+++-- | Construct a value of type 'V1alpha1MatchResources' (by applying it's required fields, if any)+mkV1alpha1MatchResources+ :: V1alpha1MatchResources+mkV1alpha1MatchResources =+ V1alpha1MatchResources+ { v1alpha1MatchResourcesExcludeResourceRules = Nothing+ , v1alpha1MatchResourcesMatchPolicy = Nothing+ , v1alpha1MatchResourcesNamespaceSelector = Nothing+ , v1alpha1MatchResourcesObjectSelector = Nothing+ , v1alpha1MatchResourcesResourceRules = Nothing+ }++-- ** V1alpha1MutatingAdmissionPolicy+-- | V1alpha1MutatingAdmissionPolicy+-- MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.+data V1alpha1MutatingAdmissionPolicy = V1alpha1MutatingAdmissionPolicy+ { v1alpha1MutatingAdmissionPolicyApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1MutatingAdmissionPolicyKind :: !(Maybe Text) -- ^ "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+ , v1alpha1MutatingAdmissionPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1alpha1MutatingAdmissionPolicySpec :: !(Maybe V1alpha1MutatingAdmissionPolicySpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1MutatingAdmissionPolicy+instance A.FromJSON V1alpha1MutatingAdmissionPolicy where+ parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicy" $ \o ->+ V1alpha1MutatingAdmissionPolicy+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1alpha1MutatingAdmissionPolicy+instance A.ToJSON V1alpha1MutatingAdmissionPolicy where+ toJSON V1alpha1MutatingAdmissionPolicy {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1MutatingAdmissionPolicyApiVersion+ , "kind" .= v1alpha1MutatingAdmissionPolicyKind+ , "metadata" .= v1alpha1MutatingAdmissionPolicyMetadata+ , "spec" .= v1alpha1MutatingAdmissionPolicySpec+ ]+++-- | Construct a value of type 'V1alpha1MutatingAdmissionPolicy' (by applying it's required fields, if any)+mkV1alpha1MutatingAdmissionPolicy+ :: V1alpha1MutatingAdmissionPolicy+mkV1alpha1MutatingAdmissionPolicy =+ V1alpha1MutatingAdmissionPolicy+ { v1alpha1MutatingAdmissionPolicyApiVersion = Nothing+ , v1alpha1MutatingAdmissionPolicyKind = Nothing+ , v1alpha1MutatingAdmissionPolicyMetadata = Nothing+ , v1alpha1MutatingAdmissionPolicySpec = Nothing+ }++-- ** V1alpha1MutatingAdmissionPolicyBinding+-- | V1alpha1MutatingAdmissionPolicyBinding+-- 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.+data V1alpha1MutatingAdmissionPolicyBinding = V1alpha1MutatingAdmissionPolicyBinding+ { v1alpha1MutatingAdmissionPolicyBindingApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1MutatingAdmissionPolicyBindingKind :: !(Maybe Text) -- ^ "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+ , v1alpha1MutatingAdmissionPolicyBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1alpha1MutatingAdmissionPolicyBindingSpec :: !(Maybe V1alpha1MutatingAdmissionPolicyBindingSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1MutatingAdmissionPolicyBinding+instance A.FromJSON V1alpha1MutatingAdmissionPolicyBinding where+ parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicyBinding" $ \o ->+ V1alpha1MutatingAdmissionPolicyBinding+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1alpha1MutatingAdmissionPolicyBinding+instance A.ToJSON V1alpha1MutatingAdmissionPolicyBinding where+ toJSON V1alpha1MutatingAdmissionPolicyBinding {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1MutatingAdmissionPolicyBindingApiVersion+ , "kind" .= v1alpha1MutatingAdmissionPolicyBindingKind+ , "metadata" .= v1alpha1MutatingAdmissionPolicyBindingMetadata+ , "spec" .= v1alpha1MutatingAdmissionPolicyBindingSpec+ ]+++-- | Construct a value of type 'V1alpha1MutatingAdmissionPolicyBinding' (by applying it's required fields, if any)+mkV1alpha1MutatingAdmissionPolicyBinding+ :: V1alpha1MutatingAdmissionPolicyBinding+mkV1alpha1MutatingAdmissionPolicyBinding =+ V1alpha1MutatingAdmissionPolicyBinding+ { v1alpha1MutatingAdmissionPolicyBindingApiVersion = Nothing+ , v1alpha1MutatingAdmissionPolicyBindingKind = Nothing+ , v1alpha1MutatingAdmissionPolicyBindingMetadata = Nothing+ , v1alpha1MutatingAdmissionPolicyBindingSpec = Nothing+ }++-- ** V1alpha1MutatingAdmissionPolicyBindingList+-- | V1alpha1MutatingAdmissionPolicyBindingList+-- MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.+data V1alpha1MutatingAdmissionPolicyBindingList = V1alpha1MutatingAdmissionPolicyBindingList+ { v1alpha1MutatingAdmissionPolicyBindingListApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1MutatingAdmissionPolicyBindingListItems :: !([V1alpha1MutatingAdmissionPolicyBinding]) -- ^ /Required/ "items" - List of PolicyBinding.+ , v1alpha1MutatingAdmissionPolicyBindingListKind :: !(Maybe Text) -- ^ "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+ , v1alpha1MutatingAdmissionPolicyBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1MutatingAdmissionPolicyBindingList+instance A.FromJSON V1alpha1MutatingAdmissionPolicyBindingList where+ parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicyBindingList" $ \o ->+ V1alpha1MutatingAdmissionPolicyBindingList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1alpha1MutatingAdmissionPolicyBindingList+instance A.ToJSON V1alpha1MutatingAdmissionPolicyBindingList where+ toJSON V1alpha1MutatingAdmissionPolicyBindingList {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1MutatingAdmissionPolicyBindingListApiVersion+ , "items" .= v1alpha1MutatingAdmissionPolicyBindingListItems+ , "kind" .= v1alpha1MutatingAdmissionPolicyBindingListKind+ , "metadata" .= v1alpha1MutatingAdmissionPolicyBindingListMetadata+ ]+++-- | Construct a value of type 'V1alpha1MutatingAdmissionPolicyBindingList' (by applying it's required fields, if any)+mkV1alpha1MutatingAdmissionPolicyBindingList+ :: [V1alpha1MutatingAdmissionPolicyBinding] -- ^ 'v1alpha1MutatingAdmissionPolicyBindingListItems': List of PolicyBinding.+ -> V1alpha1MutatingAdmissionPolicyBindingList+mkV1alpha1MutatingAdmissionPolicyBindingList v1alpha1MutatingAdmissionPolicyBindingListItems =+ V1alpha1MutatingAdmissionPolicyBindingList+ { v1alpha1MutatingAdmissionPolicyBindingListApiVersion = Nothing+ , v1alpha1MutatingAdmissionPolicyBindingListItems+ , v1alpha1MutatingAdmissionPolicyBindingListKind = Nothing+ , v1alpha1MutatingAdmissionPolicyBindingListMetadata = Nothing+ }++-- ** V1alpha1MutatingAdmissionPolicyBindingSpec+-- | V1alpha1MutatingAdmissionPolicyBindingSpec+-- MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.+data V1alpha1MutatingAdmissionPolicyBindingSpec = V1alpha1MutatingAdmissionPolicyBindingSpec+ { v1alpha1MutatingAdmissionPolicyBindingSpecMatchResources :: !(Maybe V1alpha1MatchResources) -- ^ "matchResources"+ , v1alpha1MutatingAdmissionPolicyBindingSpecParamRef :: !(Maybe V1alpha1ParamRef) -- ^ "paramRef"+ , v1alpha1MutatingAdmissionPolicyBindingSpecPolicyName :: !(Maybe Text) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1MutatingAdmissionPolicyBindingSpec+instance A.FromJSON V1alpha1MutatingAdmissionPolicyBindingSpec where+ parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicyBindingSpec" $ \o ->+ V1alpha1MutatingAdmissionPolicyBindingSpec+ <$> (o .:? "matchResources")+ <*> (o .:? "paramRef")+ <*> (o .:? "policyName")++-- | ToJSON V1alpha1MutatingAdmissionPolicyBindingSpec+instance A.ToJSON V1alpha1MutatingAdmissionPolicyBindingSpec where+ toJSON V1alpha1MutatingAdmissionPolicyBindingSpec {..} =+ _omitNulls+ [ "matchResources" .= v1alpha1MutatingAdmissionPolicyBindingSpecMatchResources+ , "paramRef" .= v1alpha1MutatingAdmissionPolicyBindingSpecParamRef+ , "policyName" .= v1alpha1MutatingAdmissionPolicyBindingSpecPolicyName+ ]+++-- | Construct a value of type 'V1alpha1MutatingAdmissionPolicyBindingSpec' (by applying it's required fields, if any)+mkV1alpha1MutatingAdmissionPolicyBindingSpec+ :: V1alpha1MutatingAdmissionPolicyBindingSpec+mkV1alpha1MutatingAdmissionPolicyBindingSpec =+ V1alpha1MutatingAdmissionPolicyBindingSpec+ { v1alpha1MutatingAdmissionPolicyBindingSpecMatchResources = Nothing+ , v1alpha1MutatingAdmissionPolicyBindingSpecParamRef = Nothing+ , v1alpha1MutatingAdmissionPolicyBindingSpecPolicyName = Nothing+ }++-- ** V1alpha1MutatingAdmissionPolicyList+-- | V1alpha1MutatingAdmissionPolicyList+-- MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.+data V1alpha1MutatingAdmissionPolicyList = V1alpha1MutatingAdmissionPolicyList+ { v1alpha1MutatingAdmissionPolicyListApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1MutatingAdmissionPolicyListItems :: !([V1alpha1MutatingAdmissionPolicy]) -- ^ /Required/ "items" - List of ValidatingAdmissionPolicy.+ , v1alpha1MutatingAdmissionPolicyListKind :: !(Maybe Text) -- ^ "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+ , v1alpha1MutatingAdmissionPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1MutatingAdmissionPolicyList+instance A.FromJSON V1alpha1MutatingAdmissionPolicyList where+ parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicyList" $ \o ->+ V1alpha1MutatingAdmissionPolicyList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1alpha1MutatingAdmissionPolicyList+instance A.ToJSON V1alpha1MutatingAdmissionPolicyList where+ toJSON V1alpha1MutatingAdmissionPolicyList {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1MutatingAdmissionPolicyListApiVersion+ , "items" .= v1alpha1MutatingAdmissionPolicyListItems+ , "kind" .= v1alpha1MutatingAdmissionPolicyListKind+ , "metadata" .= v1alpha1MutatingAdmissionPolicyListMetadata+ ]+++-- | Construct a value of type 'V1alpha1MutatingAdmissionPolicyList' (by applying it's required fields, if any)+mkV1alpha1MutatingAdmissionPolicyList+ :: [V1alpha1MutatingAdmissionPolicy] -- ^ 'v1alpha1MutatingAdmissionPolicyListItems': List of ValidatingAdmissionPolicy.+ -> V1alpha1MutatingAdmissionPolicyList+mkV1alpha1MutatingAdmissionPolicyList v1alpha1MutatingAdmissionPolicyListItems =+ V1alpha1MutatingAdmissionPolicyList+ { v1alpha1MutatingAdmissionPolicyListApiVersion = Nothing+ , v1alpha1MutatingAdmissionPolicyListItems+ , v1alpha1MutatingAdmissionPolicyListKind = Nothing+ , v1alpha1MutatingAdmissionPolicyListMetadata = Nothing+ }++-- ** V1alpha1MutatingAdmissionPolicySpec+-- | V1alpha1MutatingAdmissionPolicySpec+-- MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.+data V1alpha1MutatingAdmissionPolicySpec = V1alpha1MutatingAdmissionPolicySpec+ { v1alpha1MutatingAdmissionPolicySpecFailurePolicy :: !(Maybe Text) -- ^ "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.+ , v1alpha1MutatingAdmissionPolicySpecMatchConditions :: !(Maybe [V1alpha1MatchCondition]) -- ^ "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+ , v1alpha1MutatingAdmissionPolicySpecMatchConstraints :: !(Maybe V1alpha1MatchResources) -- ^ "matchConstraints"+ , v1alpha1MutatingAdmissionPolicySpecMutations :: !(Maybe [V1alpha1Mutation]) -- ^ "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.+ , v1alpha1MutatingAdmissionPolicySpecParamKind :: !(Maybe V1alpha1ParamKind) -- ^ "paramKind"+ , v1alpha1MutatingAdmissionPolicySpecReinvocationPolicy :: !(Maybe Text) -- ^ "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.+ , v1alpha1MutatingAdmissionPolicySpecVariables :: !(Maybe [V1alpha1Variable]) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1MutatingAdmissionPolicySpec+instance A.FromJSON V1alpha1MutatingAdmissionPolicySpec where+ parseJSON = A.withObject "V1alpha1MutatingAdmissionPolicySpec" $ \o ->+ V1alpha1MutatingAdmissionPolicySpec+ <$> (o .:? "failurePolicy")+ <*> (o .:? "matchConditions")+ <*> (o .:? "matchConstraints")+ <*> (o .:? "mutations")+ <*> (o .:? "paramKind")+ <*> (o .:? "reinvocationPolicy")+ <*> (o .:? "variables")++-- | ToJSON V1alpha1MutatingAdmissionPolicySpec+instance A.ToJSON V1alpha1MutatingAdmissionPolicySpec where+ toJSON V1alpha1MutatingAdmissionPolicySpec {..} =+ _omitNulls+ [ "failurePolicy" .= v1alpha1MutatingAdmissionPolicySpecFailurePolicy+ , "matchConditions" .= v1alpha1MutatingAdmissionPolicySpecMatchConditions+ , "matchConstraints" .= v1alpha1MutatingAdmissionPolicySpecMatchConstraints+ , "mutations" .= v1alpha1MutatingAdmissionPolicySpecMutations+ , "paramKind" .= v1alpha1MutatingAdmissionPolicySpecParamKind+ , "reinvocationPolicy" .= v1alpha1MutatingAdmissionPolicySpecReinvocationPolicy+ , "variables" .= v1alpha1MutatingAdmissionPolicySpecVariables+ ]+++-- | Construct a value of type 'V1alpha1MutatingAdmissionPolicySpec' (by applying it's required fields, if any)+mkV1alpha1MutatingAdmissionPolicySpec+ :: V1alpha1MutatingAdmissionPolicySpec+mkV1alpha1MutatingAdmissionPolicySpec =+ V1alpha1MutatingAdmissionPolicySpec+ { v1alpha1MutatingAdmissionPolicySpecFailurePolicy = Nothing+ , v1alpha1MutatingAdmissionPolicySpecMatchConditions = Nothing+ , v1alpha1MutatingAdmissionPolicySpecMatchConstraints = Nothing+ , v1alpha1MutatingAdmissionPolicySpecMutations = Nothing+ , v1alpha1MutatingAdmissionPolicySpecParamKind = Nothing+ , v1alpha1MutatingAdmissionPolicySpecReinvocationPolicy = Nothing+ , v1alpha1MutatingAdmissionPolicySpecVariables = Nothing+ }++-- ** V1alpha1Mutation+-- | V1alpha1Mutation+-- Mutation specifies the CEL expression which is used to apply the Mutation.+data V1alpha1Mutation = V1alpha1Mutation+ { v1alpha1MutationApplyConfiguration :: !(Maybe V1alpha1ApplyConfiguration) -- ^ "applyConfiguration"+ , v1alpha1MutationJsonPatch :: !(Maybe V1alpha1JSONPatch) -- ^ "jsonPatch"+ , v1alpha1MutationPatchType :: !(Text) -- ^ /Required/ "patchType" - patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1Mutation+instance A.FromJSON V1alpha1Mutation where+ parseJSON = A.withObject "V1alpha1Mutation" $ \o ->+ V1alpha1Mutation+ <$> (o .:? "applyConfiguration")+ <*> (o .:? "jsonPatch")+ <*> (o .: "patchType")++-- | ToJSON V1alpha1Mutation+instance A.ToJSON V1alpha1Mutation where+ toJSON V1alpha1Mutation {..} =+ _omitNulls+ [ "applyConfiguration" .= v1alpha1MutationApplyConfiguration+ , "jsonPatch" .= v1alpha1MutationJsonPatch+ , "patchType" .= v1alpha1MutationPatchType+ ]+++-- | Construct a value of type 'V1alpha1Mutation' (by applying it's required fields, if any)+mkV1alpha1Mutation+ :: Text -- ^ 'v1alpha1MutationPatchType': patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.+ -> V1alpha1Mutation+mkV1alpha1Mutation v1alpha1MutationPatchType =+ V1alpha1Mutation+ { v1alpha1MutationApplyConfiguration = Nothing+ , v1alpha1MutationJsonPatch = Nothing+ , v1alpha1MutationPatchType+ }++-- ** V1alpha1NamedRuleWithOperations+-- | V1alpha1NamedRuleWithOperations+-- NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.+data V1alpha1NamedRuleWithOperations = V1alpha1NamedRuleWithOperations+ { v1alpha1NamedRuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.+ , v1alpha1NamedRuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.+ , v1alpha1NamedRuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - 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.+ , v1alpha1NamedRuleWithOperationsResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.+ , v1alpha1NamedRuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - 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.+ , v1alpha1NamedRuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - 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 \"*\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1NamedRuleWithOperations+instance A.FromJSON V1alpha1NamedRuleWithOperations where+ parseJSON = A.withObject "V1alpha1NamedRuleWithOperations" $ \o ->+ V1alpha1NamedRuleWithOperations+ <$> (o .:? "apiGroups")+ <*> (o .:? "apiVersions")+ <*> (o .:? "operations")+ <*> (o .:? "resourceNames")+ <*> (o .:? "resources")+ <*> (o .:? "scope")++-- | ToJSON V1alpha1NamedRuleWithOperations+instance A.ToJSON V1alpha1NamedRuleWithOperations where+ toJSON V1alpha1NamedRuleWithOperations {..} =+ _omitNulls+ [ "apiGroups" .= v1alpha1NamedRuleWithOperationsApiGroups+ , "apiVersions" .= v1alpha1NamedRuleWithOperationsApiVersions+ , "operations" .= v1alpha1NamedRuleWithOperationsOperations+ , "resourceNames" .= v1alpha1NamedRuleWithOperationsResourceNames+ , "resources" .= v1alpha1NamedRuleWithOperationsResources+ , "scope" .= v1alpha1NamedRuleWithOperationsScope+ ]+++-- | Construct a value of type 'V1alpha1NamedRuleWithOperations' (by applying it's required fields, if any)+mkV1alpha1NamedRuleWithOperations+ :: V1alpha1NamedRuleWithOperations+mkV1alpha1NamedRuleWithOperations =+ V1alpha1NamedRuleWithOperations+ { v1alpha1NamedRuleWithOperationsApiGroups = Nothing+ , v1alpha1NamedRuleWithOperationsApiVersions = Nothing+ , v1alpha1NamedRuleWithOperationsOperations = Nothing+ , v1alpha1NamedRuleWithOperationsResourceNames = Nothing+ , v1alpha1NamedRuleWithOperationsResources = Nothing+ , v1alpha1NamedRuleWithOperationsScope = Nothing+ }++-- ** V1alpha1ParamKind+-- | V1alpha1ParamKind+-- ParamKind is a tuple of Group Kind and Version.+data V1alpha1ParamKind = V1alpha1ParamKind+ { v1alpha1ParamKindApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.+ , v1alpha1ParamKindKind :: !(Maybe Text) -- ^ "kind" - Kind is the API kind the resources belong to. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1ParamKind+instance A.FromJSON V1alpha1ParamKind where+ parseJSON = A.withObject "V1alpha1ParamKind" $ \o ->+ V1alpha1ParamKind+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")++-- | ToJSON V1alpha1ParamKind+instance A.ToJSON V1alpha1ParamKind where+ toJSON V1alpha1ParamKind {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1ParamKindApiVersion+ , "kind" .= v1alpha1ParamKindKind+ ]+++-- | Construct a value of type 'V1alpha1ParamKind' (by applying it's required fields, if any)+mkV1alpha1ParamKind+ :: V1alpha1ParamKind+mkV1alpha1ParamKind =+ V1alpha1ParamKind+ { v1alpha1ParamKindApiVersion = Nothing+ , v1alpha1ParamKindKind = Nothing+ }++-- ** V1alpha1ParamRef+-- | V1alpha1ParamRef+-- ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.+data V1alpha1ParamRef = V1alpha1ParamRef+ { v1alpha1ParamRefName :: !(Maybe Text) -- ^ "name" - `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.+ , v1alpha1ParamRefNamespace :: !(Maybe Text) -- ^ "namespace" - 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.+ , v1alpha1ParamRefParameterNotFoundAction :: !(Maybe Text) -- ^ "parameterNotFoundAction" - `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`+ , v1alpha1ParamRefSelector :: !(Maybe V1LabelSelector) -- ^ "selector"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1ParamRef+instance A.FromJSON V1alpha1ParamRef where+ parseJSON = A.withObject "V1alpha1ParamRef" $ \o ->+ V1alpha1ParamRef+ <$> (o .:? "name")+ <*> (o .:? "namespace")+ <*> (o .:? "parameterNotFoundAction")+ <*> (o .:? "selector")++-- | ToJSON V1alpha1ParamRef+instance A.ToJSON V1alpha1ParamRef where+ toJSON V1alpha1ParamRef {..} =+ _omitNulls+ [ "name" .= v1alpha1ParamRefName+ , "namespace" .= v1alpha1ParamRefNamespace+ , "parameterNotFoundAction" .= v1alpha1ParamRefParameterNotFoundAction+ , "selector" .= v1alpha1ParamRefSelector+ ]+++-- | Construct a value of type 'V1alpha1ParamRef' (by applying it's required fields, if any)+mkV1alpha1ParamRef+ :: V1alpha1ParamRef+mkV1alpha1ParamRef =+ V1alpha1ParamRef+ { v1alpha1ParamRefName = Nothing+ , v1alpha1ParamRefNamespace = Nothing+ , v1alpha1ParamRefParameterNotFoundAction = Nothing+ , v1alpha1ParamRefSelector = Nothing+ }++-- ** V1alpha1PodGroup+-- | V1alpha1PodGroup+-- PodGroup represents a set of pods with a common scheduling policy.+data V1alpha1PodGroup = V1alpha1PodGroup+ { v1alpha1PodGroupName :: !(Text) -- ^ /Required/ "name" - Name is a unique identifier for the PodGroup within the Workload. It must be a DNS label. This field is immutable.+ , v1alpha1PodGroupPolicy :: !(V1alpha1PodGroupPolicy) -- ^ /Required/ "policy"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1PodGroup+instance A.FromJSON V1alpha1PodGroup where+ parseJSON = A.withObject "V1alpha1PodGroup" $ \o ->+ V1alpha1PodGroup+ <$> (o .: "name")+ <*> (o .: "policy")++-- | ToJSON V1alpha1PodGroup+instance A.ToJSON V1alpha1PodGroup where+ toJSON V1alpha1PodGroup {..} =+ _omitNulls+ [ "name" .= v1alpha1PodGroupName+ , "policy" .= v1alpha1PodGroupPolicy+ ]+++-- | Construct a value of type 'V1alpha1PodGroup' (by applying it's required fields, if any)+mkV1alpha1PodGroup+ :: Text -- ^ 'v1alpha1PodGroupName': Name is a unique identifier for the PodGroup within the Workload. It must be a DNS label. This field is immutable.+ -> V1alpha1PodGroupPolicy -- ^ 'v1alpha1PodGroupPolicy' + -> V1alpha1PodGroup+mkV1alpha1PodGroup v1alpha1PodGroupName v1alpha1PodGroupPolicy =+ V1alpha1PodGroup+ { v1alpha1PodGroupName+ , v1alpha1PodGroupPolicy+ }++-- ** V1alpha1PodGroupPolicy+-- | V1alpha1PodGroupPolicy+-- PodGroupPolicy defines the scheduling configuration for a PodGroup.+data V1alpha1PodGroupPolicy = V1alpha1PodGroupPolicy+ { v1alpha1PodGroupPolicyBasic :: !(Maybe A.Value) -- ^ "basic" - Basic specifies that the pods in this group should be scheduled using standard Kubernetes scheduling behavior.+ , v1alpha1PodGroupPolicyGang :: !(Maybe V1alpha1GangSchedulingPolicy) -- ^ "gang"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1PodGroupPolicy+instance A.FromJSON V1alpha1PodGroupPolicy where+ parseJSON = A.withObject "V1alpha1PodGroupPolicy" $ \o ->+ V1alpha1PodGroupPolicy+ <$> (o .:? "basic")+ <*> (o .:? "gang")++-- | ToJSON V1alpha1PodGroupPolicy+instance A.ToJSON V1alpha1PodGroupPolicy where+ toJSON V1alpha1PodGroupPolicy {..} =+ _omitNulls+ [ "basic" .= v1alpha1PodGroupPolicyBasic+ , "gang" .= v1alpha1PodGroupPolicyGang+ ]+++-- | Construct a value of type 'V1alpha1PodGroupPolicy' (by applying it's required fields, if any)+mkV1alpha1PodGroupPolicy+ :: V1alpha1PodGroupPolicy+mkV1alpha1PodGroupPolicy =+ V1alpha1PodGroupPolicy+ { v1alpha1PodGroupPolicyBasic = Nothing+ , v1alpha1PodGroupPolicyGang = Nothing+ }++-- ** V1alpha1ServerStorageVersion+-- | V1alpha1ServerStorageVersion+-- An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.+data V1alpha1ServerStorageVersion = V1alpha1ServerStorageVersion+ { v1alpha1ServerStorageVersionApiServerId :: !(Maybe Text) -- ^ "apiServerID" - The ID of the reporting API server.+ , v1alpha1ServerStorageVersionDecodableVersions :: !(Maybe [Text]) -- ^ "decodableVersions" - The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions.+ , v1alpha1ServerStorageVersionEncodingVersion :: !(Maybe Text) -- ^ "encodingVersion" - The API server encodes the object to this version when persisting it in the backend (e.g., etcd).+ , v1alpha1ServerStorageVersionServedVersions :: !(Maybe [Text]) -- ^ "servedVersions" - The API server can serve these versions. DecodableVersions must include all ServedVersions.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1ServerStorageVersion+instance A.FromJSON V1alpha1ServerStorageVersion where+ parseJSON = A.withObject "V1alpha1ServerStorageVersion" $ \o ->+ V1alpha1ServerStorageVersion+ <$> (o .:? "apiServerID")+ <*> (o .:? "decodableVersions")+ <*> (o .:? "encodingVersion")+ <*> (o .:? "servedVersions")++-- | ToJSON V1alpha1ServerStorageVersion+instance A.ToJSON V1alpha1ServerStorageVersion where+ toJSON V1alpha1ServerStorageVersion {..} =+ _omitNulls+ [ "apiServerID" .= v1alpha1ServerStorageVersionApiServerId+ , "decodableVersions" .= v1alpha1ServerStorageVersionDecodableVersions+ , "encodingVersion" .= v1alpha1ServerStorageVersionEncodingVersion+ , "servedVersions" .= v1alpha1ServerStorageVersionServedVersions+ ]+++-- | Construct a value of type 'V1alpha1ServerStorageVersion' (by applying it's required fields, if any)+mkV1alpha1ServerStorageVersion+ :: V1alpha1ServerStorageVersion+mkV1alpha1ServerStorageVersion =+ V1alpha1ServerStorageVersion+ { v1alpha1ServerStorageVersionApiServerId = Nothing+ , v1alpha1ServerStorageVersionDecodableVersions = Nothing+ , v1alpha1ServerStorageVersionEncodingVersion = Nothing+ , v1alpha1ServerStorageVersionServedVersions = Nothing+ }++-- ** V1alpha1StorageVersion+-- | V1alpha1StorageVersion+-- Storage version of a specific resource.+data V1alpha1StorageVersion = V1alpha1StorageVersion+ { v1alpha1StorageVersionApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1StorageVersionKind :: !(Maybe Text) -- ^ "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+ , v1alpha1StorageVersionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1alpha1StorageVersionSpec :: !(A.Value) -- ^ /Required/ "spec" - Spec is an empty spec. It is here to comply with Kubernetes API style.+ , v1alpha1StorageVersionStatus :: !(V1alpha1StorageVersionStatus) -- ^ /Required/ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1StorageVersion+instance A.FromJSON V1alpha1StorageVersion where+ parseJSON = A.withObject "V1alpha1StorageVersion" $ \o ->+ V1alpha1StorageVersion+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .: "status")++-- | ToJSON V1alpha1StorageVersion+instance A.ToJSON V1alpha1StorageVersion where+ toJSON V1alpha1StorageVersion {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1StorageVersionApiVersion+ , "kind" .= v1alpha1StorageVersionKind+ , "metadata" .= v1alpha1StorageVersionMetadata+ , "spec" .= v1alpha1StorageVersionSpec+ , "status" .= v1alpha1StorageVersionStatus+ ]+++-- | Construct a value of type 'V1alpha1StorageVersion' (by applying it's required fields, if any)+mkV1alpha1StorageVersion+ :: A.Value -- ^ 'v1alpha1StorageVersionSpec': Spec is an empty spec. It is here to comply with Kubernetes API style.+ -> V1alpha1StorageVersionStatus -- ^ 'v1alpha1StorageVersionStatus' + -> V1alpha1StorageVersion+mkV1alpha1StorageVersion v1alpha1StorageVersionSpec v1alpha1StorageVersionStatus =+ V1alpha1StorageVersion+ { v1alpha1StorageVersionApiVersion = Nothing+ , v1alpha1StorageVersionKind = Nothing+ , v1alpha1StorageVersionMetadata = Nothing+ , v1alpha1StorageVersionSpec+ , v1alpha1StorageVersionStatus+ }++-- ** V1alpha1StorageVersionCondition+-- | V1alpha1StorageVersionCondition+-- Describes the state of the storageVersion at a certain point.+data V1alpha1StorageVersionCondition = V1alpha1StorageVersionCondition+ { v1alpha1StorageVersionConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.+ , v1alpha1StorageVersionConditionMessage :: !(Text) -- ^ /Required/ "message" - A human readable message indicating details about the transition.+ , v1alpha1StorageVersionConditionObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - If set, this represents the .metadata.generation that the condition was set based upon.+ , v1alpha1StorageVersionConditionReason :: !(Text) -- ^ /Required/ "reason" - The reason for the condition's last transition.+ , v1alpha1StorageVersionConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.+ , v1alpha1StorageVersionConditionType :: !(Text) -- ^ /Required/ "type" - Type of the condition.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1StorageVersionCondition+instance A.FromJSON V1alpha1StorageVersionCondition where+ parseJSON = A.withObject "V1alpha1StorageVersionCondition" $ \o ->+ V1alpha1StorageVersionCondition+ <$> (o .:? "lastTransitionTime")+ <*> (o .: "message")+ <*> (o .:? "observedGeneration")+ <*> (o .: "reason")+ <*> (o .: "status")+ <*> (o .: "type")++-- | ToJSON V1alpha1StorageVersionCondition+instance A.ToJSON V1alpha1StorageVersionCondition where+ toJSON V1alpha1StorageVersionCondition {..} =+ _omitNulls+ [ "lastTransitionTime" .= v1alpha1StorageVersionConditionLastTransitionTime+ , "message" .= v1alpha1StorageVersionConditionMessage+ , "observedGeneration" .= v1alpha1StorageVersionConditionObservedGeneration+ , "reason" .= v1alpha1StorageVersionConditionReason+ , "status" .= v1alpha1StorageVersionConditionStatus+ , "type" .= v1alpha1StorageVersionConditionType+ ]+++-- | Construct a value of type 'V1alpha1StorageVersionCondition' (by applying it's required fields, if any)+mkV1alpha1StorageVersionCondition+ :: Text -- ^ 'v1alpha1StorageVersionConditionMessage': A human readable message indicating details about the transition.+ -> Text -- ^ 'v1alpha1StorageVersionConditionReason': The reason for the condition's last transition.+ -> Text -- ^ 'v1alpha1StorageVersionConditionStatus': Status of the condition, one of True, False, Unknown.+ -> Text -- ^ 'v1alpha1StorageVersionConditionType': Type of the condition.+ -> V1alpha1StorageVersionCondition+mkV1alpha1StorageVersionCondition v1alpha1StorageVersionConditionMessage v1alpha1StorageVersionConditionReason v1alpha1StorageVersionConditionStatus v1alpha1StorageVersionConditionType =+ V1alpha1StorageVersionCondition+ { v1alpha1StorageVersionConditionLastTransitionTime = Nothing+ , v1alpha1StorageVersionConditionMessage+ , v1alpha1StorageVersionConditionObservedGeneration = Nothing+ , v1alpha1StorageVersionConditionReason+ , v1alpha1StorageVersionConditionStatus+ , v1alpha1StorageVersionConditionType+ }++-- ** V1alpha1StorageVersionList+-- | V1alpha1StorageVersionList+-- A list of StorageVersions.+data V1alpha1StorageVersionList = V1alpha1StorageVersionList+ { v1alpha1StorageVersionListApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1StorageVersionListItems :: !([V1alpha1StorageVersion]) -- ^ /Required/ "items" - Items holds a list of StorageVersion+ , v1alpha1StorageVersionListKind :: !(Maybe Text) -- ^ "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+ , v1alpha1StorageVersionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1StorageVersionList+instance A.FromJSON V1alpha1StorageVersionList where+ parseJSON = A.withObject "V1alpha1StorageVersionList" $ \o ->+ V1alpha1StorageVersionList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1alpha1StorageVersionList+instance A.ToJSON V1alpha1StorageVersionList where+ toJSON V1alpha1StorageVersionList {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1StorageVersionListApiVersion+ , "items" .= v1alpha1StorageVersionListItems+ , "kind" .= v1alpha1StorageVersionListKind+ , "metadata" .= v1alpha1StorageVersionListMetadata+ ]+++-- | Construct a value of type 'V1alpha1StorageVersionList' (by applying it's required fields, if any)+mkV1alpha1StorageVersionList+ :: [V1alpha1StorageVersion] -- ^ 'v1alpha1StorageVersionListItems': Items holds a list of StorageVersion+ -> V1alpha1StorageVersionList+mkV1alpha1StorageVersionList v1alpha1StorageVersionListItems =+ V1alpha1StorageVersionList+ { v1alpha1StorageVersionListApiVersion = Nothing+ , v1alpha1StorageVersionListItems+ , v1alpha1StorageVersionListKind = Nothing+ , v1alpha1StorageVersionListMetadata = Nothing+ }++-- ** V1alpha1StorageVersionStatus+-- | V1alpha1StorageVersionStatus+-- API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.+data V1alpha1StorageVersionStatus = V1alpha1StorageVersionStatus+ { v1alpha1StorageVersionStatusCommonEncodingVersion :: !(Maybe Text) -- ^ "commonEncodingVersion" - If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality.+ , v1alpha1StorageVersionStatusConditions :: !(Maybe [V1alpha1StorageVersionCondition]) -- ^ "conditions" - The latest available observations of the storageVersion's state.+ , v1alpha1StorageVersionStatusStorageVersions :: !(Maybe [V1alpha1ServerStorageVersion]) -- ^ "storageVersions" - The reported versions per API server instance.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1StorageVersionStatus+instance A.FromJSON V1alpha1StorageVersionStatus where+ parseJSON = A.withObject "V1alpha1StorageVersionStatus" $ \o ->+ V1alpha1StorageVersionStatus+ <$> (o .:? "commonEncodingVersion")+ <*> (o .:? "conditions")+ <*> (o .:? "storageVersions")++-- | ToJSON V1alpha1StorageVersionStatus+instance A.ToJSON V1alpha1StorageVersionStatus where+ toJSON V1alpha1StorageVersionStatus {..} =+ _omitNulls+ [ "commonEncodingVersion" .= v1alpha1StorageVersionStatusCommonEncodingVersion+ , "conditions" .= v1alpha1StorageVersionStatusConditions+ , "storageVersions" .= v1alpha1StorageVersionStatusStorageVersions+ ]+++-- | Construct a value of type 'V1alpha1StorageVersionStatus' (by applying it's required fields, if any)+mkV1alpha1StorageVersionStatus+ :: V1alpha1StorageVersionStatus+mkV1alpha1StorageVersionStatus =+ V1alpha1StorageVersionStatus+ { v1alpha1StorageVersionStatusCommonEncodingVersion = Nothing+ , v1alpha1StorageVersionStatusConditions = Nothing+ , v1alpha1StorageVersionStatusStorageVersions = Nothing+ }++-- ** V1alpha1TypedLocalObjectReference+-- | V1alpha1TypedLocalObjectReference+-- TypedLocalObjectReference allows to reference typed object inside the same namespace.+data V1alpha1TypedLocalObjectReference = V1alpha1TypedLocalObjectReference+ { v1alpha1TypedLocalObjectReferenceApiGroup :: !(Maybe Text) -- ^ "apiGroup" - APIGroup is the group for the resource being referenced. If APIGroup is empty, the specified Kind must be in the core API group. For any other third-party types, setting APIGroup is required. It must be a DNS subdomain.+ , v1alpha1TypedLocalObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced. It must be a path segment name.+ , v1alpha1TypedLocalObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced. It must be a path segment name.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1TypedLocalObjectReference+instance A.FromJSON V1alpha1TypedLocalObjectReference where+ parseJSON = A.withObject "V1alpha1TypedLocalObjectReference" $ \o ->+ V1alpha1TypedLocalObjectReference+ <$> (o .:? "apiGroup")+ <*> (o .: "kind")+ <*> (o .: "name")++-- | ToJSON V1alpha1TypedLocalObjectReference+instance A.ToJSON V1alpha1TypedLocalObjectReference where+ toJSON V1alpha1TypedLocalObjectReference {..} =+ _omitNulls+ [ "apiGroup" .= v1alpha1TypedLocalObjectReferenceApiGroup+ , "kind" .= v1alpha1TypedLocalObjectReferenceKind+ , "name" .= v1alpha1TypedLocalObjectReferenceName+ ]+++-- | Construct a value of type 'V1alpha1TypedLocalObjectReference' (by applying it's required fields, if any)+mkV1alpha1TypedLocalObjectReference+ :: Text -- ^ 'v1alpha1TypedLocalObjectReferenceKind': Kind is the type of resource being referenced. It must be a path segment name.+ -> Text -- ^ 'v1alpha1TypedLocalObjectReferenceName': Name is the name of resource being referenced. It must be a path segment name.+ -> V1alpha1TypedLocalObjectReference+mkV1alpha1TypedLocalObjectReference v1alpha1TypedLocalObjectReferenceKind v1alpha1TypedLocalObjectReferenceName =+ V1alpha1TypedLocalObjectReference+ { v1alpha1TypedLocalObjectReferenceApiGroup = Nothing+ , v1alpha1TypedLocalObjectReferenceKind+ , v1alpha1TypedLocalObjectReferenceName+ }++-- ** V1alpha1Variable+-- | V1alpha1Variable+-- Variable is the definition of a variable that is used for composition.+data V1alpha1Variable = V1alpha1Variable+ { v1alpha1VariableExpression :: !(Text) -- ^ /Required/ "expression" - Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.+ , v1alpha1VariableName :: !(Text) -- ^ /Required/ "name" - Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1Variable+instance A.FromJSON V1alpha1Variable where+ parseJSON = A.withObject "V1alpha1Variable" $ \o ->+ V1alpha1Variable+ <$> (o .: "expression")+ <*> (o .: "name")++-- | ToJSON V1alpha1Variable+instance A.ToJSON V1alpha1Variable where+ toJSON V1alpha1Variable {..} =+ _omitNulls+ [ "expression" .= v1alpha1VariableExpression+ , "name" .= v1alpha1VariableName+ ]+++-- | Construct a value of type 'V1alpha1Variable' (by applying it's required fields, if any)+mkV1alpha1Variable+ :: Text -- ^ 'v1alpha1VariableExpression': Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.+ -> Text -- ^ 'v1alpha1VariableName': Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`+ -> V1alpha1Variable+mkV1alpha1Variable v1alpha1VariableExpression v1alpha1VariableName =+ V1alpha1Variable+ { v1alpha1VariableExpression+ , v1alpha1VariableName+ }++-- ** V1alpha1Workload+-- | V1alpha1Workload+-- Workload allows for expressing scheduling constraints that should be used when managing lifecycle of workloads from scheduling perspective, including scheduling, preemption, eviction and other phases.+data V1alpha1Workload = V1alpha1Workload+ { v1alpha1WorkloadApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1WorkloadKind :: !(Maybe Text) -- ^ "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+ , v1alpha1WorkloadMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1alpha1WorkloadSpec :: !(V1alpha1WorkloadSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1Workload+instance A.FromJSON V1alpha1Workload where+ parseJSON = A.withObject "V1alpha1Workload" $ \o ->+ V1alpha1Workload+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1alpha1Workload+instance A.ToJSON V1alpha1Workload where+ toJSON V1alpha1Workload {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1WorkloadApiVersion+ , "kind" .= v1alpha1WorkloadKind+ , "metadata" .= v1alpha1WorkloadMetadata+ , "spec" .= v1alpha1WorkloadSpec+ ]+++-- | Construct a value of type 'V1alpha1Workload' (by applying it's required fields, if any)+mkV1alpha1Workload+ :: V1alpha1WorkloadSpec -- ^ 'v1alpha1WorkloadSpec' + -> V1alpha1Workload+mkV1alpha1Workload v1alpha1WorkloadSpec =+ V1alpha1Workload+ { v1alpha1WorkloadApiVersion = Nothing+ , v1alpha1WorkloadKind = Nothing+ , v1alpha1WorkloadMetadata = Nothing+ , v1alpha1WorkloadSpec+ }++-- ** V1alpha1WorkloadList+-- | V1alpha1WorkloadList+-- WorkloadList contains a list of Workload resources.+data V1alpha1WorkloadList = V1alpha1WorkloadList+ { v1alpha1WorkloadListApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha1WorkloadListItems :: !([V1alpha1Workload]) -- ^ /Required/ "items" - Items is the list of Workloads.+ , v1alpha1WorkloadListKind :: !(Maybe Text) -- ^ "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+ , v1alpha1WorkloadListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1WorkloadList+instance A.FromJSON V1alpha1WorkloadList where+ parseJSON = A.withObject "V1alpha1WorkloadList" $ \o ->+ V1alpha1WorkloadList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1alpha1WorkloadList+instance A.ToJSON V1alpha1WorkloadList where+ toJSON V1alpha1WorkloadList {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha1WorkloadListApiVersion+ , "items" .= v1alpha1WorkloadListItems+ , "kind" .= v1alpha1WorkloadListKind+ , "metadata" .= v1alpha1WorkloadListMetadata+ ]+++-- | Construct a value of type 'V1alpha1WorkloadList' (by applying it's required fields, if any)+mkV1alpha1WorkloadList+ :: [V1alpha1Workload] -- ^ 'v1alpha1WorkloadListItems': Items is the list of Workloads.+ -> V1alpha1WorkloadList+mkV1alpha1WorkloadList v1alpha1WorkloadListItems =+ V1alpha1WorkloadList+ { v1alpha1WorkloadListApiVersion = Nothing+ , v1alpha1WorkloadListItems+ , v1alpha1WorkloadListKind = Nothing+ , v1alpha1WorkloadListMetadata = Nothing+ }++-- ** V1alpha1WorkloadSpec+-- | V1alpha1WorkloadSpec+-- WorkloadSpec defines the desired state of a Workload.+data V1alpha1WorkloadSpec = V1alpha1WorkloadSpec+ { v1alpha1WorkloadSpecControllerRef :: !(Maybe V1alpha1TypedLocalObjectReference) -- ^ "controllerRef"+ , v1alpha1WorkloadSpecPodGroups :: !([V1alpha1PodGroup]) -- ^ /Required/ "podGroups" - PodGroups is the list of pod groups that make up the Workload. The maximum number of pod groups is 8. This field is immutable.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha1WorkloadSpec+instance A.FromJSON V1alpha1WorkloadSpec where+ parseJSON = A.withObject "V1alpha1WorkloadSpec" $ \o ->+ V1alpha1WorkloadSpec+ <$> (o .:? "controllerRef")+ <*> (o .: "podGroups")++-- | ToJSON V1alpha1WorkloadSpec+instance A.ToJSON V1alpha1WorkloadSpec where+ toJSON V1alpha1WorkloadSpec {..} =+ _omitNulls+ [ "controllerRef" .= v1alpha1WorkloadSpecControllerRef+ , "podGroups" .= v1alpha1WorkloadSpecPodGroups+ ]+++-- | Construct a value of type 'V1alpha1WorkloadSpec' (by applying it's required fields, if any)+mkV1alpha1WorkloadSpec+ :: [V1alpha1PodGroup] -- ^ 'v1alpha1WorkloadSpecPodGroups': PodGroups is the list of pod groups that make up the Workload. The maximum number of pod groups is 8. This field is immutable.+ -> V1alpha1WorkloadSpec+mkV1alpha1WorkloadSpec v1alpha1WorkloadSpecPodGroups =+ V1alpha1WorkloadSpec+ { v1alpha1WorkloadSpecControllerRef = Nothing+ , v1alpha1WorkloadSpecPodGroups+ }++-- ** V1alpha2LeaseCandidate+-- | V1alpha2LeaseCandidate+-- 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.+data V1alpha2LeaseCandidate = V1alpha2LeaseCandidate+ { v1alpha2LeaseCandidateApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha2LeaseCandidateKind :: !(Maybe Text) -- ^ "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+ , v1alpha2LeaseCandidateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1alpha2LeaseCandidateSpec :: !(Maybe V1alpha2LeaseCandidateSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha2LeaseCandidate+instance A.FromJSON V1alpha2LeaseCandidate where+ parseJSON = A.withObject "V1alpha2LeaseCandidate" $ \o ->+ V1alpha2LeaseCandidate+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1alpha2LeaseCandidate+instance A.ToJSON V1alpha2LeaseCandidate where+ toJSON V1alpha2LeaseCandidate {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha2LeaseCandidateApiVersion+ , "kind" .= v1alpha2LeaseCandidateKind+ , "metadata" .= v1alpha2LeaseCandidateMetadata+ , "spec" .= v1alpha2LeaseCandidateSpec+ ]+++-- | Construct a value of type 'V1alpha2LeaseCandidate' (by applying it's required fields, if any)+mkV1alpha2LeaseCandidate+ :: V1alpha2LeaseCandidate+mkV1alpha2LeaseCandidate =+ V1alpha2LeaseCandidate+ { v1alpha2LeaseCandidateApiVersion = Nothing+ , v1alpha2LeaseCandidateKind = Nothing+ , v1alpha2LeaseCandidateMetadata = Nothing+ , v1alpha2LeaseCandidateSpec = Nothing+ }++-- ** V1alpha2LeaseCandidateList+-- | V1alpha2LeaseCandidateList+-- LeaseCandidateList is a list of Lease objects.+data V1alpha2LeaseCandidateList = V1alpha2LeaseCandidateList+ { v1alpha2LeaseCandidateListApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha2LeaseCandidateListItems :: !([V1alpha2LeaseCandidate]) -- ^ /Required/ "items" - items is a list of schema objects.+ , v1alpha2LeaseCandidateListKind :: !(Maybe Text) -- ^ "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+ , v1alpha2LeaseCandidateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha2LeaseCandidateList+instance A.FromJSON V1alpha2LeaseCandidateList where+ parseJSON = A.withObject "V1alpha2LeaseCandidateList" $ \o ->+ V1alpha2LeaseCandidateList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1alpha2LeaseCandidateList+instance A.ToJSON V1alpha2LeaseCandidateList where+ toJSON V1alpha2LeaseCandidateList {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha2LeaseCandidateListApiVersion+ , "items" .= v1alpha2LeaseCandidateListItems+ , "kind" .= v1alpha2LeaseCandidateListKind+ , "metadata" .= v1alpha2LeaseCandidateListMetadata+ ]+++-- | Construct a value of type 'V1alpha2LeaseCandidateList' (by applying it's required fields, if any)+mkV1alpha2LeaseCandidateList+ :: [V1alpha2LeaseCandidate] -- ^ 'v1alpha2LeaseCandidateListItems': items is a list of schema objects.+ -> V1alpha2LeaseCandidateList+mkV1alpha2LeaseCandidateList v1alpha2LeaseCandidateListItems =+ V1alpha2LeaseCandidateList+ { v1alpha2LeaseCandidateListApiVersion = Nothing+ , v1alpha2LeaseCandidateListItems+ , v1alpha2LeaseCandidateListKind = Nothing+ , v1alpha2LeaseCandidateListMetadata = Nothing+ }++-- ** V1alpha2LeaseCandidateSpec+-- | V1alpha2LeaseCandidateSpec+-- LeaseCandidateSpec is a specification of a Lease.+data V1alpha2LeaseCandidateSpec = V1alpha2LeaseCandidateSpec+ { v1alpha2LeaseCandidateSpecBinaryVersion :: !(Text) -- ^ /Required/ "binaryVersion" - BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.+ , v1alpha2LeaseCandidateSpecEmulationVersion :: !(Maybe Text) -- ^ "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\"+ , v1alpha2LeaseCandidateSpecLeaseName :: !(Text) -- ^ /Required/ "leaseName" - LeaseName is the name of the lease for which this candidate is contending. This field is immutable.+ , v1alpha2LeaseCandidateSpecPingTime :: !(Maybe DateTime) -- ^ "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.+ , v1alpha2LeaseCandidateSpecRenewTime :: !(Maybe DateTime) -- ^ "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.+ , v1alpha2LeaseCandidateSpecStrategy :: !(Text) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha2LeaseCandidateSpec+instance A.FromJSON V1alpha2LeaseCandidateSpec where+ parseJSON = A.withObject "V1alpha2LeaseCandidateSpec" $ \o ->+ V1alpha2LeaseCandidateSpec+ <$> (o .: "binaryVersion")+ <*> (o .:? "emulationVersion")+ <*> (o .: "leaseName")+ <*> (o .:? "pingTime")+ <*> (o .:? "renewTime")+ <*> (o .: "strategy")++-- | ToJSON V1alpha2LeaseCandidateSpec+instance A.ToJSON V1alpha2LeaseCandidateSpec where+ toJSON V1alpha2LeaseCandidateSpec {..} =+ _omitNulls+ [ "binaryVersion" .= v1alpha2LeaseCandidateSpecBinaryVersion+ , "emulationVersion" .= v1alpha2LeaseCandidateSpecEmulationVersion+ , "leaseName" .= v1alpha2LeaseCandidateSpecLeaseName+ , "pingTime" .= v1alpha2LeaseCandidateSpecPingTime+ , "renewTime" .= v1alpha2LeaseCandidateSpecRenewTime+ , "strategy" .= v1alpha2LeaseCandidateSpecStrategy+ ]+++-- | Construct a value of type 'V1alpha2LeaseCandidateSpec' (by applying it's required fields, if any)+mkV1alpha2LeaseCandidateSpec+ :: Text -- ^ 'v1alpha2LeaseCandidateSpecBinaryVersion': BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.+ -> Text -- ^ 'v1alpha2LeaseCandidateSpecLeaseName': LeaseName is the name of the lease for which this candidate is contending. This field is immutable.+ -> Text -- ^ 'v1alpha2LeaseCandidateSpecStrategy': 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.+ -> V1alpha2LeaseCandidateSpec+mkV1alpha2LeaseCandidateSpec v1alpha2LeaseCandidateSpecBinaryVersion v1alpha2LeaseCandidateSpecLeaseName v1alpha2LeaseCandidateSpecStrategy =+ V1alpha2LeaseCandidateSpec+ { v1alpha2LeaseCandidateSpecBinaryVersion+ , v1alpha2LeaseCandidateSpecEmulationVersion = Nothing+ , v1alpha2LeaseCandidateSpecLeaseName+ , v1alpha2LeaseCandidateSpecPingTime = Nothing+ , v1alpha2LeaseCandidateSpecRenewTime = Nothing+ , v1alpha2LeaseCandidateSpecStrategy+ }++-- ** V1alpha3DeviceTaint+-- | V1alpha3DeviceTaint+-- The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.+data V1alpha3DeviceTaint = V1alpha3DeviceTaint+ { v1alpha3DeviceTaintEffect :: !(Text) -- ^ /Required/ "effect" - The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.+ , v1alpha3DeviceTaintKey :: !(Text) -- ^ /Required/ "key" - The taint key to be applied to a device. Must be a label name.+ , v1alpha3DeviceTaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.+ , v1alpha3DeviceTaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key. Must be a label value.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha3DeviceTaint+instance A.FromJSON V1alpha3DeviceTaint where+ parseJSON = A.withObject "V1alpha3DeviceTaint" $ \o ->+ V1alpha3DeviceTaint+ <$> (o .: "effect")+ <*> (o .: "key")+ <*> (o .:? "timeAdded")+ <*> (o .:? "value")++-- | ToJSON V1alpha3DeviceTaint+instance A.ToJSON V1alpha3DeviceTaint where+ toJSON V1alpha3DeviceTaint {..} =+ _omitNulls+ [ "effect" .= v1alpha3DeviceTaintEffect+ , "key" .= v1alpha3DeviceTaintKey+ , "timeAdded" .= v1alpha3DeviceTaintTimeAdded+ , "value" .= v1alpha3DeviceTaintValue+ ]+++-- | Construct a value of type 'V1alpha3DeviceTaint' (by applying it's required fields, if any)+mkV1alpha3DeviceTaint+ :: Text -- ^ 'v1alpha3DeviceTaintEffect': The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.+ -> Text -- ^ 'v1alpha3DeviceTaintKey': The taint key to be applied to a device. Must be a label name.+ -> V1alpha3DeviceTaint+mkV1alpha3DeviceTaint v1alpha3DeviceTaintEffect v1alpha3DeviceTaintKey =+ V1alpha3DeviceTaint+ { v1alpha3DeviceTaintEffect+ , v1alpha3DeviceTaintKey+ , v1alpha3DeviceTaintTimeAdded = Nothing+ , v1alpha3DeviceTaintValue = Nothing+ }++-- ** V1alpha3DeviceTaintRule+-- | V1alpha3DeviceTaintRule+-- DeviceTaintRule adds one taint to all devices which match the selector. This has the same effect as if the taint was specified directly in the ResourceSlice by the DRA driver.+data V1alpha3DeviceTaintRule = V1alpha3DeviceTaintRule+ { v1alpha3DeviceTaintRuleApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha3DeviceTaintRuleKind :: !(Maybe Text) -- ^ "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+ , v1alpha3DeviceTaintRuleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1alpha3DeviceTaintRuleSpec :: !(V1alpha3DeviceTaintRuleSpec) -- ^ /Required/ "spec"+ , v1alpha3DeviceTaintRuleStatus :: !(Maybe V1alpha3DeviceTaintRuleStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha3DeviceTaintRule+instance A.FromJSON V1alpha3DeviceTaintRule where+ parseJSON = A.withObject "V1alpha3DeviceTaintRule" $ \o ->+ V1alpha3DeviceTaintRule+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1alpha3DeviceTaintRule+instance A.ToJSON V1alpha3DeviceTaintRule where+ toJSON V1alpha3DeviceTaintRule {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha3DeviceTaintRuleApiVersion+ , "kind" .= v1alpha3DeviceTaintRuleKind+ , "metadata" .= v1alpha3DeviceTaintRuleMetadata+ , "spec" .= v1alpha3DeviceTaintRuleSpec+ , "status" .= v1alpha3DeviceTaintRuleStatus+ ]+++-- | Construct a value of type 'V1alpha3DeviceTaintRule' (by applying it's required fields, if any)+mkV1alpha3DeviceTaintRule+ :: V1alpha3DeviceTaintRuleSpec -- ^ 'v1alpha3DeviceTaintRuleSpec' + -> V1alpha3DeviceTaintRule+mkV1alpha3DeviceTaintRule v1alpha3DeviceTaintRuleSpec =+ V1alpha3DeviceTaintRule+ { v1alpha3DeviceTaintRuleApiVersion = Nothing+ , v1alpha3DeviceTaintRuleKind = Nothing+ , v1alpha3DeviceTaintRuleMetadata = Nothing+ , v1alpha3DeviceTaintRuleSpec+ , v1alpha3DeviceTaintRuleStatus = Nothing+ }++-- ** V1alpha3DeviceTaintRuleList+-- | V1alpha3DeviceTaintRuleList+-- DeviceTaintRuleList is a collection of DeviceTaintRules.+data V1alpha3DeviceTaintRuleList = V1alpha3DeviceTaintRuleList+ { v1alpha3DeviceTaintRuleListApiVersion :: !(Maybe Text) -- ^ "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+ , v1alpha3DeviceTaintRuleListItems :: !([V1alpha3DeviceTaintRule]) -- ^ /Required/ "items" - Items is the list of DeviceTaintRules.+ , v1alpha3DeviceTaintRuleListKind :: !(Maybe Text) -- ^ "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+ , v1alpha3DeviceTaintRuleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha3DeviceTaintRuleList+instance A.FromJSON V1alpha3DeviceTaintRuleList where+ parseJSON = A.withObject "V1alpha3DeviceTaintRuleList" $ \o ->+ V1alpha3DeviceTaintRuleList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1alpha3DeviceTaintRuleList+instance A.ToJSON V1alpha3DeviceTaintRuleList where+ toJSON V1alpha3DeviceTaintRuleList {..} =+ _omitNulls+ [ "apiVersion" .= v1alpha3DeviceTaintRuleListApiVersion+ , "items" .= v1alpha3DeviceTaintRuleListItems+ , "kind" .= v1alpha3DeviceTaintRuleListKind+ , "metadata" .= v1alpha3DeviceTaintRuleListMetadata+ ]+++-- | Construct a value of type 'V1alpha3DeviceTaintRuleList' (by applying it's required fields, if any)+mkV1alpha3DeviceTaintRuleList+ :: [V1alpha3DeviceTaintRule] -- ^ 'v1alpha3DeviceTaintRuleListItems': Items is the list of DeviceTaintRules.+ -> V1alpha3DeviceTaintRuleList+mkV1alpha3DeviceTaintRuleList v1alpha3DeviceTaintRuleListItems =+ V1alpha3DeviceTaintRuleList+ { v1alpha3DeviceTaintRuleListApiVersion = Nothing+ , v1alpha3DeviceTaintRuleListItems+ , v1alpha3DeviceTaintRuleListKind = Nothing+ , v1alpha3DeviceTaintRuleListMetadata = Nothing+ }++-- ** V1alpha3DeviceTaintRuleSpec+-- | V1alpha3DeviceTaintRuleSpec+-- DeviceTaintRuleSpec specifies the selector and one taint.+data V1alpha3DeviceTaintRuleSpec = V1alpha3DeviceTaintRuleSpec+ { v1alpha3DeviceTaintRuleSpecDeviceSelector :: !(Maybe V1alpha3DeviceTaintSelector) -- ^ "deviceSelector"+ , v1alpha3DeviceTaintRuleSpecTaint :: !(V1alpha3DeviceTaint) -- ^ /Required/ "taint"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha3DeviceTaintRuleSpec+instance A.FromJSON V1alpha3DeviceTaintRuleSpec where+ parseJSON = A.withObject "V1alpha3DeviceTaintRuleSpec" $ \o ->+ V1alpha3DeviceTaintRuleSpec+ <$> (o .:? "deviceSelector")+ <*> (o .: "taint")++-- | ToJSON V1alpha3DeviceTaintRuleSpec+instance A.ToJSON V1alpha3DeviceTaintRuleSpec where+ toJSON V1alpha3DeviceTaintRuleSpec {..} =+ _omitNulls+ [ "deviceSelector" .= v1alpha3DeviceTaintRuleSpecDeviceSelector+ , "taint" .= v1alpha3DeviceTaintRuleSpecTaint+ ]+++-- | Construct a value of type 'V1alpha3DeviceTaintRuleSpec' (by applying it's required fields, if any)+mkV1alpha3DeviceTaintRuleSpec+ :: V1alpha3DeviceTaint -- ^ 'v1alpha3DeviceTaintRuleSpecTaint' + -> V1alpha3DeviceTaintRuleSpec+mkV1alpha3DeviceTaintRuleSpec v1alpha3DeviceTaintRuleSpecTaint =+ V1alpha3DeviceTaintRuleSpec+ { v1alpha3DeviceTaintRuleSpecDeviceSelector = Nothing+ , v1alpha3DeviceTaintRuleSpecTaint+ }++-- ** V1alpha3DeviceTaintRuleStatus+-- | V1alpha3DeviceTaintRuleStatus+-- DeviceTaintRuleStatus provides information about an on-going pod eviction.+data V1alpha3DeviceTaintRuleStatus = V1alpha3DeviceTaintRuleStatus+ { v1alpha3DeviceTaintRuleStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - Conditions provide information about the state of the DeviceTaintRule and the cluster at some point in time, in a machine-readable and human-readable format. The following condition is currently defined as part of this API, more may get added: - Type: EvictionInProgress - Status: True if there are currently pods which need to be evicted, False otherwise (includes the effects which don't cause eviction). - Reason: not specified, may change - Message: includes information about number of pending pods and already evicted pods in a human-readable format, updated periodically, may change For `effect: None`, the condition above gets set once for each change to the spec, with the message containing information about what would happen if the effect was `NoExecute`. This feedback can be used to decide whether changing the effect to `NoExecute` will work as intended. It only gets set once to avoid having to constantly update the status. Must have 8 or fewer entries.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha3DeviceTaintRuleStatus+instance A.FromJSON V1alpha3DeviceTaintRuleStatus where+ parseJSON = A.withObject "V1alpha3DeviceTaintRuleStatus" $ \o ->+ V1alpha3DeviceTaintRuleStatus+ <$> (o .:? "conditions")++-- | ToJSON V1alpha3DeviceTaintRuleStatus+instance A.ToJSON V1alpha3DeviceTaintRuleStatus where+ toJSON V1alpha3DeviceTaintRuleStatus {..} =+ _omitNulls+ [ "conditions" .= v1alpha3DeviceTaintRuleStatusConditions+ ]+++-- | Construct a value of type 'V1alpha3DeviceTaintRuleStatus' (by applying it's required fields, if any)+mkV1alpha3DeviceTaintRuleStatus+ :: V1alpha3DeviceTaintRuleStatus+mkV1alpha3DeviceTaintRuleStatus =+ V1alpha3DeviceTaintRuleStatus+ { v1alpha3DeviceTaintRuleStatusConditions = Nothing+ }++-- ** V1alpha3DeviceTaintSelector+-- | V1alpha3DeviceTaintSelector+-- DeviceTaintSelector defines which device(s) a DeviceTaintRule applies to. The empty selector matches all devices. Without a selector, no devices are matched.+data V1alpha3DeviceTaintSelector = V1alpha3DeviceTaintSelector+ { v1alpha3DeviceTaintSelectorDevice :: !(Maybe Text) -- ^ "device" - If device is set, only devices with that name are selected. This field corresponds to slice.spec.devices[].name. Setting also driver and pool may be required to avoid ambiguity, but is not required.+ , v1alpha3DeviceTaintSelectorDriver :: !(Maybe Text) -- ^ "driver" - If driver is set, only devices from that driver are selected. This fields corresponds to slice.spec.driver.+ , v1alpha3DeviceTaintSelectorPool :: !(Maybe Text) -- ^ "pool" - If pool is set, only devices in that pool are selected. Also setting the driver name may be useful to avoid ambiguity when different drivers use the same pool name, but this is not required because selecting pools from different drivers may also be useful, for example when drivers with node-local devices use the node name as their pool name.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1alpha3DeviceTaintSelector+instance A.FromJSON V1alpha3DeviceTaintSelector where+ parseJSON = A.withObject "V1alpha3DeviceTaintSelector" $ \o ->+ V1alpha3DeviceTaintSelector+ <$> (o .:? "device")+ <*> (o .:? "driver")+ <*> (o .:? "pool")++-- | ToJSON V1alpha3DeviceTaintSelector+instance A.ToJSON V1alpha3DeviceTaintSelector where+ toJSON V1alpha3DeviceTaintSelector {..} =+ _omitNulls+ [ "device" .= v1alpha3DeviceTaintSelectorDevice+ , "driver" .= v1alpha3DeviceTaintSelectorDriver+ , "pool" .= v1alpha3DeviceTaintSelectorPool+ ]+++-- | Construct a value of type 'V1alpha3DeviceTaintSelector' (by applying it's required fields, if any)+mkV1alpha3DeviceTaintSelector+ :: V1alpha3DeviceTaintSelector+mkV1alpha3DeviceTaintSelector =+ V1alpha3DeviceTaintSelector+ { v1alpha3DeviceTaintSelectorDevice = Nothing+ , v1alpha3DeviceTaintSelectorDriver = Nothing+ , v1alpha3DeviceTaintSelectorPool = Nothing+ }++-- ** V1beta1AllocatedDeviceStatus+-- | V1beta1AllocatedDeviceStatus+-- AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices.+data V1beta1AllocatedDeviceStatus = V1beta1AllocatedDeviceStatus+ { v1beta1AllocatedDeviceStatusConditions :: !(Maybe [V1Condition]) -- ^ "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. Must not contain more than 8 entries.+ , v1beta1AllocatedDeviceStatusData :: !(Maybe A.Value) -- ^ "data" - Data contains arbitrary driver-specific data. The length of the raw data must be smaller or equal to 10 Ki.+ , v1beta1AllocatedDeviceStatusDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ , v1beta1AllocatedDeviceStatusDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1beta1AllocatedDeviceStatusNetworkData :: !(Maybe V1beta1NetworkDeviceData) -- ^ "networkData"+ , v1beta1AllocatedDeviceStatusPool :: !(Text) -- ^ /Required/ "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.+ , v1beta1AllocatedDeviceStatusShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1AllocatedDeviceStatus+instance A.FromJSON V1beta1AllocatedDeviceStatus where+ parseJSON = A.withObject "V1beta1AllocatedDeviceStatus" $ \o ->+ V1beta1AllocatedDeviceStatus+ <$> (o .:? "conditions")+ <*> (o .:? "data")+ <*> (o .: "device")+ <*> (o .: "driver")+ <*> (o .:? "networkData")+ <*> (o .: "pool")+ <*> (o .:? "shareID")++-- | ToJSON V1beta1AllocatedDeviceStatus+instance A.ToJSON V1beta1AllocatedDeviceStatus where+ toJSON V1beta1AllocatedDeviceStatus {..} =+ _omitNulls+ [ "conditions" .= v1beta1AllocatedDeviceStatusConditions+ , "data" .= v1beta1AllocatedDeviceStatusData+ , "device" .= v1beta1AllocatedDeviceStatusDevice+ , "driver" .= v1beta1AllocatedDeviceStatusDriver+ , "networkData" .= v1beta1AllocatedDeviceStatusNetworkData+ , "pool" .= v1beta1AllocatedDeviceStatusPool+ , "shareID" .= v1beta1AllocatedDeviceStatusShareId+ ]+++-- | Construct a value of type 'V1beta1AllocatedDeviceStatus' (by applying it's required fields, if any)+mkV1beta1AllocatedDeviceStatus+ :: Text -- ^ 'v1beta1AllocatedDeviceStatusDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ -> Text -- ^ 'v1beta1AllocatedDeviceStatusDriver': 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. It should use only lower case characters.+ -> Text -- ^ 'v1beta1AllocatedDeviceStatusPool': 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.+ -> V1beta1AllocatedDeviceStatus+mkV1beta1AllocatedDeviceStatus v1beta1AllocatedDeviceStatusDevice v1beta1AllocatedDeviceStatusDriver v1beta1AllocatedDeviceStatusPool =+ V1beta1AllocatedDeviceStatus+ { v1beta1AllocatedDeviceStatusConditions = Nothing+ , v1beta1AllocatedDeviceStatusData = Nothing+ , v1beta1AllocatedDeviceStatusDevice+ , v1beta1AllocatedDeviceStatusDriver+ , v1beta1AllocatedDeviceStatusNetworkData = Nothing+ , v1beta1AllocatedDeviceStatusPool+ , v1beta1AllocatedDeviceStatusShareId = Nothing+ }++-- ** V1beta1AllocationResult+-- | V1beta1AllocationResult+-- AllocationResult contains attributes of an allocated resource.+data V1beta1AllocationResult = V1beta1AllocationResult+ { v1beta1AllocationResultAllocationTimestamp :: !(Maybe DateTime) -- ^ "allocationTimestamp" - AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate.+ , v1beta1AllocationResultDevices :: !(Maybe V1beta1DeviceAllocationResult) -- ^ "devices"+ , v1beta1AllocationResultNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1AllocationResult+instance A.FromJSON V1beta1AllocationResult where+ parseJSON = A.withObject "V1beta1AllocationResult" $ \o ->+ V1beta1AllocationResult+ <$> (o .:? "allocationTimestamp")+ <*> (o .:? "devices")+ <*> (o .:? "nodeSelector")++-- | ToJSON V1beta1AllocationResult+instance A.ToJSON V1beta1AllocationResult where+ toJSON V1beta1AllocationResult {..} =+ _omitNulls+ [ "allocationTimestamp" .= v1beta1AllocationResultAllocationTimestamp+ , "devices" .= v1beta1AllocationResultDevices+ , "nodeSelector" .= v1beta1AllocationResultNodeSelector+ ]+++-- | Construct a value of type 'V1beta1AllocationResult' (by applying it's required fields, if any)+mkV1beta1AllocationResult+ :: V1beta1AllocationResult+mkV1beta1AllocationResult =+ V1beta1AllocationResult+ { v1beta1AllocationResultAllocationTimestamp = Nothing+ , v1beta1AllocationResultDevices = Nothing+ , v1beta1AllocationResultNodeSelector = Nothing+ }++-- ** V1beta1ApplyConfiguration+-- | V1beta1ApplyConfiguration+-- ApplyConfiguration defines the desired configuration values of an object.+data V1beta1ApplyConfiguration = V1beta1ApplyConfiguration+ { v1beta1ApplyConfigurationExpression :: !(Maybe Text) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ApplyConfiguration+instance A.FromJSON V1beta1ApplyConfiguration where+ parseJSON = A.withObject "V1beta1ApplyConfiguration" $ \o ->+ V1beta1ApplyConfiguration+ <$> (o .:? "expression")++-- | ToJSON V1beta1ApplyConfiguration+instance A.ToJSON V1beta1ApplyConfiguration where+ toJSON V1beta1ApplyConfiguration {..} =+ _omitNulls+ [ "expression" .= v1beta1ApplyConfigurationExpression+ ]+++-- | Construct a value of type 'V1beta1ApplyConfiguration' (by applying it's required fields, if any)+mkV1beta1ApplyConfiguration+ :: V1beta1ApplyConfiguration+mkV1beta1ApplyConfiguration =+ V1beta1ApplyConfiguration+ { v1beta1ApplyConfigurationExpression = Nothing+ }++-- ** V1beta1BasicDevice+-- | V1beta1BasicDevice+-- BasicDevice defines one device instance.+data V1beta1BasicDevice = V1beta1BasicDevice+ { v1beta1BasicDeviceAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the device. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.+ , v1beta1BasicDeviceAllowMultipleAllocations :: !(Maybe Bool) -- ^ "allowMultipleAllocations" - AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.+ , v1beta1BasicDeviceAttributes :: !(Maybe (Map.Map String V1beta1DeviceAttribute)) -- ^ "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.+ , v1beta1BasicDeviceBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. The maximum number of binding conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta1BasicDeviceBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is true, a binding failure occurred. The maximum number of binding failure conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta1BasicDeviceBindsToNode :: !(Maybe Bool) -- ^ "bindsToNode" - BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta1BasicDeviceCapacity :: !(Maybe (Map.Map String V1beta1DeviceCapacity)) -- ^ "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.+ , v1beta1BasicDeviceConsumesCounters :: !(Maybe [V1beta1DeviceCounterConsumption]) -- ^ "consumesCounters" - ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. There can only be a single entry per counterSet. The maximum number of device counter consumptions per device is 2.+ , v1beta1BasicDeviceNodeName :: !(Maybe Text) -- ^ "nodeName" - NodeName identifies the node where the device is available. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.+ , v1beta1BasicDeviceNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ , v1beta1BasicDeviceTaints :: !(Maybe [V1beta1DeviceTaint]) -- ^ "taints" - If specified, these are the driver-defined taints. The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1BasicDevice+instance A.FromJSON V1beta1BasicDevice where+ parseJSON = A.withObject "V1beta1BasicDevice" $ \o ->+ V1beta1BasicDevice+ <$> (o .:? "allNodes")+ <*> (o .:? "allowMultipleAllocations")+ <*> (o .:? "attributes")+ <*> (o .:? "bindingConditions")+ <*> (o .:? "bindingFailureConditions")+ <*> (o .:? "bindsToNode")+ <*> (o .:? "capacity")+ <*> (o .:? "consumesCounters")+ <*> (o .:? "nodeName")+ <*> (o .:? "nodeSelector")+ <*> (o .:? "taints")++-- | ToJSON V1beta1BasicDevice+instance A.ToJSON V1beta1BasicDevice where+ toJSON V1beta1BasicDevice {..} =+ _omitNulls+ [ "allNodes" .= v1beta1BasicDeviceAllNodes+ , "allowMultipleAllocations" .= v1beta1BasicDeviceAllowMultipleAllocations+ , "attributes" .= v1beta1BasicDeviceAttributes+ , "bindingConditions" .= v1beta1BasicDeviceBindingConditions+ , "bindingFailureConditions" .= v1beta1BasicDeviceBindingFailureConditions+ , "bindsToNode" .= v1beta1BasicDeviceBindsToNode+ , "capacity" .= v1beta1BasicDeviceCapacity+ , "consumesCounters" .= v1beta1BasicDeviceConsumesCounters+ , "nodeName" .= v1beta1BasicDeviceNodeName+ , "nodeSelector" .= v1beta1BasicDeviceNodeSelector+ , "taints" .= v1beta1BasicDeviceTaints+ ]+++-- | Construct a value of type 'V1beta1BasicDevice' (by applying it's required fields, if any)+mkV1beta1BasicDevice+ :: V1beta1BasicDevice+mkV1beta1BasicDevice =+ V1beta1BasicDevice+ { v1beta1BasicDeviceAllNodes = Nothing+ , v1beta1BasicDeviceAllowMultipleAllocations = Nothing+ , v1beta1BasicDeviceAttributes = Nothing+ , v1beta1BasicDeviceBindingConditions = Nothing+ , v1beta1BasicDeviceBindingFailureConditions = Nothing+ , v1beta1BasicDeviceBindsToNode = Nothing+ , v1beta1BasicDeviceCapacity = Nothing+ , v1beta1BasicDeviceConsumesCounters = Nothing+ , v1beta1BasicDeviceNodeName = Nothing+ , v1beta1BasicDeviceNodeSelector = Nothing+ , v1beta1BasicDeviceTaints = Nothing+ }++-- ** V1beta1CELDeviceSelector+-- | V1beta1CELDeviceSelector+-- CELDeviceSelector contains a CEL expression for selecting a device.+data V1beta1CELDeviceSelector = V1beta1CELDeviceSelector+ { v1beta1CELDeviceSelectorExpression :: !(Text) -- ^ /Required/ "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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1CELDeviceSelector+instance A.FromJSON V1beta1CELDeviceSelector where+ parseJSON = A.withObject "V1beta1CELDeviceSelector" $ \o ->+ V1beta1CELDeviceSelector+ <$> (o .: "expression")++-- | ToJSON V1beta1CELDeviceSelector+instance A.ToJSON V1beta1CELDeviceSelector where+ toJSON V1beta1CELDeviceSelector {..} =+ _omitNulls+ [ "expression" .= v1beta1CELDeviceSelectorExpression+ ]+++-- | Construct a value of type 'V1beta1CELDeviceSelector' (by applying it's required fields, if any)+mkV1beta1CELDeviceSelector+ :: Text -- ^ 'v1beta1CELDeviceSelectorExpression': 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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.+ -> V1beta1CELDeviceSelector+mkV1beta1CELDeviceSelector v1beta1CELDeviceSelectorExpression =+ V1beta1CELDeviceSelector+ { v1beta1CELDeviceSelectorExpression+ }++-- ** V1beta1CapacityRequestPolicy+-- | V1beta1CapacityRequestPolicy+-- CapacityRequestPolicy defines how requests consume device capacity. Must not set more than one ValidRequestValues.+data V1beta1CapacityRequestPolicy = V1beta1CapacityRequestPolicy+ { v1beta1CapacityRequestPolicyDefault :: !(Maybe Quantity) -- ^ "default"+ , v1beta1CapacityRequestPolicyValidRange :: !(Maybe V1beta1CapacityRequestPolicyRange) -- ^ "validRange"+ , v1beta1CapacityRequestPolicyValidValues :: !(Maybe [Quantity]) -- ^ "validValues" - ValidValues defines a set of acceptable quantity values in consuming requests. Must not contain more than 10 entries. Must be sorted in ascending order. If this field is set, Default must be defined and it must be included in ValidValues list. If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≤ max(validValues). If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1CapacityRequestPolicy+instance A.FromJSON V1beta1CapacityRequestPolicy where+ parseJSON = A.withObject "V1beta1CapacityRequestPolicy" $ \o ->+ V1beta1CapacityRequestPolicy+ <$> (o .:? "default")+ <*> (o .:? "validRange")+ <*> (o .:? "validValues")++-- | ToJSON V1beta1CapacityRequestPolicy+instance A.ToJSON V1beta1CapacityRequestPolicy where+ toJSON V1beta1CapacityRequestPolicy {..} =+ _omitNulls+ [ "default" .= v1beta1CapacityRequestPolicyDefault+ , "validRange" .= v1beta1CapacityRequestPolicyValidRange+ , "validValues" .= v1beta1CapacityRequestPolicyValidValues+ ]+++-- | Construct a value of type 'V1beta1CapacityRequestPolicy' (by applying it's required fields, if any)+mkV1beta1CapacityRequestPolicy+ :: V1beta1CapacityRequestPolicy+mkV1beta1CapacityRequestPolicy =+ V1beta1CapacityRequestPolicy+ { v1beta1CapacityRequestPolicyDefault = Nothing+ , v1beta1CapacityRequestPolicyValidRange = Nothing+ , v1beta1CapacityRequestPolicyValidValues = Nothing+ }++-- ** V1beta1CapacityRequestPolicyRange+-- | V1beta1CapacityRequestPolicyRange+-- CapacityRequestPolicyRange defines a valid range for consumable capacity values. - If the requested amount is less than Min, it is rounded up to the Min value. - If Step is set and the requested amount is between Min and Max but not aligned with Step, it will be rounded up to the next value equal to Min + (n * Step). - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, and the device cannot be allocated.+data V1beta1CapacityRequestPolicyRange = V1beta1CapacityRequestPolicyRange+ { v1beta1CapacityRequestPolicyRangeMax :: !(Maybe Quantity) -- ^ "max"+ , v1beta1CapacityRequestPolicyRangeMin :: !(Quantity) -- ^ /Required/ "min"+ , v1beta1CapacityRequestPolicyRangeStep :: !(Maybe Quantity) -- ^ "step"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1CapacityRequestPolicyRange+instance A.FromJSON V1beta1CapacityRequestPolicyRange where+ parseJSON = A.withObject "V1beta1CapacityRequestPolicyRange" $ \o ->+ V1beta1CapacityRequestPolicyRange+ <$> (o .:? "max")+ <*> (o .: "min")+ <*> (o .:? "step")++-- | ToJSON V1beta1CapacityRequestPolicyRange+instance A.ToJSON V1beta1CapacityRequestPolicyRange where+ toJSON V1beta1CapacityRequestPolicyRange {..} =+ _omitNulls+ [ "max" .= v1beta1CapacityRequestPolicyRangeMax+ , "min" .= v1beta1CapacityRequestPolicyRangeMin+ , "step" .= v1beta1CapacityRequestPolicyRangeStep+ ]+++-- | Construct a value of type 'V1beta1CapacityRequestPolicyRange' (by applying it's required fields, if any)+mkV1beta1CapacityRequestPolicyRange+ :: Quantity -- ^ 'v1beta1CapacityRequestPolicyRangeMin' + -> V1beta1CapacityRequestPolicyRange+mkV1beta1CapacityRequestPolicyRange v1beta1CapacityRequestPolicyRangeMin =+ V1beta1CapacityRequestPolicyRange+ { v1beta1CapacityRequestPolicyRangeMax = Nothing+ , v1beta1CapacityRequestPolicyRangeMin+ , v1beta1CapacityRequestPolicyRangeStep = Nothing+ }++-- ** V1beta1CapacityRequirements+-- | V1beta1CapacityRequirements+-- CapacityRequirements defines the capacity requirements for a specific device request.+data V1beta1CapacityRequirements = V1beta1CapacityRequirements+ { v1beta1CapacityRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[<domain>].<name>.compareTo(quantity(<request quantity>)) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid value—because it exceeds what the requestPolicy allows— the device is considered ineligible for allocation. For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity (i.e., the whole device is claimed). - If a requestPolicy is set, the default consumed capacity is determined according to that policy. If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1CapacityRequirements+instance A.FromJSON V1beta1CapacityRequirements where+ parseJSON = A.withObject "V1beta1CapacityRequirements" $ \o ->+ V1beta1CapacityRequirements+ <$> (o .:? "requests")++-- | ToJSON V1beta1CapacityRequirements+instance A.ToJSON V1beta1CapacityRequirements where+ toJSON V1beta1CapacityRequirements {..} =+ _omitNulls+ [ "requests" .= v1beta1CapacityRequirementsRequests+ ]+++-- | Construct a value of type 'V1beta1CapacityRequirements' (by applying it's required fields, if any)+mkV1beta1CapacityRequirements+ :: V1beta1CapacityRequirements+mkV1beta1CapacityRequirements =+ V1beta1CapacityRequirements+ { v1beta1CapacityRequirementsRequests = Nothing+ }++-- ** V1beta1ClusterTrustBundle+-- | V1beta1ClusterTrustBundle+-- ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates). ClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to. It can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.+data V1beta1ClusterTrustBundle = V1beta1ClusterTrustBundle+ { v1beta1ClusterTrustBundleApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ClusterTrustBundleKind :: !(Maybe Text) -- ^ "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+ , v1beta1ClusterTrustBundleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1ClusterTrustBundleSpec :: !(V1beta1ClusterTrustBundleSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ClusterTrustBundle+instance A.FromJSON V1beta1ClusterTrustBundle where+ parseJSON = A.withObject "V1beta1ClusterTrustBundle" $ \o ->+ V1beta1ClusterTrustBundle+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta1ClusterTrustBundle+instance A.ToJSON V1beta1ClusterTrustBundle where+ toJSON V1beta1ClusterTrustBundle {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ClusterTrustBundleApiVersion+ , "kind" .= v1beta1ClusterTrustBundleKind+ , "metadata" .= v1beta1ClusterTrustBundleMetadata+ , "spec" .= v1beta1ClusterTrustBundleSpec+ ]+++-- | Construct a value of type 'V1beta1ClusterTrustBundle' (by applying it's required fields, if any)+mkV1beta1ClusterTrustBundle+ :: V1beta1ClusterTrustBundleSpec -- ^ 'v1beta1ClusterTrustBundleSpec' + -> V1beta1ClusterTrustBundle+mkV1beta1ClusterTrustBundle v1beta1ClusterTrustBundleSpec =+ V1beta1ClusterTrustBundle+ { v1beta1ClusterTrustBundleApiVersion = Nothing+ , v1beta1ClusterTrustBundleKind = Nothing+ , v1beta1ClusterTrustBundleMetadata = Nothing+ , v1beta1ClusterTrustBundleSpec+ }++-- ** V1beta1ClusterTrustBundleList+-- | V1beta1ClusterTrustBundleList+-- ClusterTrustBundleList is a collection of ClusterTrustBundle objects+data V1beta1ClusterTrustBundleList = V1beta1ClusterTrustBundleList+ { v1beta1ClusterTrustBundleListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ClusterTrustBundleListItems :: !([V1beta1ClusterTrustBundle]) -- ^ /Required/ "items" - items is a collection of ClusterTrustBundle objects+ , v1beta1ClusterTrustBundleListKind :: !(Maybe Text) -- ^ "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+ , v1beta1ClusterTrustBundleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ClusterTrustBundleList+instance A.FromJSON V1beta1ClusterTrustBundleList where+ parseJSON = A.withObject "V1beta1ClusterTrustBundleList" $ \o ->+ V1beta1ClusterTrustBundleList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1ClusterTrustBundleList+instance A.ToJSON V1beta1ClusterTrustBundleList where+ toJSON V1beta1ClusterTrustBundleList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ClusterTrustBundleListApiVersion+ , "items" .= v1beta1ClusterTrustBundleListItems+ , "kind" .= v1beta1ClusterTrustBundleListKind+ , "metadata" .= v1beta1ClusterTrustBundleListMetadata+ ]+++-- | Construct a value of type 'V1beta1ClusterTrustBundleList' (by applying it's required fields, if any)+mkV1beta1ClusterTrustBundleList+ :: [V1beta1ClusterTrustBundle] -- ^ 'v1beta1ClusterTrustBundleListItems': items is a collection of ClusterTrustBundle objects+ -> V1beta1ClusterTrustBundleList+mkV1beta1ClusterTrustBundleList v1beta1ClusterTrustBundleListItems =+ V1beta1ClusterTrustBundleList+ { v1beta1ClusterTrustBundleListApiVersion = Nothing+ , v1beta1ClusterTrustBundleListItems+ , v1beta1ClusterTrustBundleListKind = Nothing+ , v1beta1ClusterTrustBundleListMetadata = Nothing+ }++-- ** V1beta1ClusterTrustBundleSpec+-- | V1beta1ClusterTrustBundleSpec+-- ClusterTrustBundleSpec contains the signer and trust anchors.+data V1beta1ClusterTrustBundleSpec = V1beta1ClusterTrustBundleSpec+ { v1beta1ClusterTrustBundleSpecSignerName :: !(Maybe Text) -- ^ "signerName" - signerName indicates the associated signer, if any. In order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName=<the signer name> verb=attest. If signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`. If signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix. List/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.+ , v1beta1ClusterTrustBundleSpecTrustBundle :: !(Text) -- ^ /Required/ "trustBundle" - trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ClusterTrustBundleSpec+instance A.FromJSON V1beta1ClusterTrustBundleSpec where+ parseJSON = A.withObject "V1beta1ClusterTrustBundleSpec" $ \o ->+ V1beta1ClusterTrustBundleSpec+ <$> (o .:? "signerName")+ <*> (o .: "trustBundle")++-- | ToJSON V1beta1ClusterTrustBundleSpec+instance A.ToJSON V1beta1ClusterTrustBundleSpec where+ toJSON V1beta1ClusterTrustBundleSpec {..} =+ _omitNulls+ [ "signerName" .= v1beta1ClusterTrustBundleSpecSignerName+ , "trustBundle" .= v1beta1ClusterTrustBundleSpecTrustBundle+ ]+++-- | Construct a value of type 'V1beta1ClusterTrustBundleSpec' (by applying it's required fields, if any)+mkV1beta1ClusterTrustBundleSpec+ :: Text -- ^ 'v1beta1ClusterTrustBundleSpecTrustBundle': trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.+ -> V1beta1ClusterTrustBundleSpec+mkV1beta1ClusterTrustBundleSpec v1beta1ClusterTrustBundleSpecTrustBundle =+ V1beta1ClusterTrustBundleSpec+ { v1beta1ClusterTrustBundleSpecSignerName = Nothing+ , v1beta1ClusterTrustBundleSpecTrustBundle+ }++-- ** V1beta1Counter+-- | V1beta1Counter+-- Counter describes a quantity associated with a device.+data V1beta1Counter = V1beta1Counter+ { v1beta1CounterValue :: !(Quantity) -- ^ /Required/ "value"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1Counter+instance A.FromJSON V1beta1Counter where+ parseJSON = A.withObject "V1beta1Counter" $ \o ->+ V1beta1Counter+ <$> (o .: "value")++-- | ToJSON V1beta1Counter+instance A.ToJSON V1beta1Counter where+ toJSON V1beta1Counter {..} =+ _omitNulls+ [ "value" .= v1beta1CounterValue+ ]+++-- | Construct a value of type 'V1beta1Counter' (by applying it's required fields, if any)+mkV1beta1Counter+ :: Quantity -- ^ 'v1beta1CounterValue' + -> V1beta1Counter+mkV1beta1Counter v1beta1CounterValue =+ V1beta1Counter+ { v1beta1CounterValue+ }++-- ** V1beta1CounterSet+-- | V1beta1CounterSet+-- CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.+data V1beta1CounterSet = V1beta1CounterSet+ { v1beta1CounterSetCounters :: !((Map.Map String V1beta1Counter)) -- ^ /Required/ "counters" - Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters is 32.+ , v1beta1CounterSetName :: !(Text) -- ^ /Required/ "name" - Name defines the name of the counter set. It must be a DNS label.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1CounterSet+instance A.FromJSON V1beta1CounterSet where+ parseJSON = A.withObject "V1beta1CounterSet" $ \o ->+ V1beta1CounterSet+ <$> (o .: "counters")+ <*> (o .: "name")++-- | ToJSON V1beta1CounterSet+instance A.ToJSON V1beta1CounterSet where+ toJSON V1beta1CounterSet {..} =+ _omitNulls+ [ "counters" .= v1beta1CounterSetCounters+ , "name" .= v1beta1CounterSetName+ ]+++-- | Construct a value of type 'V1beta1CounterSet' (by applying it's required fields, if any)+mkV1beta1CounterSet+ :: (Map.Map String V1beta1Counter) -- ^ 'v1beta1CounterSetCounters': Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters is 32.+ -> Text -- ^ 'v1beta1CounterSetName': Name defines the name of the counter set. It must be a DNS label.+ -> V1beta1CounterSet+mkV1beta1CounterSet v1beta1CounterSetCounters v1beta1CounterSetName =+ V1beta1CounterSet+ { v1beta1CounterSetCounters+ , v1beta1CounterSetName+ }++-- ** V1beta1Device+-- | V1beta1Device+-- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.+data V1beta1Device = V1beta1Device+ { v1beta1DeviceBasic :: !(Maybe V1beta1BasicDevice) -- ^ "basic"+ , v1beta1DeviceName :: !(Text) -- ^ /Required/ "name" - Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1Device+instance A.FromJSON V1beta1Device where+ parseJSON = A.withObject "V1beta1Device" $ \o ->+ V1beta1Device+ <$> (o .:? "basic")+ <*> (o .: "name")++-- | ToJSON V1beta1Device+instance A.ToJSON V1beta1Device where+ toJSON V1beta1Device {..} =+ _omitNulls+ [ "basic" .= v1beta1DeviceBasic+ , "name" .= v1beta1DeviceName+ ]+++-- | Construct a value of type 'V1beta1Device' (by applying it's required fields, if any)+mkV1beta1Device+ :: Text -- ^ 'v1beta1DeviceName': Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.+ -> V1beta1Device+mkV1beta1Device v1beta1DeviceName =+ V1beta1Device+ { v1beta1DeviceBasic = Nothing+ , v1beta1DeviceName+ }++-- ** V1beta1DeviceAllocationConfiguration+-- | V1beta1DeviceAllocationConfiguration+-- DeviceAllocationConfiguration gets embedded in an AllocationResult.+data V1beta1DeviceAllocationConfiguration = V1beta1DeviceAllocationConfiguration+ { v1beta1DeviceAllocationConfigurationOpaque :: !(Maybe V1beta1OpaqueDeviceConfiguration) -- ^ "opaque"+ , v1beta1DeviceAllocationConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.+ , v1beta1DeviceAllocationConfigurationSource :: !(Text) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceAllocationConfiguration+instance A.FromJSON V1beta1DeviceAllocationConfiguration where+ parseJSON = A.withObject "V1beta1DeviceAllocationConfiguration" $ \o ->+ V1beta1DeviceAllocationConfiguration+ <$> (o .:? "opaque")+ <*> (o .:? "requests")+ <*> (o .: "source")++-- | ToJSON V1beta1DeviceAllocationConfiguration+instance A.ToJSON V1beta1DeviceAllocationConfiguration where+ toJSON V1beta1DeviceAllocationConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1beta1DeviceAllocationConfigurationOpaque+ , "requests" .= v1beta1DeviceAllocationConfigurationRequests+ , "source" .= v1beta1DeviceAllocationConfigurationSource+ ]+++-- | Construct a value of type 'V1beta1DeviceAllocationConfiguration' (by applying it's required fields, if any)+mkV1beta1DeviceAllocationConfiguration+ :: Text -- ^ 'v1beta1DeviceAllocationConfigurationSource': 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.+ -> V1beta1DeviceAllocationConfiguration+mkV1beta1DeviceAllocationConfiguration v1beta1DeviceAllocationConfigurationSource =+ V1beta1DeviceAllocationConfiguration+ { v1beta1DeviceAllocationConfigurationOpaque = Nothing+ , v1beta1DeviceAllocationConfigurationRequests = Nothing+ , v1beta1DeviceAllocationConfigurationSource+ }++-- ** V1beta1DeviceAllocationResult+-- | V1beta1DeviceAllocationResult+-- DeviceAllocationResult is the result of allocating devices.+data V1beta1DeviceAllocationResult = V1beta1DeviceAllocationResult+ { v1beta1DeviceAllocationResultConfig :: !(Maybe [V1beta1DeviceAllocationConfiguration]) -- ^ "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.+ , v1beta1DeviceAllocationResultResults :: !(Maybe [V1beta1DeviceRequestAllocationResult]) -- ^ "results" - Results lists all allocated devices.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceAllocationResult+instance A.FromJSON V1beta1DeviceAllocationResult where+ parseJSON = A.withObject "V1beta1DeviceAllocationResult" $ \o ->+ V1beta1DeviceAllocationResult+ <$> (o .:? "config")+ <*> (o .:? "results")++-- | ToJSON V1beta1DeviceAllocationResult+instance A.ToJSON V1beta1DeviceAllocationResult where+ toJSON V1beta1DeviceAllocationResult {..} =+ _omitNulls+ [ "config" .= v1beta1DeviceAllocationResultConfig+ , "results" .= v1beta1DeviceAllocationResultResults+ ]+++-- | Construct a value of type 'V1beta1DeviceAllocationResult' (by applying it's required fields, if any)+mkV1beta1DeviceAllocationResult+ :: V1beta1DeviceAllocationResult+mkV1beta1DeviceAllocationResult =+ V1beta1DeviceAllocationResult+ { v1beta1DeviceAllocationResultConfig = Nothing+ , v1beta1DeviceAllocationResultResults = Nothing+ }++-- ** V1beta1DeviceAttribute+-- | V1beta1DeviceAttribute+-- DeviceAttribute must have exactly one field set.+data V1beta1DeviceAttribute = V1beta1DeviceAttribute+ { v1beta1DeviceAttributeBool :: !(Maybe Bool) -- ^ "bool" - BoolValue is a true/false value.+ , v1beta1DeviceAttributeInt :: !(Maybe Integer) -- ^ "int" - IntValue is a number.+ , v1beta1DeviceAttributeString :: !(Maybe Text) -- ^ "string" - StringValue is a string. Must not be longer than 64 characters.+ , v1beta1DeviceAttributeVersion :: !(Maybe Text) -- ^ "version" - VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceAttribute+instance A.FromJSON V1beta1DeviceAttribute where+ parseJSON = A.withObject "V1beta1DeviceAttribute" $ \o ->+ V1beta1DeviceAttribute+ <$> (o .:? "bool")+ <*> (o .:? "int")+ <*> (o .:? "string")+ <*> (o .:? "version")++-- | ToJSON V1beta1DeviceAttribute+instance A.ToJSON V1beta1DeviceAttribute where+ toJSON V1beta1DeviceAttribute {..} =+ _omitNulls+ [ "bool" .= v1beta1DeviceAttributeBool+ , "int" .= v1beta1DeviceAttributeInt+ , "string" .= v1beta1DeviceAttributeString+ , "version" .= v1beta1DeviceAttributeVersion+ ]+++-- | Construct a value of type 'V1beta1DeviceAttribute' (by applying it's required fields, if any)+mkV1beta1DeviceAttribute+ :: V1beta1DeviceAttribute+mkV1beta1DeviceAttribute =+ V1beta1DeviceAttribute+ { v1beta1DeviceAttributeBool = Nothing+ , v1beta1DeviceAttributeInt = Nothing+ , v1beta1DeviceAttributeString = Nothing+ , v1beta1DeviceAttributeVersion = Nothing+ }++-- ** V1beta1DeviceCapacity+-- | V1beta1DeviceCapacity+-- DeviceCapacity describes a quantity associated with a device.+data V1beta1DeviceCapacity = V1beta1DeviceCapacity+ { v1beta1DeviceCapacityRequestPolicy :: !(Maybe V1beta1CapacityRequestPolicy) -- ^ "requestPolicy"+ , v1beta1DeviceCapacityValue :: !(Quantity) -- ^ /Required/ "value"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceCapacity+instance A.FromJSON V1beta1DeviceCapacity where+ parseJSON = A.withObject "V1beta1DeviceCapacity" $ \o ->+ V1beta1DeviceCapacity+ <$> (o .:? "requestPolicy")+ <*> (o .: "value")++-- | ToJSON V1beta1DeviceCapacity+instance A.ToJSON V1beta1DeviceCapacity where+ toJSON V1beta1DeviceCapacity {..} =+ _omitNulls+ [ "requestPolicy" .= v1beta1DeviceCapacityRequestPolicy+ , "value" .= v1beta1DeviceCapacityValue+ ]+++-- | Construct a value of type 'V1beta1DeviceCapacity' (by applying it's required fields, if any)+mkV1beta1DeviceCapacity+ :: Quantity -- ^ 'v1beta1DeviceCapacityValue' + -> V1beta1DeviceCapacity+mkV1beta1DeviceCapacity v1beta1DeviceCapacityValue =+ V1beta1DeviceCapacity+ { v1beta1DeviceCapacityRequestPolicy = Nothing+ , v1beta1DeviceCapacityValue+ }++-- ** V1beta1DeviceClaim+-- | V1beta1DeviceClaim+-- DeviceClaim defines how to request devices with a ResourceClaim.+data V1beta1DeviceClaim = V1beta1DeviceClaim+ { v1beta1DeviceClaimConfig :: !(Maybe [V1beta1DeviceClaimConfiguration]) -- ^ "config" - This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.+ , v1beta1DeviceClaimConstraints :: !(Maybe [V1beta1DeviceConstraint]) -- ^ "constraints" - These constraints must be satisfied by the set of devices that get allocated for the claim.+ , v1beta1DeviceClaimRequests :: !(Maybe [V1beta1DeviceRequest]) -- ^ "requests" - Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceClaim+instance A.FromJSON V1beta1DeviceClaim where+ parseJSON = A.withObject "V1beta1DeviceClaim" $ \o ->+ V1beta1DeviceClaim+ <$> (o .:? "config")+ <*> (o .:? "constraints")+ <*> (o .:? "requests")++-- | ToJSON V1beta1DeviceClaim+instance A.ToJSON V1beta1DeviceClaim where+ toJSON V1beta1DeviceClaim {..} =+ _omitNulls+ [ "config" .= v1beta1DeviceClaimConfig+ , "constraints" .= v1beta1DeviceClaimConstraints+ , "requests" .= v1beta1DeviceClaimRequests+ ]+++-- | Construct a value of type 'V1beta1DeviceClaim' (by applying it's required fields, if any)+mkV1beta1DeviceClaim+ :: V1beta1DeviceClaim+mkV1beta1DeviceClaim =+ V1beta1DeviceClaim+ { v1beta1DeviceClaimConfig = Nothing+ , v1beta1DeviceClaimConstraints = Nothing+ , v1beta1DeviceClaimRequests = Nothing+ }++-- ** V1beta1DeviceClaimConfiguration+-- | V1beta1DeviceClaimConfiguration+-- DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.+data V1beta1DeviceClaimConfiguration = V1beta1DeviceClaimConfiguration+ { v1beta1DeviceClaimConfigurationOpaque :: !(Maybe V1beta1OpaqueDeviceConfiguration) -- ^ "opaque"+ , v1beta1DeviceClaimConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceClaimConfiguration+instance A.FromJSON V1beta1DeviceClaimConfiguration where+ parseJSON = A.withObject "V1beta1DeviceClaimConfiguration" $ \o ->+ V1beta1DeviceClaimConfiguration+ <$> (o .:? "opaque")+ <*> (o .:? "requests")++-- | ToJSON V1beta1DeviceClaimConfiguration+instance A.ToJSON V1beta1DeviceClaimConfiguration where+ toJSON V1beta1DeviceClaimConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1beta1DeviceClaimConfigurationOpaque+ , "requests" .= v1beta1DeviceClaimConfigurationRequests+ ]+++-- | Construct a value of type 'V1beta1DeviceClaimConfiguration' (by applying it's required fields, if any)+mkV1beta1DeviceClaimConfiguration+ :: V1beta1DeviceClaimConfiguration+mkV1beta1DeviceClaimConfiguration =+ V1beta1DeviceClaimConfiguration+ { v1beta1DeviceClaimConfigurationOpaque = Nothing+ , v1beta1DeviceClaimConfigurationRequests = Nothing+ }++-- ** V1beta1DeviceClass+-- | V1beta1DeviceClass+-- 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.+data V1beta1DeviceClass = V1beta1DeviceClass+ { v1beta1DeviceClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1DeviceClassKind :: !(Maybe Text) -- ^ "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+ , v1beta1DeviceClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1DeviceClassSpec :: !(V1beta1DeviceClassSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceClass+instance A.FromJSON V1beta1DeviceClass where+ parseJSON = A.withObject "V1beta1DeviceClass" $ \o ->+ V1beta1DeviceClass+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta1DeviceClass+instance A.ToJSON V1beta1DeviceClass where+ toJSON V1beta1DeviceClass {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1DeviceClassApiVersion+ , "kind" .= v1beta1DeviceClassKind+ , "metadata" .= v1beta1DeviceClassMetadata+ , "spec" .= v1beta1DeviceClassSpec+ ]+++-- | Construct a value of type 'V1beta1DeviceClass' (by applying it's required fields, if any)+mkV1beta1DeviceClass+ :: V1beta1DeviceClassSpec -- ^ 'v1beta1DeviceClassSpec' + -> V1beta1DeviceClass+mkV1beta1DeviceClass v1beta1DeviceClassSpec =+ V1beta1DeviceClass+ { v1beta1DeviceClassApiVersion = Nothing+ , v1beta1DeviceClassKind = Nothing+ , v1beta1DeviceClassMetadata = Nothing+ , v1beta1DeviceClassSpec+ }++-- ** V1beta1DeviceClassConfiguration+-- | V1beta1DeviceClassConfiguration+-- DeviceClassConfiguration is used in DeviceClass.+data V1beta1DeviceClassConfiguration = V1beta1DeviceClassConfiguration+ { v1beta1DeviceClassConfigurationOpaque :: !(Maybe V1beta1OpaqueDeviceConfiguration) -- ^ "opaque"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceClassConfiguration+instance A.FromJSON V1beta1DeviceClassConfiguration where+ parseJSON = A.withObject "V1beta1DeviceClassConfiguration" $ \o ->+ V1beta1DeviceClassConfiguration+ <$> (o .:? "opaque")++-- | ToJSON V1beta1DeviceClassConfiguration+instance A.ToJSON V1beta1DeviceClassConfiguration where+ toJSON V1beta1DeviceClassConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1beta1DeviceClassConfigurationOpaque+ ]+++-- | Construct a value of type 'V1beta1DeviceClassConfiguration' (by applying it's required fields, if any)+mkV1beta1DeviceClassConfiguration+ :: V1beta1DeviceClassConfiguration+mkV1beta1DeviceClassConfiguration =+ V1beta1DeviceClassConfiguration+ { v1beta1DeviceClassConfigurationOpaque = Nothing+ }++-- ** V1beta1DeviceClassList+-- | V1beta1DeviceClassList+-- DeviceClassList is a collection of classes.+data V1beta1DeviceClassList = V1beta1DeviceClassList+ { v1beta1DeviceClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1DeviceClassListItems :: !([V1beta1DeviceClass]) -- ^ /Required/ "items" - Items is the list of resource classes.+ , v1beta1DeviceClassListKind :: !(Maybe Text) -- ^ "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+ , v1beta1DeviceClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceClassList+instance A.FromJSON V1beta1DeviceClassList where+ parseJSON = A.withObject "V1beta1DeviceClassList" $ \o ->+ V1beta1DeviceClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1DeviceClassList+instance A.ToJSON V1beta1DeviceClassList where+ toJSON V1beta1DeviceClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1DeviceClassListApiVersion+ , "items" .= v1beta1DeviceClassListItems+ , "kind" .= v1beta1DeviceClassListKind+ , "metadata" .= v1beta1DeviceClassListMetadata+ ]+++-- | Construct a value of type 'V1beta1DeviceClassList' (by applying it's required fields, if any)+mkV1beta1DeviceClassList+ :: [V1beta1DeviceClass] -- ^ 'v1beta1DeviceClassListItems': Items is the list of resource classes.+ -> V1beta1DeviceClassList+mkV1beta1DeviceClassList v1beta1DeviceClassListItems =+ V1beta1DeviceClassList+ { v1beta1DeviceClassListApiVersion = Nothing+ , v1beta1DeviceClassListItems+ , v1beta1DeviceClassListKind = Nothing+ , v1beta1DeviceClassListMetadata = Nothing+ }++-- ** V1beta1DeviceClassSpec+-- | V1beta1DeviceClassSpec+-- DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.+data V1beta1DeviceClassSpec = V1beta1DeviceClassSpec+ { v1beta1DeviceClassSpecConfig :: !(Maybe [V1beta1DeviceClassConfiguration]) -- ^ "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.+ , v1beta1DeviceClassSpecExtendedResourceName :: !(Maybe Text) -- ^ "extendedResourceName" - ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. This is an alpha field.+ , v1beta1DeviceClassSpecSelectors :: !(Maybe [V1beta1DeviceSelector]) -- ^ "selectors" - Each selector must be satisfied by a device which is claimed via this class.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceClassSpec+instance A.FromJSON V1beta1DeviceClassSpec where+ parseJSON = A.withObject "V1beta1DeviceClassSpec" $ \o ->+ V1beta1DeviceClassSpec+ <$> (o .:? "config")+ <*> (o .:? "extendedResourceName")+ <*> (o .:? "selectors")++-- | ToJSON V1beta1DeviceClassSpec+instance A.ToJSON V1beta1DeviceClassSpec where+ toJSON V1beta1DeviceClassSpec {..} =+ _omitNulls+ [ "config" .= v1beta1DeviceClassSpecConfig+ , "extendedResourceName" .= v1beta1DeviceClassSpecExtendedResourceName+ , "selectors" .= v1beta1DeviceClassSpecSelectors+ ]+++-- | Construct a value of type 'V1beta1DeviceClassSpec' (by applying it's required fields, if any)+mkV1beta1DeviceClassSpec+ :: V1beta1DeviceClassSpec+mkV1beta1DeviceClassSpec =+ V1beta1DeviceClassSpec+ { v1beta1DeviceClassSpecConfig = Nothing+ , v1beta1DeviceClassSpecExtendedResourceName = Nothing+ , v1beta1DeviceClassSpecSelectors = Nothing+ }++-- ** V1beta1DeviceConstraint+-- | V1beta1DeviceConstraint+-- DeviceConstraint must have exactly one field set besides Requests.+data V1beta1DeviceConstraint = V1beta1DeviceConstraint+ { v1beta1DeviceConstraintDistinctAttribute :: !(Maybe Text) -- ^ "distinctAttribute" - DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. This acts as the inverse of MatchAttribute. This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs.+ , v1beta1DeviceConstraintMatchAttribute :: !(Maybe Text) -- ^ "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.+ , v1beta1DeviceConstraintRequests :: !(Maybe [Text]) -- ^ "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. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceConstraint+instance A.FromJSON V1beta1DeviceConstraint where+ parseJSON = A.withObject "V1beta1DeviceConstraint" $ \o ->+ V1beta1DeviceConstraint+ <$> (o .:? "distinctAttribute")+ <*> (o .:? "matchAttribute")+ <*> (o .:? "requests")++-- | ToJSON V1beta1DeviceConstraint+instance A.ToJSON V1beta1DeviceConstraint where+ toJSON V1beta1DeviceConstraint {..} =+ _omitNulls+ [ "distinctAttribute" .= v1beta1DeviceConstraintDistinctAttribute+ , "matchAttribute" .= v1beta1DeviceConstraintMatchAttribute+ , "requests" .= v1beta1DeviceConstraintRequests+ ]+++-- | Construct a value of type 'V1beta1DeviceConstraint' (by applying it's required fields, if any)+mkV1beta1DeviceConstraint+ :: V1beta1DeviceConstraint+mkV1beta1DeviceConstraint =+ V1beta1DeviceConstraint+ { v1beta1DeviceConstraintDistinctAttribute = Nothing+ , v1beta1DeviceConstraintMatchAttribute = Nothing+ , v1beta1DeviceConstraintRequests = Nothing+ }++-- ** V1beta1DeviceCounterConsumption+-- | V1beta1DeviceCounterConsumption+-- DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.+data V1beta1DeviceCounterConsumption = V1beta1DeviceCounterConsumption+ { v1beta1DeviceCounterConsumptionCounterSet :: !(Text) -- ^ /Required/ "counterSet" - CounterSet is the name of the set from which the counters defined will be consumed.+ , v1beta1DeviceCounterConsumptionCounters :: !((Map.Map String V1beta1Counter)) -- ^ /Required/ "counters" - Counters defines the counters that will be consumed by the device. The maximum number of counters is 32.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceCounterConsumption+instance A.FromJSON V1beta1DeviceCounterConsumption where+ parseJSON = A.withObject "V1beta1DeviceCounterConsumption" $ \o ->+ V1beta1DeviceCounterConsumption+ <$> (o .: "counterSet")+ <*> (o .: "counters")++-- | ToJSON V1beta1DeviceCounterConsumption+instance A.ToJSON V1beta1DeviceCounterConsumption where+ toJSON V1beta1DeviceCounterConsumption {..} =+ _omitNulls+ [ "counterSet" .= v1beta1DeviceCounterConsumptionCounterSet+ , "counters" .= v1beta1DeviceCounterConsumptionCounters+ ]+++-- | Construct a value of type 'V1beta1DeviceCounterConsumption' (by applying it's required fields, if any)+mkV1beta1DeviceCounterConsumption+ :: Text -- ^ 'v1beta1DeviceCounterConsumptionCounterSet': CounterSet is the name of the set from which the counters defined will be consumed.+ -> (Map.Map String V1beta1Counter) -- ^ 'v1beta1DeviceCounterConsumptionCounters': Counters defines the counters that will be consumed by the device. The maximum number of counters is 32.+ -> V1beta1DeviceCounterConsumption+mkV1beta1DeviceCounterConsumption v1beta1DeviceCounterConsumptionCounterSet v1beta1DeviceCounterConsumptionCounters =+ V1beta1DeviceCounterConsumption+ { v1beta1DeviceCounterConsumptionCounterSet+ , v1beta1DeviceCounterConsumptionCounters+ }++-- ** V1beta1DeviceRequest+-- | V1beta1DeviceRequest+-- 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.+data V1beta1DeviceRequest = V1beta1DeviceRequest+ { v1beta1DeviceRequestAdminAccess :: !(Maybe Bool) -- ^ "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 field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list. 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.+ , v1beta1DeviceRequestAllocationMode :: !(Maybe Text) -- ^ "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. At least one device must exist on the node for the allocation to succeed. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field. This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.+ , v1beta1DeviceRequestCapacity :: !(Maybe V1beta1CapacityRequirements) -- ^ "capacity"+ , v1beta1DeviceRequestCount :: !(Maybe Integer) -- ^ "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. This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.+ , v1beta1DeviceRequestDeviceClassName :: !(Maybe Text) -- ^ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A class is required if no subrequests are specified in the firstAvailable list and no class can be set if subrequests are specified in the firstAvailable list. Which classes are available depends on the cluster. 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.+ , v1beta1DeviceRequestFirstAvailable :: !(Maybe [V1beta1DeviceSubRequest]) -- ^ "firstAvailable" - FirstAvailable contains subrequests, of which exactly one will be satisfied by the scheduler to satisfy this request. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one cannot be used. This field may only be set in the entries of DeviceClaim.Requests. DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.+ , v1beta1DeviceRequestName :: !(Text) -- ^ /Required/ "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 and unique among all DeviceRequests in a ResourceClaim.+ , v1beta1DeviceRequestSelectors :: !(Maybe [V1beta1DeviceSelector]) -- ^ "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. This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list.+ , v1beta1DeviceRequestTolerations :: !(Maybe [V1beta1DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This field can only be set when deviceClassName is set and no subrequests are specified in the firstAvailable list. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceRequest+instance A.FromJSON V1beta1DeviceRequest where+ parseJSON = A.withObject "V1beta1DeviceRequest" $ \o ->+ V1beta1DeviceRequest+ <$> (o .:? "adminAccess")+ <*> (o .:? "allocationMode")+ <*> (o .:? "capacity")+ <*> (o .:? "count")+ <*> (o .:? "deviceClassName")+ <*> (o .:? "firstAvailable")+ <*> (o .: "name")+ <*> (o .:? "selectors")+ <*> (o .:? "tolerations")++-- | ToJSON V1beta1DeviceRequest+instance A.ToJSON V1beta1DeviceRequest where+ toJSON V1beta1DeviceRequest {..} =+ _omitNulls+ [ "adminAccess" .= v1beta1DeviceRequestAdminAccess+ , "allocationMode" .= v1beta1DeviceRequestAllocationMode+ , "capacity" .= v1beta1DeviceRequestCapacity+ , "count" .= v1beta1DeviceRequestCount+ , "deviceClassName" .= v1beta1DeviceRequestDeviceClassName+ , "firstAvailable" .= v1beta1DeviceRequestFirstAvailable+ , "name" .= v1beta1DeviceRequestName+ , "selectors" .= v1beta1DeviceRequestSelectors+ , "tolerations" .= v1beta1DeviceRequestTolerations+ ]+++-- | Construct a value of type 'V1beta1DeviceRequest' (by applying it's required fields, if any)+mkV1beta1DeviceRequest+ :: Text -- ^ 'v1beta1DeviceRequestName': 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 and unique among all DeviceRequests in a ResourceClaim.+ -> V1beta1DeviceRequest+mkV1beta1DeviceRequest v1beta1DeviceRequestName =+ V1beta1DeviceRequest+ { v1beta1DeviceRequestAdminAccess = Nothing+ , v1beta1DeviceRequestAllocationMode = Nothing+ , v1beta1DeviceRequestCapacity = Nothing+ , v1beta1DeviceRequestCount = Nothing+ , v1beta1DeviceRequestDeviceClassName = Nothing+ , v1beta1DeviceRequestFirstAvailable = Nothing+ , v1beta1DeviceRequestName+ , v1beta1DeviceRequestSelectors = Nothing+ , v1beta1DeviceRequestTolerations = Nothing+ }++-- ** V1beta1DeviceRequestAllocationResult+-- | V1beta1DeviceRequestAllocationResult+-- DeviceRequestAllocationResult contains the allocation result for one request.+data V1beta1DeviceRequestAllocationResult = V1beta1DeviceRequestAllocationResult+ { v1beta1DeviceRequestAllocationResultAdminAccess :: !(Maybe Bool) -- ^ "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.+ , v1beta1DeviceRequestAllocationResultBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta1DeviceRequestAllocationResultBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta1DeviceRequestAllocationResultConsumedCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "consumedCapacity" - ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). The total consumed capacity for each device must not exceed the DeviceCapacity's Value. This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero.+ , v1beta1DeviceRequestAllocationResultDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ , v1beta1DeviceRequestAllocationResultDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1beta1DeviceRequestAllocationResultPool :: !(Text) -- ^ /Required/ "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.+ , v1beta1DeviceRequestAllocationResultRequest :: !(Text) -- ^ /Required/ "request" - Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.+ , v1beta1DeviceRequestAllocationResultShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device.+ , v1beta1DeviceRequestAllocationResultTolerations :: !(Maybe [V1beta1DeviceToleration]) -- ^ "tolerations" - A copy of all tolerations specified in the request at the time when the device got allocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceRequestAllocationResult+instance A.FromJSON V1beta1DeviceRequestAllocationResult where+ parseJSON = A.withObject "V1beta1DeviceRequestAllocationResult" $ \o ->+ V1beta1DeviceRequestAllocationResult+ <$> (o .:? "adminAccess")+ <*> (o .:? "bindingConditions")+ <*> (o .:? "bindingFailureConditions")+ <*> (o .:? "consumedCapacity")+ <*> (o .: "device")+ <*> (o .: "driver")+ <*> (o .: "pool")+ <*> (o .: "request")+ <*> (o .:? "shareID")+ <*> (o .:? "tolerations")++-- | ToJSON V1beta1DeviceRequestAllocationResult+instance A.ToJSON V1beta1DeviceRequestAllocationResult where+ toJSON V1beta1DeviceRequestAllocationResult {..} =+ _omitNulls+ [ "adminAccess" .= v1beta1DeviceRequestAllocationResultAdminAccess+ , "bindingConditions" .= v1beta1DeviceRequestAllocationResultBindingConditions+ , "bindingFailureConditions" .= v1beta1DeviceRequestAllocationResultBindingFailureConditions+ , "consumedCapacity" .= v1beta1DeviceRequestAllocationResultConsumedCapacity+ , "device" .= v1beta1DeviceRequestAllocationResultDevice+ , "driver" .= v1beta1DeviceRequestAllocationResultDriver+ , "pool" .= v1beta1DeviceRequestAllocationResultPool+ , "request" .= v1beta1DeviceRequestAllocationResultRequest+ , "shareID" .= v1beta1DeviceRequestAllocationResultShareId+ , "tolerations" .= v1beta1DeviceRequestAllocationResultTolerations+ ]+++-- | Construct a value of type 'V1beta1DeviceRequestAllocationResult' (by applying it's required fields, if any)+mkV1beta1DeviceRequestAllocationResult+ :: Text -- ^ 'v1beta1DeviceRequestAllocationResultDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ -> Text -- ^ 'v1beta1DeviceRequestAllocationResultDriver': 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. It should use only lower case characters.+ -> Text -- ^ 'v1beta1DeviceRequestAllocationResultPool': 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.+ -> Text -- ^ 'v1beta1DeviceRequestAllocationResultRequest': Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.+ -> V1beta1DeviceRequestAllocationResult+mkV1beta1DeviceRequestAllocationResult v1beta1DeviceRequestAllocationResultDevice v1beta1DeviceRequestAllocationResultDriver v1beta1DeviceRequestAllocationResultPool v1beta1DeviceRequestAllocationResultRequest =+ V1beta1DeviceRequestAllocationResult+ { v1beta1DeviceRequestAllocationResultAdminAccess = Nothing+ , v1beta1DeviceRequestAllocationResultBindingConditions = Nothing+ , v1beta1DeviceRequestAllocationResultBindingFailureConditions = Nothing+ , v1beta1DeviceRequestAllocationResultConsumedCapacity = Nothing+ , v1beta1DeviceRequestAllocationResultDevice+ , v1beta1DeviceRequestAllocationResultDriver+ , v1beta1DeviceRequestAllocationResultPool+ , v1beta1DeviceRequestAllocationResultRequest+ , v1beta1DeviceRequestAllocationResultShareId = Nothing+ , v1beta1DeviceRequestAllocationResultTolerations = Nothing+ }++-- ** V1beta1DeviceSelector+-- | V1beta1DeviceSelector+-- DeviceSelector must have exactly one field set.+data V1beta1DeviceSelector = V1beta1DeviceSelector+ { v1beta1DeviceSelectorCel :: !(Maybe V1beta1CELDeviceSelector) -- ^ "cel"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceSelector+instance A.FromJSON V1beta1DeviceSelector where+ parseJSON = A.withObject "V1beta1DeviceSelector" $ \o ->+ V1beta1DeviceSelector+ <$> (o .:? "cel")++-- | ToJSON V1beta1DeviceSelector+instance A.ToJSON V1beta1DeviceSelector where+ toJSON V1beta1DeviceSelector {..} =+ _omitNulls+ [ "cel" .= v1beta1DeviceSelectorCel+ ]+++-- | Construct a value of type 'V1beta1DeviceSelector' (by applying it's required fields, if any)+mkV1beta1DeviceSelector+ :: V1beta1DeviceSelector+mkV1beta1DeviceSelector =+ V1beta1DeviceSelector+ { v1beta1DeviceSelectorCel = Nothing+ }++-- ** V1beta1DeviceSubRequest+-- | V1beta1DeviceSubRequest+-- DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to Request, but doesn't expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.+data V1beta1DeviceSubRequest = V1beta1DeviceSubRequest+ { v1beta1DeviceSubRequestAllocationMode :: !(Maybe Text) -- ^ "allocationMode" - AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. 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 subrequest is for all of the matching devices in a pool. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.+ , v1beta1DeviceSubRequestCapacity :: !(Maybe V1beta1CapacityRequirements) -- ^ "capacity"+ , v1beta1DeviceSubRequestCount :: !(Maybe Integer) -- ^ "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.+ , v1beta1DeviceSubRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.+ , v1beta1DeviceSubRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.+ , v1beta1DeviceSubRequestSelectors :: !(Maybe [V1beta1DeviceSelector]) -- ^ "selectors" - Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.+ , v1beta1DeviceSubRequestTolerations :: !(Maybe [V1beta1DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceSubRequest+instance A.FromJSON V1beta1DeviceSubRequest where+ parseJSON = A.withObject "V1beta1DeviceSubRequest" $ \o ->+ V1beta1DeviceSubRequest+ <$> (o .:? "allocationMode")+ <*> (o .:? "capacity")+ <*> (o .:? "count")+ <*> (o .: "deviceClassName")+ <*> (o .: "name")+ <*> (o .:? "selectors")+ <*> (o .:? "tolerations")++-- | ToJSON V1beta1DeviceSubRequest+instance A.ToJSON V1beta1DeviceSubRequest where+ toJSON V1beta1DeviceSubRequest {..} =+ _omitNulls+ [ "allocationMode" .= v1beta1DeviceSubRequestAllocationMode+ , "capacity" .= v1beta1DeviceSubRequestCapacity+ , "count" .= v1beta1DeviceSubRequestCount+ , "deviceClassName" .= v1beta1DeviceSubRequestDeviceClassName+ , "name" .= v1beta1DeviceSubRequestName+ , "selectors" .= v1beta1DeviceSubRequestSelectors+ , "tolerations" .= v1beta1DeviceSubRequestTolerations+ ]+++-- | Construct a value of type 'V1beta1DeviceSubRequest' (by applying it's required fields, if any)+mkV1beta1DeviceSubRequest+ :: Text -- ^ 'v1beta1DeviceSubRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.+ -> Text -- ^ 'v1beta1DeviceSubRequestName': Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.+ -> V1beta1DeviceSubRequest+mkV1beta1DeviceSubRequest v1beta1DeviceSubRequestDeviceClassName v1beta1DeviceSubRequestName =+ V1beta1DeviceSubRequest+ { v1beta1DeviceSubRequestAllocationMode = Nothing+ , v1beta1DeviceSubRequestCapacity = Nothing+ , v1beta1DeviceSubRequestCount = Nothing+ , v1beta1DeviceSubRequestDeviceClassName+ , v1beta1DeviceSubRequestName+ , v1beta1DeviceSubRequestSelectors = Nothing+ , v1beta1DeviceSubRequestTolerations = Nothing+ }++-- ** V1beta1DeviceTaint+-- | V1beta1DeviceTaint+-- The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.+data V1beta1DeviceTaint = V1beta1DeviceTaint+ { v1beta1DeviceTaintEffect :: !(Text) -- ^ /Required/ "effect" - The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.+ , v1beta1DeviceTaintKey :: !(Text) -- ^ /Required/ "key" - The taint key to be applied to a device. Must be a label name.+ , v1beta1DeviceTaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.+ , v1beta1DeviceTaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key. Must be a label value.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceTaint+instance A.FromJSON V1beta1DeviceTaint where+ parseJSON = A.withObject "V1beta1DeviceTaint" $ \o ->+ V1beta1DeviceTaint+ <$> (o .: "effect")+ <*> (o .: "key")+ <*> (o .:? "timeAdded")+ <*> (o .:? "value")++-- | ToJSON V1beta1DeviceTaint+instance A.ToJSON V1beta1DeviceTaint where+ toJSON V1beta1DeviceTaint {..} =+ _omitNulls+ [ "effect" .= v1beta1DeviceTaintEffect+ , "key" .= v1beta1DeviceTaintKey+ , "timeAdded" .= v1beta1DeviceTaintTimeAdded+ , "value" .= v1beta1DeviceTaintValue+ ]+++-- | Construct a value of type 'V1beta1DeviceTaint' (by applying it's required fields, if any)+mkV1beta1DeviceTaint+ :: Text -- ^ 'v1beta1DeviceTaintEffect': The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.+ -> Text -- ^ 'v1beta1DeviceTaintKey': The taint key to be applied to a device. Must be a label name.+ -> V1beta1DeviceTaint+mkV1beta1DeviceTaint v1beta1DeviceTaintEffect v1beta1DeviceTaintKey =+ V1beta1DeviceTaint+ { v1beta1DeviceTaintEffect+ , v1beta1DeviceTaintKey+ , v1beta1DeviceTaintTimeAdded = Nothing+ , v1beta1DeviceTaintValue = Nothing+ }++-- ** V1beta1DeviceToleration+-- | V1beta1DeviceToleration+-- The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.+data V1beta1DeviceToleration = V1beta1DeviceToleration+ { v1beta1DeviceTolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.+ , v1beta1DeviceTolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.+ , v1beta1DeviceTolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.+ , v1beta1DeviceTolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.+ , v1beta1DeviceTolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1DeviceToleration+instance A.FromJSON V1beta1DeviceToleration where+ parseJSON = A.withObject "V1beta1DeviceToleration" $ \o ->+ V1beta1DeviceToleration+ <$> (o .:? "effect")+ <*> (o .:? "key")+ <*> (o .:? "operator")+ <*> (o .:? "tolerationSeconds")+ <*> (o .:? "value")++-- | ToJSON V1beta1DeviceToleration+instance A.ToJSON V1beta1DeviceToleration where+ toJSON V1beta1DeviceToleration {..} =+ _omitNulls+ [ "effect" .= v1beta1DeviceTolerationEffect+ , "key" .= v1beta1DeviceTolerationKey+ , "operator" .= v1beta1DeviceTolerationOperator+ , "tolerationSeconds" .= v1beta1DeviceTolerationTolerationSeconds+ , "value" .= v1beta1DeviceTolerationValue+ ]+++-- | Construct a value of type 'V1beta1DeviceToleration' (by applying it's required fields, if any)+mkV1beta1DeviceToleration+ :: V1beta1DeviceToleration+mkV1beta1DeviceToleration =+ V1beta1DeviceToleration+ { v1beta1DeviceTolerationEffect = Nothing+ , v1beta1DeviceTolerationKey = Nothing+ , v1beta1DeviceTolerationOperator = Nothing+ , v1beta1DeviceTolerationTolerationSeconds = Nothing+ , v1beta1DeviceTolerationValue = Nothing+ }++-- ** V1beta1IPAddress+-- | V1beta1IPAddress+-- IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1+data V1beta1IPAddress = V1beta1IPAddress+ { v1beta1IPAddressApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1IPAddressKind :: !(Maybe Text) -- ^ "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+ , v1beta1IPAddressMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1IPAddressSpec :: !(Maybe V1beta1IPAddressSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1IPAddress+instance A.FromJSON V1beta1IPAddress where+ parseJSON = A.withObject "V1beta1IPAddress" $ \o ->+ V1beta1IPAddress+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1beta1IPAddress+instance A.ToJSON V1beta1IPAddress where+ toJSON V1beta1IPAddress {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1IPAddressApiVersion+ , "kind" .= v1beta1IPAddressKind+ , "metadata" .= v1beta1IPAddressMetadata+ , "spec" .= v1beta1IPAddressSpec+ ]+++-- | Construct a value of type 'V1beta1IPAddress' (by applying it's required fields, if any)+mkV1beta1IPAddress+ :: V1beta1IPAddress+mkV1beta1IPAddress =+ V1beta1IPAddress+ { v1beta1IPAddressApiVersion = Nothing+ , v1beta1IPAddressKind = Nothing+ , v1beta1IPAddressMetadata = Nothing+ , v1beta1IPAddressSpec = Nothing+ }++-- ** V1beta1IPAddressList+-- | V1beta1IPAddressList+-- IPAddressList contains a list of IPAddress.+data V1beta1IPAddressList = V1beta1IPAddressList+ { v1beta1IPAddressListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1IPAddressListItems :: !([V1beta1IPAddress]) -- ^ /Required/ "items" - items is the list of IPAddresses.+ , v1beta1IPAddressListKind :: !(Maybe Text) -- ^ "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+ , v1beta1IPAddressListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1IPAddressList+instance A.FromJSON V1beta1IPAddressList where+ parseJSON = A.withObject "V1beta1IPAddressList" $ \o ->+ V1beta1IPAddressList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1IPAddressList+instance A.ToJSON V1beta1IPAddressList where+ toJSON V1beta1IPAddressList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1IPAddressListApiVersion+ , "items" .= v1beta1IPAddressListItems+ , "kind" .= v1beta1IPAddressListKind+ , "metadata" .= v1beta1IPAddressListMetadata+ ]+++-- | Construct a value of type 'V1beta1IPAddressList' (by applying it's required fields, if any)+mkV1beta1IPAddressList+ :: [V1beta1IPAddress] -- ^ 'v1beta1IPAddressListItems': items is the list of IPAddresses.+ -> V1beta1IPAddressList+mkV1beta1IPAddressList v1beta1IPAddressListItems =+ V1beta1IPAddressList+ { v1beta1IPAddressListApiVersion = Nothing+ , v1beta1IPAddressListItems+ , v1beta1IPAddressListKind = Nothing+ , v1beta1IPAddressListMetadata = Nothing+ }++-- ** V1beta1IPAddressSpec+-- | V1beta1IPAddressSpec+-- IPAddressSpec describe the attributes in an IP Address.+data V1beta1IPAddressSpec = V1beta1IPAddressSpec+ { v1beta1IPAddressSpecParentRef :: !(V1beta1ParentReference) -- ^ /Required/ "parentRef"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1IPAddressSpec+instance A.FromJSON V1beta1IPAddressSpec where+ parseJSON = A.withObject "V1beta1IPAddressSpec" $ \o ->+ V1beta1IPAddressSpec+ <$> (o .: "parentRef")++-- | ToJSON V1beta1IPAddressSpec+instance A.ToJSON V1beta1IPAddressSpec where+ toJSON V1beta1IPAddressSpec {..} =+ _omitNulls+ [ "parentRef" .= v1beta1IPAddressSpecParentRef+ ]+++-- | Construct a value of type 'V1beta1IPAddressSpec' (by applying it's required fields, if any)+mkV1beta1IPAddressSpec+ :: V1beta1ParentReference -- ^ 'v1beta1IPAddressSpecParentRef' + -> V1beta1IPAddressSpec+mkV1beta1IPAddressSpec v1beta1IPAddressSpecParentRef =+ V1beta1IPAddressSpec+ { v1beta1IPAddressSpecParentRef+ }++-- ** V1beta1JSONPatch+-- | V1beta1JSONPatch+-- JSONPatch defines a JSON Patch.+data V1beta1JSONPatch = V1beta1JSONPatch+ { v1beta1JSONPatchExpression :: !(Maybe Text) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1JSONPatch+instance A.FromJSON V1beta1JSONPatch where+ parseJSON = A.withObject "V1beta1JSONPatch" $ \o ->+ V1beta1JSONPatch+ <$> (o .:? "expression")++-- | ToJSON V1beta1JSONPatch+instance A.ToJSON V1beta1JSONPatch where+ toJSON V1beta1JSONPatch {..} =+ _omitNulls+ [ "expression" .= v1beta1JSONPatchExpression+ ]+++-- | Construct a value of type 'V1beta1JSONPatch' (by applying it's required fields, if any)+mkV1beta1JSONPatch+ :: V1beta1JSONPatch+mkV1beta1JSONPatch =+ V1beta1JSONPatch+ { v1beta1JSONPatchExpression = Nothing+ }++-- ** V1beta1LeaseCandidate+-- | V1beta1LeaseCandidate+-- 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.+data V1beta1LeaseCandidate = V1beta1LeaseCandidate+ { v1beta1LeaseCandidateApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1LeaseCandidateKind :: !(Maybe Text) -- ^ "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+ , v1beta1LeaseCandidateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1LeaseCandidateSpec :: !(Maybe V1beta1LeaseCandidateSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1LeaseCandidate+instance A.FromJSON V1beta1LeaseCandidate where+ parseJSON = A.withObject "V1beta1LeaseCandidate" $ \o ->+ V1beta1LeaseCandidate+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1beta1LeaseCandidate+instance A.ToJSON V1beta1LeaseCandidate where+ toJSON V1beta1LeaseCandidate {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1LeaseCandidateApiVersion+ , "kind" .= v1beta1LeaseCandidateKind+ , "metadata" .= v1beta1LeaseCandidateMetadata+ , "spec" .= v1beta1LeaseCandidateSpec+ ]+++-- | Construct a value of type 'V1beta1LeaseCandidate' (by applying it's required fields, if any)+mkV1beta1LeaseCandidate+ :: V1beta1LeaseCandidate+mkV1beta1LeaseCandidate =+ V1beta1LeaseCandidate+ { v1beta1LeaseCandidateApiVersion = Nothing+ , v1beta1LeaseCandidateKind = Nothing+ , v1beta1LeaseCandidateMetadata = Nothing+ , v1beta1LeaseCandidateSpec = Nothing+ }++-- ** V1beta1LeaseCandidateList+-- | V1beta1LeaseCandidateList+-- LeaseCandidateList is a list of Lease objects.+data V1beta1LeaseCandidateList = V1beta1LeaseCandidateList+ { v1beta1LeaseCandidateListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1LeaseCandidateListItems :: !([V1beta1LeaseCandidate]) -- ^ /Required/ "items" - items is a list of schema objects.+ , v1beta1LeaseCandidateListKind :: !(Maybe Text) -- ^ "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+ , v1beta1LeaseCandidateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1LeaseCandidateList+instance A.FromJSON V1beta1LeaseCandidateList where+ parseJSON = A.withObject "V1beta1LeaseCandidateList" $ \o ->+ V1beta1LeaseCandidateList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1LeaseCandidateList+instance A.ToJSON V1beta1LeaseCandidateList where+ toJSON V1beta1LeaseCandidateList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1LeaseCandidateListApiVersion+ , "items" .= v1beta1LeaseCandidateListItems+ , "kind" .= v1beta1LeaseCandidateListKind+ , "metadata" .= v1beta1LeaseCandidateListMetadata+ ]+++-- | Construct a value of type 'V1beta1LeaseCandidateList' (by applying it's required fields, if any)+mkV1beta1LeaseCandidateList+ :: [V1beta1LeaseCandidate] -- ^ 'v1beta1LeaseCandidateListItems': items is a list of schema objects.+ -> V1beta1LeaseCandidateList+mkV1beta1LeaseCandidateList v1beta1LeaseCandidateListItems =+ V1beta1LeaseCandidateList+ { v1beta1LeaseCandidateListApiVersion = Nothing+ , v1beta1LeaseCandidateListItems+ , v1beta1LeaseCandidateListKind = Nothing+ , v1beta1LeaseCandidateListMetadata = Nothing+ }++-- ** V1beta1LeaseCandidateSpec+-- | V1beta1LeaseCandidateSpec+-- LeaseCandidateSpec is a specification of a Lease.+data V1beta1LeaseCandidateSpec = V1beta1LeaseCandidateSpec+ { v1beta1LeaseCandidateSpecBinaryVersion :: !(Text) -- ^ /Required/ "binaryVersion" - BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.+ , v1beta1LeaseCandidateSpecEmulationVersion :: !(Maybe Text) -- ^ "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\"+ , v1beta1LeaseCandidateSpecLeaseName :: !(Text) -- ^ /Required/ "leaseName" - LeaseName is the name of the lease for which this candidate is contending. The limits on this field are the same as on Lease.name. Multiple lease candidates may reference the same Lease.name. This field is immutable.+ , v1beta1LeaseCandidateSpecPingTime :: !(Maybe DateTime) -- ^ "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.+ , v1beta1LeaseCandidateSpecRenewTime :: !(Maybe DateTime) -- ^ "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.+ , v1beta1LeaseCandidateSpecStrategy :: !(Text) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1LeaseCandidateSpec+instance A.FromJSON V1beta1LeaseCandidateSpec where+ parseJSON = A.withObject "V1beta1LeaseCandidateSpec" $ \o ->+ V1beta1LeaseCandidateSpec+ <$> (o .: "binaryVersion")+ <*> (o .:? "emulationVersion")+ <*> (o .: "leaseName")+ <*> (o .:? "pingTime")+ <*> (o .:? "renewTime")+ <*> (o .: "strategy")++-- | ToJSON V1beta1LeaseCandidateSpec+instance A.ToJSON V1beta1LeaseCandidateSpec where+ toJSON V1beta1LeaseCandidateSpec {..} =+ _omitNulls+ [ "binaryVersion" .= v1beta1LeaseCandidateSpecBinaryVersion+ , "emulationVersion" .= v1beta1LeaseCandidateSpecEmulationVersion+ , "leaseName" .= v1beta1LeaseCandidateSpecLeaseName+ , "pingTime" .= v1beta1LeaseCandidateSpecPingTime+ , "renewTime" .= v1beta1LeaseCandidateSpecRenewTime+ , "strategy" .= v1beta1LeaseCandidateSpecStrategy+ ]+++-- | Construct a value of type 'V1beta1LeaseCandidateSpec' (by applying it's required fields, if any)+mkV1beta1LeaseCandidateSpec+ :: Text -- ^ 'v1beta1LeaseCandidateSpecBinaryVersion': BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.+ -> Text -- ^ 'v1beta1LeaseCandidateSpecLeaseName': LeaseName is the name of the lease for which this candidate is contending. The limits on this field are the same as on Lease.name. Multiple lease candidates may reference the same Lease.name. This field is immutable.+ -> Text -- ^ 'v1beta1LeaseCandidateSpecStrategy': 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.+ -> V1beta1LeaseCandidateSpec+mkV1beta1LeaseCandidateSpec v1beta1LeaseCandidateSpecBinaryVersion v1beta1LeaseCandidateSpecLeaseName v1beta1LeaseCandidateSpecStrategy =+ V1beta1LeaseCandidateSpec+ { v1beta1LeaseCandidateSpecBinaryVersion+ , v1beta1LeaseCandidateSpecEmulationVersion = Nothing+ , v1beta1LeaseCandidateSpecLeaseName+ , v1beta1LeaseCandidateSpecPingTime = Nothing+ , v1beta1LeaseCandidateSpecRenewTime = Nothing+ , v1beta1LeaseCandidateSpecStrategy+ }++-- ** V1beta1MatchCondition+-- | V1beta1MatchCondition+-- MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.+data V1beta1MatchCondition = V1beta1MatchCondition+ { v1beta1MatchConditionExpression :: !(Text) -- ^ /Required/ "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.+ , v1beta1MatchConditionName :: !(Text) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1MatchCondition+instance A.FromJSON V1beta1MatchCondition where+ parseJSON = A.withObject "V1beta1MatchCondition" $ \o ->+ V1beta1MatchCondition+ <$> (o .: "expression")+ <*> (o .: "name")++-- | ToJSON V1beta1MatchCondition+instance A.ToJSON V1beta1MatchCondition where+ toJSON V1beta1MatchCondition {..} =+ _omitNulls+ [ "expression" .= v1beta1MatchConditionExpression+ , "name" .= v1beta1MatchConditionName+ ]+++-- | Construct a value of type 'V1beta1MatchCondition' (by applying it's required fields, if any)+mkV1beta1MatchCondition+ :: Text -- ^ 'v1beta1MatchConditionExpression': 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.+ -> Text -- ^ 'v1beta1MatchConditionName': 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.+ -> V1beta1MatchCondition+mkV1beta1MatchCondition v1beta1MatchConditionExpression v1beta1MatchConditionName =+ V1beta1MatchCondition+ { v1beta1MatchConditionExpression+ , v1beta1MatchConditionName+ }++-- ** V1beta1MatchResources+-- | V1beta1MatchResources+-- 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)+data V1beta1MatchResources = V1beta1MatchResources+ { v1beta1MatchResourcesExcludeResourceRules :: !(Maybe [V1beta1NamedRuleWithOperations]) -- ^ "excludeResourceRules" - 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)+ , v1beta1MatchResourcesMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - 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\"+ , v1beta1MatchResourcesNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"+ , v1beta1MatchResourcesObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"+ , v1beta1MatchResourcesResourceRules :: !(Maybe [V1beta1NamedRuleWithOperations]) -- ^ "resourceRules" - ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1MatchResources+instance A.FromJSON V1beta1MatchResources where+ parseJSON = A.withObject "V1beta1MatchResources" $ \o ->+ V1beta1MatchResources+ <$> (o .:? "excludeResourceRules")+ <*> (o .:? "matchPolicy")+ <*> (o .:? "namespaceSelector")+ <*> (o .:? "objectSelector")+ <*> (o .:? "resourceRules")++-- | ToJSON V1beta1MatchResources+instance A.ToJSON V1beta1MatchResources where+ toJSON V1beta1MatchResources {..} =+ _omitNulls+ [ "excludeResourceRules" .= v1beta1MatchResourcesExcludeResourceRules+ , "matchPolicy" .= v1beta1MatchResourcesMatchPolicy+ , "namespaceSelector" .= v1beta1MatchResourcesNamespaceSelector+ , "objectSelector" .= v1beta1MatchResourcesObjectSelector+ , "resourceRules" .= v1beta1MatchResourcesResourceRules+ ]+++-- | Construct a value of type 'V1beta1MatchResources' (by applying it's required fields, if any)+mkV1beta1MatchResources+ :: V1beta1MatchResources+mkV1beta1MatchResources =+ V1beta1MatchResources+ { v1beta1MatchResourcesExcludeResourceRules = Nothing+ , v1beta1MatchResourcesMatchPolicy = Nothing+ , v1beta1MatchResourcesNamespaceSelector = Nothing+ , v1beta1MatchResourcesObjectSelector = Nothing+ , v1beta1MatchResourcesResourceRules = Nothing+ }++-- ** V1beta1MutatingAdmissionPolicy+-- | V1beta1MutatingAdmissionPolicy+-- MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.+data V1beta1MutatingAdmissionPolicy = V1beta1MutatingAdmissionPolicy+ { v1beta1MutatingAdmissionPolicyApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1MutatingAdmissionPolicyKind :: !(Maybe Text) -- ^ "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+ , v1beta1MutatingAdmissionPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1MutatingAdmissionPolicySpec :: !(Maybe V1beta1MutatingAdmissionPolicySpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1MutatingAdmissionPolicy+instance A.FromJSON V1beta1MutatingAdmissionPolicy where+ parseJSON = A.withObject "V1beta1MutatingAdmissionPolicy" $ \o ->+ V1beta1MutatingAdmissionPolicy+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1beta1MutatingAdmissionPolicy+instance A.ToJSON V1beta1MutatingAdmissionPolicy where+ toJSON V1beta1MutatingAdmissionPolicy {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1MutatingAdmissionPolicyApiVersion+ , "kind" .= v1beta1MutatingAdmissionPolicyKind+ , "metadata" .= v1beta1MutatingAdmissionPolicyMetadata+ , "spec" .= v1beta1MutatingAdmissionPolicySpec+ ]+++-- | Construct a value of type 'V1beta1MutatingAdmissionPolicy' (by applying it's required fields, if any)+mkV1beta1MutatingAdmissionPolicy+ :: V1beta1MutatingAdmissionPolicy+mkV1beta1MutatingAdmissionPolicy =+ V1beta1MutatingAdmissionPolicy+ { v1beta1MutatingAdmissionPolicyApiVersion = Nothing+ , v1beta1MutatingAdmissionPolicyKind = Nothing+ , v1beta1MutatingAdmissionPolicyMetadata = Nothing+ , v1beta1MutatingAdmissionPolicySpec = Nothing+ }++-- ** V1beta1MutatingAdmissionPolicyBinding+-- | V1beta1MutatingAdmissionPolicyBinding+-- 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.+data V1beta1MutatingAdmissionPolicyBinding = V1beta1MutatingAdmissionPolicyBinding+ { v1beta1MutatingAdmissionPolicyBindingApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1MutatingAdmissionPolicyBindingKind :: !(Maybe Text) -- ^ "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+ , v1beta1MutatingAdmissionPolicyBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1MutatingAdmissionPolicyBindingSpec :: !(Maybe V1beta1MutatingAdmissionPolicyBindingSpec) -- ^ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1MutatingAdmissionPolicyBinding+instance A.FromJSON V1beta1MutatingAdmissionPolicyBinding where+ parseJSON = A.withObject "V1beta1MutatingAdmissionPolicyBinding" $ \o ->+ V1beta1MutatingAdmissionPolicyBinding+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")++-- | ToJSON V1beta1MutatingAdmissionPolicyBinding+instance A.ToJSON V1beta1MutatingAdmissionPolicyBinding where+ toJSON V1beta1MutatingAdmissionPolicyBinding {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1MutatingAdmissionPolicyBindingApiVersion+ , "kind" .= v1beta1MutatingAdmissionPolicyBindingKind+ , "metadata" .= v1beta1MutatingAdmissionPolicyBindingMetadata+ , "spec" .= v1beta1MutatingAdmissionPolicyBindingSpec+ ]+++-- | Construct a value of type 'V1beta1MutatingAdmissionPolicyBinding' (by applying it's required fields, if any)+mkV1beta1MutatingAdmissionPolicyBinding+ :: V1beta1MutatingAdmissionPolicyBinding+mkV1beta1MutatingAdmissionPolicyBinding =+ V1beta1MutatingAdmissionPolicyBinding+ { v1beta1MutatingAdmissionPolicyBindingApiVersion = Nothing+ , v1beta1MutatingAdmissionPolicyBindingKind = Nothing+ , v1beta1MutatingAdmissionPolicyBindingMetadata = Nothing+ , v1beta1MutatingAdmissionPolicyBindingSpec = Nothing+ }++-- ** V1beta1MutatingAdmissionPolicyBindingList+-- | V1beta1MutatingAdmissionPolicyBindingList+-- MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.+data V1beta1MutatingAdmissionPolicyBindingList = V1beta1MutatingAdmissionPolicyBindingList+ { v1beta1MutatingAdmissionPolicyBindingListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1MutatingAdmissionPolicyBindingListItems :: !([V1beta1MutatingAdmissionPolicyBinding]) -- ^ /Required/ "items" - List of PolicyBinding.+ , v1beta1MutatingAdmissionPolicyBindingListKind :: !(Maybe Text) -- ^ "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+ , v1beta1MutatingAdmissionPolicyBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1MutatingAdmissionPolicyBindingList+instance A.FromJSON V1beta1MutatingAdmissionPolicyBindingList where+ parseJSON = A.withObject "V1beta1MutatingAdmissionPolicyBindingList" $ \o ->+ V1beta1MutatingAdmissionPolicyBindingList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1MutatingAdmissionPolicyBindingList+instance A.ToJSON V1beta1MutatingAdmissionPolicyBindingList where+ toJSON V1beta1MutatingAdmissionPolicyBindingList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1MutatingAdmissionPolicyBindingListApiVersion+ , "items" .= v1beta1MutatingAdmissionPolicyBindingListItems+ , "kind" .= v1beta1MutatingAdmissionPolicyBindingListKind+ , "metadata" .= v1beta1MutatingAdmissionPolicyBindingListMetadata+ ]+++-- | Construct a value of type 'V1beta1MutatingAdmissionPolicyBindingList' (by applying it's required fields, if any)+mkV1beta1MutatingAdmissionPolicyBindingList+ :: [V1beta1MutatingAdmissionPolicyBinding] -- ^ 'v1beta1MutatingAdmissionPolicyBindingListItems': List of PolicyBinding.+ -> V1beta1MutatingAdmissionPolicyBindingList+mkV1beta1MutatingAdmissionPolicyBindingList v1beta1MutatingAdmissionPolicyBindingListItems =+ V1beta1MutatingAdmissionPolicyBindingList+ { v1beta1MutatingAdmissionPolicyBindingListApiVersion = Nothing+ , v1beta1MutatingAdmissionPolicyBindingListItems+ , v1beta1MutatingAdmissionPolicyBindingListKind = Nothing+ , v1beta1MutatingAdmissionPolicyBindingListMetadata = Nothing+ }++-- ** V1beta1MutatingAdmissionPolicyBindingSpec+-- | V1beta1MutatingAdmissionPolicyBindingSpec+-- MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.+data V1beta1MutatingAdmissionPolicyBindingSpec = V1beta1MutatingAdmissionPolicyBindingSpec+ { v1beta1MutatingAdmissionPolicyBindingSpecMatchResources :: !(Maybe V1beta1MatchResources) -- ^ "matchResources"+ , v1beta1MutatingAdmissionPolicyBindingSpecParamRef :: !(Maybe V1beta1ParamRef) -- ^ "paramRef"+ , v1beta1MutatingAdmissionPolicyBindingSpecPolicyName :: !(Maybe Text) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1MutatingAdmissionPolicyBindingSpec+instance A.FromJSON V1beta1MutatingAdmissionPolicyBindingSpec where+ parseJSON = A.withObject "V1beta1MutatingAdmissionPolicyBindingSpec" $ \o ->+ V1beta1MutatingAdmissionPolicyBindingSpec+ <$> (o .:? "matchResources")+ <*> (o .:? "paramRef")+ <*> (o .:? "policyName")++-- | ToJSON V1beta1MutatingAdmissionPolicyBindingSpec+instance A.ToJSON V1beta1MutatingAdmissionPolicyBindingSpec where+ toJSON V1beta1MutatingAdmissionPolicyBindingSpec {..} =+ _omitNulls+ [ "matchResources" .= v1beta1MutatingAdmissionPolicyBindingSpecMatchResources+ , "paramRef" .= v1beta1MutatingAdmissionPolicyBindingSpecParamRef+ , "policyName" .= v1beta1MutatingAdmissionPolicyBindingSpecPolicyName+ ]+++-- | Construct a value of type 'V1beta1MutatingAdmissionPolicyBindingSpec' (by applying it's required fields, if any)+mkV1beta1MutatingAdmissionPolicyBindingSpec+ :: V1beta1MutatingAdmissionPolicyBindingSpec+mkV1beta1MutatingAdmissionPolicyBindingSpec =+ V1beta1MutatingAdmissionPolicyBindingSpec+ { v1beta1MutatingAdmissionPolicyBindingSpecMatchResources = Nothing+ , v1beta1MutatingAdmissionPolicyBindingSpecParamRef = Nothing+ , v1beta1MutatingAdmissionPolicyBindingSpecPolicyName = Nothing+ }++-- ** V1beta1MutatingAdmissionPolicyList+-- | V1beta1MutatingAdmissionPolicyList+-- MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.+data V1beta1MutatingAdmissionPolicyList = V1beta1MutatingAdmissionPolicyList+ { v1beta1MutatingAdmissionPolicyListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1MutatingAdmissionPolicyListItems :: !([V1beta1MutatingAdmissionPolicy]) -- ^ /Required/ "items" - List of ValidatingAdmissionPolicy.+ , v1beta1MutatingAdmissionPolicyListKind :: !(Maybe Text) -- ^ "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+ , v1beta1MutatingAdmissionPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1MutatingAdmissionPolicyList+instance A.FromJSON V1beta1MutatingAdmissionPolicyList where+ parseJSON = A.withObject "V1beta1MutatingAdmissionPolicyList" $ \o ->+ V1beta1MutatingAdmissionPolicyList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1MutatingAdmissionPolicyList+instance A.ToJSON V1beta1MutatingAdmissionPolicyList where+ toJSON V1beta1MutatingAdmissionPolicyList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1MutatingAdmissionPolicyListApiVersion+ , "items" .= v1beta1MutatingAdmissionPolicyListItems+ , "kind" .= v1beta1MutatingAdmissionPolicyListKind+ , "metadata" .= v1beta1MutatingAdmissionPolicyListMetadata+ ]+++-- | Construct a value of type 'V1beta1MutatingAdmissionPolicyList' (by applying it's required fields, if any)+mkV1beta1MutatingAdmissionPolicyList+ :: [V1beta1MutatingAdmissionPolicy] -- ^ 'v1beta1MutatingAdmissionPolicyListItems': List of ValidatingAdmissionPolicy.+ -> V1beta1MutatingAdmissionPolicyList+mkV1beta1MutatingAdmissionPolicyList v1beta1MutatingAdmissionPolicyListItems =+ V1beta1MutatingAdmissionPolicyList+ { v1beta1MutatingAdmissionPolicyListApiVersion = Nothing+ , v1beta1MutatingAdmissionPolicyListItems+ , v1beta1MutatingAdmissionPolicyListKind = Nothing+ , v1beta1MutatingAdmissionPolicyListMetadata = Nothing+ }++-- ** V1beta1MutatingAdmissionPolicySpec+-- | V1beta1MutatingAdmissionPolicySpec+-- MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.+data V1beta1MutatingAdmissionPolicySpec = V1beta1MutatingAdmissionPolicySpec+ { v1beta1MutatingAdmissionPolicySpecFailurePolicy :: !(Maybe Text) -- ^ "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.+ , v1beta1MutatingAdmissionPolicySpecMatchConditions :: !(Maybe [V1beta1MatchCondition]) -- ^ "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+ , v1beta1MutatingAdmissionPolicySpecMatchConstraints :: !(Maybe V1beta1MatchResources) -- ^ "matchConstraints"+ , v1beta1MutatingAdmissionPolicySpecMutations :: !(Maybe [V1beta1Mutation]) -- ^ "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.+ , v1beta1MutatingAdmissionPolicySpecParamKind :: !(Maybe V1beta1ParamKind) -- ^ "paramKind"+ , v1beta1MutatingAdmissionPolicySpecReinvocationPolicy :: !(Maybe Text) -- ^ "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.+ , v1beta1MutatingAdmissionPolicySpecVariables :: !(Maybe [V1beta1Variable]) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1MutatingAdmissionPolicySpec+instance A.FromJSON V1beta1MutatingAdmissionPolicySpec where+ parseJSON = A.withObject "V1beta1MutatingAdmissionPolicySpec" $ \o ->+ V1beta1MutatingAdmissionPolicySpec+ <$> (o .:? "failurePolicy")+ <*> (o .:? "matchConditions")+ <*> (o .:? "matchConstraints")+ <*> (o .:? "mutations")+ <*> (o .:? "paramKind")+ <*> (o .:? "reinvocationPolicy")+ <*> (o .:? "variables")++-- | ToJSON V1beta1MutatingAdmissionPolicySpec+instance A.ToJSON V1beta1MutatingAdmissionPolicySpec where+ toJSON V1beta1MutatingAdmissionPolicySpec {..} =+ _omitNulls+ [ "failurePolicy" .= v1beta1MutatingAdmissionPolicySpecFailurePolicy+ , "matchConditions" .= v1beta1MutatingAdmissionPolicySpecMatchConditions+ , "matchConstraints" .= v1beta1MutatingAdmissionPolicySpecMatchConstraints+ , "mutations" .= v1beta1MutatingAdmissionPolicySpecMutations+ , "paramKind" .= v1beta1MutatingAdmissionPolicySpecParamKind+ , "reinvocationPolicy" .= v1beta1MutatingAdmissionPolicySpecReinvocationPolicy+ , "variables" .= v1beta1MutatingAdmissionPolicySpecVariables+ ]+++-- | Construct a value of type 'V1beta1MutatingAdmissionPolicySpec' (by applying it's required fields, if any)+mkV1beta1MutatingAdmissionPolicySpec+ :: V1beta1MutatingAdmissionPolicySpec+mkV1beta1MutatingAdmissionPolicySpec =+ V1beta1MutatingAdmissionPolicySpec+ { v1beta1MutatingAdmissionPolicySpecFailurePolicy = Nothing+ , v1beta1MutatingAdmissionPolicySpecMatchConditions = Nothing+ , v1beta1MutatingAdmissionPolicySpecMatchConstraints = Nothing+ , v1beta1MutatingAdmissionPolicySpecMutations = Nothing+ , v1beta1MutatingAdmissionPolicySpecParamKind = Nothing+ , v1beta1MutatingAdmissionPolicySpecReinvocationPolicy = Nothing+ , v1beta1MutatingAdmissionPolicySpecVariables = Nothing+ }++-- ** V1beta1Mutation+-- | V1beta1Mutation+-- Mutation specifies the CEL expression which is used to apply the Mutation.+data V1beta1Mutation = V1beta1Mutation+ { v1beta1MutationApplyConfiguration :: !(Maybe V1beta1ApplyConfiguration) -- ^ "applyConfiguration"+ , v1beta1MutationJsonPatch :: !(Maybe V1beta1JSONPatch) -- ^ "jsonPatch"+ , v1beta1MutationPatchType :: !(Text) -- ^ /Required/ "patchType" - patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1Mutation+instance A.FromJSON V1beta1Mutation where+ parseJSON = A.withObject "V1beta1Mutation" $ \o ->+ V1beta1Mutation+ <$> (o .:? "applyConfiguration")+ <*> (o .:? "jsonPatch")+ <*> (o .: "patchType")++-- | ToJSON V1beta1Mutation+instance A.ToJSON V1beta1Mutation where+ toJSON V1beta1Mutation {..} =+ _omitNulls+ [ "applyConfiguration" .= v1beta1MutationApplyConfiguration+ , "jsonPatch" .= v1beta1MutationJsonPatch+ , "patchType" .= v1beta1MutationPatchType+ ]+++-- | Construct a value of type 'V1beta1Mutation' (by applying it's required fields, if any)+mkV1beta1Mutation+ :: Text -- ^ 'v1beta1MutationPatchType': patchType indicates the patch strategy used. Allowed values are \"ApplyConfiguration\" and \"JSONPatch\". Required.+ -> V1beta1Mutation+mkV1beta1Mutation v1beta1MutationPatchType =+ V1beta1Mutation+ { v1beta1MutationApplyConfiguration = Nothing+ , v1beta1MutationJsonPatch = Nothing+ , v1beta1MutationPatchType+ }++-- ** V1beta1NamedRuleWithOperations+-- | V1beta1NamedRuleWithOperations+-- NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.+data V1beta1NamedRuleWithOperations = V1beta1NamedRuleWithOperations+ { v1beta1NamedRuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.+ , v1beta1NamedRuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.+ , v1beta1NamedRuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - 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.+ , v1beta1NamedRuleWithOperationsResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.+ , v1beta1NamedRuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - 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.+ , v1beta1NamedRuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - 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 \"*\".+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1NamedRuleWithOperations+instance A.FromJSON V1beta1NamedRuleWithOperations where+ parseJSON = A.withObject "V1beta1NamedRuleWithOperations" $ \o ->+ V1beta1NamedRuleWithOperations+ <$> (o .:? "apiGroups")+ <*> (o .:? "apiVersions")+ <*> (o .:? "operations")+ <*> (o .:? "resourceNames")+ <*> (o .:? "resources")+ <*> (o .:? "scope")++-- | ToJSON V1beta1NamedRuleWithOperations+instance A.ToJSON V1beta1NamedRuleWithOperations where+ toJSON V1beta1NamedRuleWithOperations {..} =+ _omitNulls+ [ "apiGroups" .= v1beta1NamedRuleWithOperationsApiGroups+ , "apiVersions" .= v1beta1NamedRuleWithOperationsApiVersions+ , "operations" .= v1beta1NamedRuleWithOperationsOperations+ , "resourceNames" .= v1beta1NamedRuleWithOperationsResourceNames+ , "resources" .= v1beta1NamedRuleWithOperationsResources+ , "scope" .= v1beta1NamedRuleWithOperationsScope+ ]+++-- | Construct a value of type 'V1beta1NamedRuleWithOperations' (by applying it's required fields, if any)+mkV1beta1NamedRuleWithOperations+ :: V1beta1NamedRuleWithOperations+mkV1beta1NamedRuleWithOperations =+ V1beta1NamedRuleWithOperations+ { v1beta1NamedRuleWithOperationsApiGroups = Nothing+ , v1beta1NamedRuleWithOperationsApiVersions = Nothing+ , v1beta1NamedRuleWithOperationsOperations = Nothing+ , v1beta1NamedRuleWithOperationsResourceNames = Nothing+ , v1beta1NamedRuleWithOperationsResources = Nothing+ , v1beta1NamedRuleWithOperationsScope = Nothing+ }++-- ** V1beta1NetworkDeviceData+-- | V1beta1NetworkDeviceData+-- 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.+data V1beta1NetworkDeviceData = V1beta1NetworkDeviceData+ { v1beta1NetworkDeviceDataHardwareAddress :: !(Maybe Text) -- ^ "hardwareAddress" - HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. Must not be longer than 128 characters.+ , v1beta1NetworkDeviceDataInterfaceName :: !(Maybe Text) -- ^ "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.+ , v1beta1NetworkDeviceDataIps :: !(Maybe [Text]) -- ^ "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. Must not contain more than 16 entries.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1NetworkDeviceData+instance A.FromJSON V1beta1NetworkDeviceData where+ parseJSON = A.withObject "V1beta1NetworkDeviceData" $ \o ->+ V1beta1NetworkDeviceData+ <$> (o .:? "hardwareAddress")+ <*> (o .:? "interfaceName")+ <*> (o .:? "ips")++-- | ToJSON V1beta1NetworkDeviceData+instance A.ToJSON V1beta1NetworkDeviceData where+ toJSON V1beta1NetworkDeviceData {..} =+ _omitNulls+ [ "hardwareAddress" .= v1beta1NetworkDeviceDataHardwareAddress+ , "interfaceName" .= v1beta1NetworkDeviceDataInterfaceName+ , "ips" .= v1beta1NetworkDeviceDataIps+ ]+++-- | Construct a value of type 'V1beta1NetworkDeviceData' (by applying it's required fields, if any)+mkV1beta1NetworkDeviceData+ :: V1beta1NetworkDeviceData+mkV1beta1NetworkDeviceData =+ V1beta1NetworkDeviceData+ { v1beta1NetworkDeviceDataHardwareAddress = Nothing+ , v1beta1NetworkDeviceDataInterfaceName = Nothing+ , v1beta1NetworkDeviceDataIps = Nothing+ }++-- ** V1beta1OpaqueDeviceConfiguration+-- | V1beta1OpaqueDeviceConfiguration+-- OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.+data V1beta1OpaqueDeviceConfiguration = V1beta1OpaqueDeviceConfiguration+ { v1beta1OpaqueDeviceConfigurationDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1beta1OpaqueDeviceConfigurationParameters :: !(A.Value) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1OpaqueDeviceConfiguration+instance A.FromJSON V1beta1OpaqueDeviceConfiguration where+ parseJSON = A.withObject "V1beta1OpaqueDeviceConfiguration" $ \o ->+ V1beta1OpaqueDeviceConfiguration+ <$> (o .: "driver")+ <*> (o .: "parameters")++-- | ToJSON V1beta1OpaqueDeviceConfiguration+instance A.ToJSON V1beta1OpaqueDeviceConfiguration where+ toJSON V1beta1OpaqueDeviceConfiguration {..} =+ _omitNulls+ [ "driver" .= v1beta1OpaqueDeviceConfigurationDriver+ , "parameters" .= v1beta1OpaqueDeviceConfigurationParameters+ ]+++-- | Construct a value of type 'V1beta1OpaqueDeviceConfiguration' (by applying it's required fields, if any)+mkV1beta1OpaqueDeviceConfiguration+ :: Text -- ^ 'v1beta1OpaqueDeviceConfigurationDriver': 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. It should use only lower case characters.+ -> A.Value -- ^ 'v1beta1OpaqueDeviceConfigurationParameters': 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.+ -> V1beta1OpaqueDeviceConfiguration+mkV1beta1OpaqueDeviceConfiguration v1beta1OpaqueDeviceConfigurationDriver v1beta1OpaqueDeviceConfigurationParameters =+ V1beta1OpaqueDeviceConfiguration+ { v1beta1OpaqueDeviceConfigurationDriver+ , v1beta1OpaqueDeviceConfigurationParameters+ }++-- ** V1beta1ParamKind+-- | V1beta1ParamKind+-- ParamKind is a tuple of Group Kind and Version.+data V1beta1ParamKind = V1beta1ParamKind+ { v1beta1ParamKindApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.+ , v1beta1ParamKindKind :: !(Maybe Text) -- ^ "kind" - Kind is the API kind the resources belong to. Required.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ParamKind+instance A.FromJSON V1beta1ParamKind where+ parseJSON = A.withObject "V1beta1ParamKind" $ \o ->+ V1beta1ParamKind+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")++-- | ToJSON V1beta1ParamKind+instance A.ToJSON V1beta1ParamKind where+ toJSON V1beta1ParamKind {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ParamKindApiVersion+ , "kind" .= v1beta1ParamKindKind+ ]+++-- | Construct a value of type 'V1beta1ParamKind' (by applying it's required fields, if any)+mkV1beta1ParamKind+ :: V1beta1ParamKind+mkV1beta1ParamKind =+ V1beta1ParamKind+ { v1beta1ParamKindApiVersion = Nothing+ , v1beta1ParamKindKind = Nothing+ }++-- ** V1beta1ParamRef+-- | V1beta1ParamRef+-- ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.+data V1beta1ParamRef = V1beta1ParamRef+ { v1beta1ParamRefName :: !(Maybe Text) -- ^ "name" - name is the name of the resource being referenced. 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. A single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.+ , v1beta1ParamRefNamespace :: !(Maybe Text) -- ^ "namespace" - 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.+ , v1beta1ParamRefParameterNotFoundAction :: !(Maybe Text) -- ^ "parameterNotFoundAction" - `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` Required+ , v1beta1ParamRefSelector :: !(Maybe V1LabelSelector) -- ^ "selector"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ParamRef+instance A.FromJSON V1beta1ParamRef where+ parseJSON = A.withObject "V1beta1ParamRef" $ \o ->+ V1beta1ParamRef+ <$> (o .:? "name")+ <*> (o .:? "namespace")+ <*> (o .:? "parameterNotFoundAction")+ <*> (o .:? "selector")++-- | ToJSON V1beta1ParamRef+instance A.ToJSON V1beta1ParamRef where+ toJSON V1beta1ParamRef {..} =+ _omitNulls+ [ "name" .= v1beta1ParamRefName+ , "namespace" .= v1beta1ParamRefNamespace+ , "parameterNotFoundAction" .= v1beta1ParamRefParameterNotFoundAction+ , "selector" .= v1beta1ParamRefSelector+ ]+++-- | Construct a value of type 'V1beta1ParamRef' (by applying it's required fields, if any)+mkV1beta1ParamRef+ :: V1beta1ParamRef+mkV1beta1ParamRef =+ V1beta1ParamRef+ { v1beta1ParamRefName = Nothing+ , v1beta1ParamRefNamespace = Nothing+ , v1beta1ParamRefParameterNotFoundAction = Nothing+ , v1beta1ParamRefSelector = Nothing+ }++-- ** V1beta1ParentReference+-- | V1beta1ParentReference+-- ParentReference describes a reference to a parent object.+data V1beta1ParentReference = V1beta1ParentReference+ { v1beta1ParentReferenceGroup :: !(Maybe Text) -- ^ "group" - Group is the group of the object being referenced.+ , v1beta1ParentReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of the object being referenced.+ , v1beta1ParentReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the object being referenced.+ , v1beta1ParentReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the resource of the object being referenced.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ParentReference+instance A.FromJSON V1beta1ParentReference where+ parseJSON = A.withObject "V1beta1ParentReference" $ \o ->+ V1beta1ParentReference+ <$> (o .:? "group")+ <*> (o .: "name")+ <*> (o .:? "namespace")+ <*> (o .: "resource")++-- | ToJSON V1beta1ParentReference+instance A.ToJSON V1beta1ParentReference where+ toJSON V1beta1ParentReference {..} =+ _omitNulls+ [ "group" .= v1beta1ParentReferenceGroup+ , "name" .= v1beta1ParentReferenceName+ , "namespace" .= v1beta1ParentReferenceNamespace+ , "resource" .= v1beta1ParentReferenceResource+ ]+++-- | Construct a value of type 'V1beta1ParentReference' (by applying it's required fields, if any)+mkV1beta1ParentReference+ :: Text -- ^ 'v1beta1ParentReferenceName': Name is the name of the object being referenced.+ -> Text -- ^ 'v1beta1ParentReferenceResource': Resource is the resource of the object being referenced.+ -> V1beta1ParentReference+mkV1beta1ParentReference v1beta1ParentReferenceName v1beta1ParentReferenceResource =+ V1beta1ParentReference+ { v1beta1ParentReferenceGroup = Nothing+ , v1beta1ParentReferenceName+ , v1beta1ParentReferenceNamespace = Nothing+ , v1beta1ParentReferenceResource+ }++-- ** V1beta1PodCertificateRequest+-- | V1beta1PodCertificateRequest+-- PodCertificateRequest encodes a pod requesting a certificate from a given signer. Kubelets use this API to implement podCertificate projected volumes+data V1beta1PodCertificateRequest = V1beta1PodCertificateRequest+ { v1beta1PodCertificateRequestApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1PodCertificateRequestKind :: !(Maybe Text) -- ^ "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+ , v1beta1PodCertificateRequestMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1PodCertificateRequestSpec :: !(V1beta1PodCertificateRequestSpec) -- ^ /Required/ "spec"+ , v1beta1PodCertificateRequestStatus :: !(Maybe V1beta1PodCertificateRequestStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1PodCertificateRequest+instance A.FromJSON V1beta1PodCertificateRequest where+ parseJSON = A.withObject "V1beta1PodCertificateRequest" $ \o ->+ V1beta1PodCertificateRequest+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1beta1PodCertificateRequest+instance A.ToJSON V1beta1PodCertificateRequest where+ toJSON V1beta1PodCertificateRequest {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1PodCertificateRequestApiVersion+ , "kind" .= v1beta1PodCertificateRequestKind+ , "metadata" .= v1beta1PodCertificateRequestMetadata+ , "spec" .= v1beta1PodCertificateRequestSpec+ , "status" .= v1beta1PodCertificateRequestStatus+ ]+++-- | Construct a value of type 'V1beta1PodCertificateRequest' (by applying it's required fields, if any)+mkV1beta1PodCertificateRequest+ :: V1beta1PodCertificateRequestSpec -- ^ 'v1beta1PodCertificateRequestSpec' + -> V1beta1PodCertificateRequest+mkV1beta1PodCertificateRequest v1beta1PodCertificateRequestSpec =+ V1beta1PodCertificateRequest+ { v1beta1PodCertificateRequestApiVersion = Nothing+ , v1beta1PodCertificateRequestKind = Nothing+ , v1beta1PodCertificateRequestMetadata = Nothing+ , v1beta1PodCertificateRequestSpec+ , v1beta1PodCertificateRequestStatus = Nothing+ }++-- ** V1beta1PodCertificateRequestList+-- | V1beta1PodCertificateRequestList+-- PodCertificateRequestList is a collection of PodCertificateRequest objects+data V1beta1PodCertificateRequestList = V1beta1PodCertificateRequestList+ { v1beta1PodCertificateRequestListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1PodCertificateRequestListItems :: !([V1beta1PodCertificateRequest]) -- ^ /Required/ "items" - items is a collection of PodCertificateRequest objects+ , v1beta1PodCertificateRequestListKind :: !(Maybe Text) -- ^ "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+ , v1beta1PodCertificateRequestListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1PodCertificateRequestList+instance A.FromJSON V1beta1PodCertificateRequestList where+ parseJSON = A.withObject "V1beta1PodCertificateRequestList" $ \o ->+ V1beta1PodCertificateRequestList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1PodCertificateRequestList+instance A.ToJSON V1beta1PodCertificateRequestList where+ toJSON V1beta1PodCertificateRequestList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1PodCertificateRequestListApiVersion+ , "items" .= v1beta1PodCertificateRequestListItems+ , "kind" .= v1beta1PodCertificateRequestListKind+ , "metadata" .= v1beta1PodCertificateRequestListMetadata+ ]+++-- | Construct a value of type 'V1beta1PodCertificateRequestList' (by applying it's required fields, if any)+mkV1beta1PodCertificateRequestList+ :: [V1beta1PodCertificateRequest] -- ^ 'v1beta1PodCertificateRequestListItems': items is a collection of PodCertificateRequest objects+ -> V1beta1PodCertificateRequestList+mkV1beta1PodCertificateRequestList v1beta1PodCertificateRequestListItems =+ V1beta1PodCertificateRequestList+ { v1beta1PodCertificateRequestListApiVersion = Nothing+ , v1beta1PodCertificateRequestListItems+ , v1beta1PodCertificateRequestListKind = Nothing+ , v1beta1PodCertificateRequestListMetadata = Nothing+ }++-- ** V1beta1PodCertificateRequestSpec+-- | V1beta1PodCertificateRequestSpec+-- PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation.+data V1beta1PodCertificateRequestSpec = V1beta1PodCertificateRequestSpec+ { v1beta1PodCertificateRequestSpecMaxExpirationSeconds :: !(Maybe Int) -- ^ "maxExpirationSeconds" - maxExpirationSeconds is the maximum lifetime permitted for the certificate. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.+ , v1beta1PodCertificateRequestSpecNodeName :: !(Text) -- ^ /Required/ "nodeName" - nodeName is the name of the node the pod is assigned to.+ , v1beta1PodCertificateRequestSpecNodeUid :: !(Text) -- ^ /Required/ "nodeUID" - nodeUID is the UID of the node the pod is assigned to.+ , v1beta1PodCertificateRequestSpecPkixPublicKey :: !(ByteArray) -- ^ /Required/ "pkixPublicKey" - pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of \"Denied\" and a reason of \"UnsupportedKeyType\". It may also suggest a key type that it does support in the message field.+ , v1beta1PodCertificateRequestSpecPodName :: !(Text) -- ^ /Required/ "podName" - podName is the name of the pod into which the certificate will be mounted.+ , v1beta1PodCertificateRequestSpecPodUid :: !(Text) -- ^ /Required/ "podUID" - podUID is the UID of the pod into which the certificate will be mounted.+ , v1beta1PodCertificateRequestSpecProofOfPossession :: !(ByteArray) -- ^ /Required/ "proofOfPossession" - proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign).+ , v1beta1PodCertificateRequestSpecServiceAccountName :: !(Text) -- ^ /Required/ "serviceAccountName" - serviceAccountName is the name of the service account the pod is running as.+ , v1beta1PodCertificateRequestSpecServiceAccountUid :: !(Text) -- ^ /Required/ "serviceAccountUID" - serviceAccountUID is the UID of the service account the pod is running as.+ , v1beta1PodCertificateRequestSpecSignerName :: !(Text) -- ^ /Required/ "signerName" - signerName indicates the requested signer. All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented.+ , v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations :: !(Maybe (Map.Map String Text)) -- ^ "unverifiedUserAnnotations" - unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1PodCertificateRequestSpec+instance A.FromJSON V1beta1PodCertificateRequestSpec where+ parseJSON = A.withObject "V1beta1PodCertificateRequestSpec" $ \o ->+ V1beta1PodCertificateRequestSpec+ <$> (o .:? "maxExpirationSeconds")+ <*> (o .: "nodeName")+ <*> (o .: "nodeUID")+ <*> (o .: "pkixPublicKey")+ <*> (o .: "podName")+ <*> (o .: "podUID")+ <*> (o .: "proofOfPossession")+ <*> (o .: "serviceAccountName")+ <*> (o .: "serviceAccountUID")+ <*> (o .: "signerName")+ <*> (o .:? "unverifiedUserAnnotations")++-- | ToJSON V1beta1PodCertificateRequestSpec+instance A.ToJSON V1beta1PodCertificateRequestSpec where+ toJSON V1beta1PodCertificateRequestSpec {..} =+ _omitNulls+ [ "maxExpirationSeconds" .= v1beta1PodCertificateRequestSpecMaxExpirationSeconds+ , "nodeName" .= v1beta1PodCertificateRequestSpecNodeName+ , "nodeUID" .= v1beta1PodCertificateRequestSpecNodeUid+ , "pkixPublicKey" .= v1beta1PodCertificateRequestSpecPkixPublicKey+ , "podName" .= v1beta1PodCertificateRequestSpecPodName+ , "podUID" .= v1beta1PodCertificateRequestSpecPodUid+ , "proofOfPossession" .= v1beta1PodCertificateRequestSpecProofOfPossession+ , "serviceAccountName" .= v1beta1PodCertificateRequestSpecServiceAccountName+ , "serviceAccountUID" .= v1beta1PodCertificateRequestSpecServiceAccountUid+ , "signerName" .= v1beta1PodCertificateRequestSpecSignerName+ , "unverifiedUserAnnotations" .= v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations+ ]+++-- | Construct a value of type 'V1beta1PodCertificateRequestSpec' (by applying it's required fields, if any)+mkV1beta1PodCertificateRequestSpec+ :: Text -- ^ 'v1beta1PodCertificateRequestSpecNodeName': nodeName is the name of the node the pod is assigned to.+ -> Text -- ^ 'v1beta1PodCertificateRequestSpecNodeUid': nodeUID is the UID of the node the pod is assigned to.+ -> ByteArray -- ^ 'v1beta1PodCertificateRequestSpecPkixPublicKey': pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of \"Denied\" and a reason of \"UnsupportedKeyType\". It may also suggest a key type that it does support in the message field.+ -> Text -- ^ 'v1beta1PodCertificateRequestSpecPodName': podName is the name of the pod into which the certificate will be mounted.+ -> Text -- ^ 'v1beta1PodCertificateRequestSpecPodUid': podUID is the UID of the pod into which the certificate will be mounted.+ -> ByteArray -- ^ 'v1beta1PodCertificateRequestSpecProofOfPossession': proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign).+ -> Text -- ^ 'v1beta1PodCertificateRequestSpecServiceAccountName': serviceAccountName is the name of the service account the pod is running as.+ -> Text -- ^ 'v1beta1PodCertificateRequestSpecServiceAccountUid': serviceAccountUID is the UID of the service account the pod is running as.+ -> Text -- ^ 'v1beta1PodCertificateRequestSpecSignerName': signerName indicates the requested signer. All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented.+ -> V1beta1PodCertificateRequestSpec+mkV1beta1PodCertificateRequestSpec v1beta1PodCertificateRequestSpecNodeName v1beta1PodCertificateRequestSpecNodeUid v1beta1PodCertificateRequestSpecPkixPublicKey v1beta1PodCertificateRequestSpecPodName v1beta1PodCertificateRequestSpecPodUid v1beta1PodCertificateRequestSpecProofOfPossession v1beta1PodCertificateRequestSpecServiceAccountName v1beta1PodCertificateRequestSpecServiceAccountUid v1beta1PodCertificateRequestSpecSignerName =+ V1beta1PodCertificateRequestSpec+ { v1beta1PodCertificateRequestSpecMaxExpirationSeconds = Nothing+ , v1beta1PodCertificateRequestSpecNodeName+ , v1beta1PodCertificateRequestSpecNodeUid+ , v1beta1PodCertificateRequestSpecPkixPublicKey+ , v1beta1PodCertificateRequestSpecPodName+ , v1beta1PodCertificateRequestSpecPodUid+ , v1beta1PodCertificateRequestSpecProofOfPossession+ , v1beta1PodCertificateRequestSpecServiceAccountName+ , v1beta1PodCertificateRequestSpecServiceAccountUid+ , v1beta1PodCertificateRequestSpecSignerName+ , v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations = Nothing+ }++-- ** V1beta1PodCertificateRequestStatus+-- | V1beta1PodCertificateRequestStatus+-- PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued.+data V1beta1PodCertificateRequestStatus = V1beta1PodCertificateRequestStatus+ { v1beta1PodCertificateRequestStatusBeginRefreshAt :: !(Maybe DateTime) -- ^ "beginRefreshAt" - beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. This field is only a hint. Kubelet may start refreshing before or after this time if necessary.+ , v1beta1PodCertificateRequestStatusCertificateChain :: !(Maybe Text) -- ^ "certificateChain" - certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. If the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty. Validation requirements: 1. certificateChain must consist of one or more PEM-formatted certificates. 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as described in section 4 of RFC5280. If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers.+ , v1beta1PodCertificateRequestStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - conditions applied to the request. The types \"Issued\", \"Denied\", and \"Failed\" have special handling. At most one of these conditions may be present, and they must have status \"True\". If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field.+ , v1beta1PodCertificateRequestStatusNotAfter :: !(Maybe DateTime) -- ^ "notAfter" - notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain.+ , v1beta1PodCertificateRequestStatusNotBefore :: !(Maybe DateTime) -- ^ "notBefore" - notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1PodCertificateRequestStatus+instance A.FromJSON V1beta1PodCertificateRequestStatus where+ parseJSON = A.withObject "V1beta1PodCertificateRequestStatus" $ \o ->+ V1beta1PodCertificateRequestStatus+ <$> (o .:? "beginRefreshAt")+ <*> (o .:? "certificateChain")+ <*> (o .:? "conditions")+ <*> (o .:? "notAfter")+ <*> (o .:? "notBefore")++-- | ToJSON V1beta1PodCertificateRequestStatus+instance A.ToJSON V1beta1PodCertificateRequestStatus where+ toJSON V1beta1PodCertificateRequestStatus {..} =+ _omitNulls+ [ "beginRefreshAt" .= v1beta1PodCertificateRequestStatusBeginRefreshAt+ , "certificateChain" .= v1beta1PodCertificateRequestStatusCertificateChain+ , "conditions" .= v1beta1PodCertificateRequestStatusConditions+ , "notAfter" .= v1beta1PodCertificateRequestStatusNotAfter+ , "notBefore" .= v1beta1PodCertificateRequestStatusNotBefore+ ]+++-- | Construct a value of type 'V1beta1PodCertificateRequestStatus' (by applying it's required fields, if any)+mkV1beta1PodCertificateRequestStatus+ :: V1beta1PodCertificateRequestStatus+mkV1beta1PodCertificateRequestStatus =+ V1beta1PodCertificateRequestStatus+ { v1beta1PodCertificateRequestStatusBeginRefreshAt = Nothing+ , v1beta1PodCertificateRequestStatusCertificateChain = Nothing+ , v1beta1PodCertificateRequestStatusConditions = Nothing+ , v1beta1PodCertificateRequestStatusNotAfter = Nothing+ , v1beta1PodCertificateRequestStatusNotBefore = Nothing+ }++-- ** V1beta1ResourceClaim+-- | V1beta1ResourceClaim+-- 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.+data V1beta1ResourceClaim = V1beta1ResourceClaim+ { v1beta1ResourceClaimApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceClaimKind :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1ResourceClaimSpec :: !(V1beta1ResourceClaimSpec) -- ^ /Required/ "spec"+ , v1beta1ResourceClaimStatus :: !(Maybe V1beta1ResourceClaimStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceClaim+instance A.FromJSON V1beta1ResourceClaim where+ parseJSON = A.withObject "V1beta1ResourceClaim" $ \o ->+ V1beta1ResourceClaim+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1beta1ResourceClaim+instance A.ToJSON V1beta1ResourceClaim where+ toJSON V1beta1ResourceClaim {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ResourceClaimApiVersion+ , "kind" .= v1beta1ResourceClaimKind+ , "metadata" .= v1beta1ResourceClaimMetadata+ , "spec" .= v1beta1ResourceClaimSpec+ , "status" .= v1beta1ResourceClaimStatus+ ]+++-- | Construct a value of type 'V1beta1ResourceClaim' (by applying it's required fields, if any)+mkV1beta1ResourceClaim+ :: V1beta1ResourceClaimSpec -- ^ 'v1beta1ResourceClaimSpec' + -> V1beta1ResourceClaim+mkV1beta1ResourceClaim v1beta1ResourceClaimSpec =+ V1beta1ResourceClaim+ { v1beta1ResourceClaimApiVersion = Nothing+ , v1beta1ResourceClaimKind = Nothing+ , v1beta1ResourceClaimMetadata = Nothing+ , v1beta1ResourceClaimSpec+ , v1beta1ResourceClaimStatus = Nothing+ }++-- ** V1beta1ResourceClaimConsumerReference+-- | V1beta1ResourceClaimConsumerReference+-- 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.+data V1beta1ResourceClaimConsumerReference = V1beta1ResourceClaimConsumerReference+ { v1beta1ResourceClaimConsumerReferenceApiGroup :: !(Maybe Text) -- ^ "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.+ , v1beta1ResourceClaimConsumerReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced.+ , v1beta1ResourceClaimConsumerReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the type of resource being referenced, for example \"pods\".+ , v1beta1ResourceClaimConsumerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID identifies exactly one incarnation of the resource.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceClaimConsumerReference+instance A.FromJSON V1beta1ResourceClaimConsumerReference where+ parseJSON = A.withObject "V1beta1ResourceClaimConsumerReference" $ \o ->+ V1beta1ResourceClaimConsumerReference+ <$> (o .:? "apiGroup")+ <*> (o .: "name")+ <*> (o .: "resource")+ <*> (o .: "uid")++-- | ToJSON V1beta1ResourceClaimConsumerReference+instance A.ToJSON V1beta1ResourceClaimConsumerReference where+ toJSON V1beta1ResourceClaimConsumerReference {..} =+ _omitNulls+ [ "apiGroup" .= v1beta1ResourceClaimConsumerReferenceApiGroup+ , "name" .= v1beta1ResourceClaimConsumerReferenceName+ , "resource" .= v1beta1ResourceClaimConsumerReferenceResource+ , "uid" .= v1beta1ResourceClaimConsumerReferenceUid+ ]+++-- | Construct a value of type 'V1beta1ResourceClaimConsumerReference' (by applying it's required fields, if any)+mkV1beta1ResourceClaimConsumerReference+ :: Text -- ^ 'v1beta1ResourceClaimConsumerReferenceName': Name is the name of resource being referenced.+ -> Text -- ^ 'v1beta1ResourceClaimConsumerReferenceResource': Resource is the type of resource being referenced, for example \"pods\".+ -> Text -- ^ 'v1beta1ResourceClaimConsumerReferenceUid': UID identifies exactly one incarnation of the resource.+ -> V1beta1ResourceClaimConsumerReference+mkV1beta1ResourceClaimConsumerReference v1beta1ResourceClaimConsumerReferenceName v1beta1ResourceClaimConsumerReferenceResource v1beta1ResourceClaimConsumerReferenceUid =+ V1beta1ResourceClaimConsumerReference+ { v1beta1ResourceClaimConsumerReferenceApiGroup = Nothing+ , v1beta1ResourceClaimConsumerReferenceName+ , v1beta1ResourceClaimConsumerReferenceResource+ , v1beta1ResourceClaimConsumerReferenceUid+ }++-- ** V1beta1ResourceClaimList+-- | V1beta1ResourceClaimList+-- ResourceClaimList is a collection of claims.+data V1beta1ResourceClaimList = V1beta1ResourceClaimList+ { v1beta1ResourceClaimListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceClaimListItems :: !([V1beta1ResourceClaim]) -- ^ /Required/ "items" - Items is the list of resource claims.+ , v1beta1ResourceClaimListKind :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceClaimList+instance A.FromJSON V1beta1ResourceClaimList where+ parseJSON = A.withObject "V1beta1ResourceClaimList" $ \o ->+ V1beta1ResourceClaimList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1ResourceClaimList+instance A.ToJSON V1beta1ResourceClaimList where+ toJSON V1beta1ResourceClaimList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ResourceClaimListApiVersion+ , "items" .= v1beta1ResourceClaimListItems+ , "kind" .= v1beta1ResourceClaimListKind+ , "metadata" .= v1beta1ResourceClaimListMetadata+ ]+++-- | Construct a value of type 'V1beta1ResourceClaimList' (by applying it's required fields, if any)+mkV1beta1ResourceClaimList+ :: [V1beta1ResourceClaim] -- ^ 'v1beta1ResourceClaimListItems': Items is the list of resource claims.+ -> V1beta1ResourceClaimList+mkV1beta1ResourceClaimList v1beta1ResourceClaimListItems =+ V1beta1ResourceClaimList+ { v1beta1ResourceClaimListApiVersion = Nothing+ , v1beta1ResourceClaimListItems+ , v1beta1ResourceClaimListKind = Nothing+ , v1beta1ResourceClaimListMetadata = Nothing+ }++-- ** V1beta1ResourceClaimSpec+-- | V1beta1ResourceClaimSpec+-- ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.+data V1beta1ResourceClaimSpec = V1beta1ResourceClaimSpec+ { v1beta1ResourceClaimSpecDevices :: !(Maybe V1beta1DeviceClaim) -- ^ "devices"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceClaimSpec+instance A.FromJSON V1beta1ResourceClaimSpec where+ parseJSON = A.withObject "V1beta1ResourceClaimSpec" $ \o ->+ V1beta1ResourceClaimSpec+ <$> (o .:? "devices")++-- | ToJSON V1beta1ResourceClaimSpec+instance A.ToJSON V1beta1ResourceClaimSpec where+ toJSON V1beta1ResourceClaimSpec {..} =+ _omitNulls+ [ "devices" .= v1beta1ResourceClaimSpecDevices+ ]+++-- | Construct a value of type 'V1beta1ResourceClaimSpec' (by applying it's required fields, if any)+mkV1beta1ResourceClaimSpec+ :: V1beta1ResourceClaimSpec+mkV1beta1ResourceClaimSpec =+ V1beta1ResourceClaimSpec+ { v1beta1ResourceClaimSpecDevices = Nothing+ }++-- ** V1beta1ResourceClaimStatus+-- | V1beta1ResourceClaimStatus+-- ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.+data V1beta1ResourceClaimStatus = V1beta1ResourceClaimStatus+ { v1beta1ResourceClaimStatusAllocation :: !(Maybe V1beta1AllocationResult) -- ^ "allocation"+ , v1beta1ResourceClaimStatusDevices :: !(Maybe [V1beta1AllocatedDeviceStatus]) -- ^ "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.+ , v1beta1ResourceClaimStatusReservedFor :: !(Maybe [V1beta1ResourceClaimConsumerReference]) -- ^ "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 256 such reservations. This may get increased in the future, but not reduced.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceClaimStatus+instance A.FromJSON V1beta1ResourceClaimStatus where+ parseJSON = A.withObject "V1beta1ResourceClaimStatus" $ \o ->+ V1beta1ResourceClaimStatus+ <$> (o .:? "allocation")+ <*> (o .:? "devices")+ <*> (o .:? "reservedFor")++-- | ToJSON V1beta1ResourceClaimStatus+instance A.ToJSON V1beta1ResourceClaimStatus where+ toJSON V1beta1ResourceClaimStatus {..} =+ _omitNulls+ [ "allocation" .= v1beta1ResourceClaimStatusAllocation+ , "devices" .= v1beta1ResourceClaimStatusDevices+ , "reservedFor" .= v1beta1ResourceClaimStatusReservedFor+ ]+++-- | Construct a value of type 'V1beta1ResourceClaimStatus' (by applying it's required fields, if any)+mkV1beta1ResourceClaimStatus+ :: V1beta1ResourceClaimStatus+mkV1beta1ResourceClaimStatus =+ V1beta1ResourceClaimStatus+ { v1beta1ResourceClaimStatusAllocation = Nothing+ , v1beta1ResourceClaimStatusDevices = Nothing+ , v1beta1ResourceClaimStatusReservedFor = Nothing+ }++-- ** V1beta1ResourceClaimTemplate+-- | V1beta1ResourceClaimTemplate+-- ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.+data V1beta1ResourceClaimTemplate = V1beta1ResourceClaimTemplate+ { v1beta1ResourceClaimTemplateApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceClaimTemplateKind :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceClaimTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1ResourceClaimTemplateSpec :: !(V1beta1ResourceClaimTemplateSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceClaimTemplate+instance A.FromJSON V1beta1ResourceClaimTemplate where+ parseJSON = A.withObject "V1beta1ResourceClaimTemplate" $ \o ->+ V1beta1ResourceClaimTemplate+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta1ResourceClaimTemplate+instance A.ToJSON V1beta1ResourceClaimTemplate where+ toJSON V1beta1ResourceClaimTemplate {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ResourceClaimTemplateApiVersion+ , "kind" .= v1beta1ResourceClaimTemplateKind+ , "metadata" .= v1beta1ResourceClaimTemplateMetadata+ , "spec" .= v1beta1ResourceClaimTemplateSpec+ ]+++-- | Construct a value of type 'V1beta1ResourceClaimTemplate' (by applying it's required fields, if any)+mkV1beta1ResourceClaimTemplate+ :: V1beta1ResourceClaimTemplateSpec -- ^ 'v1beta1ResourceClaimTemplateSpec' + -> V1beta1ResourceClaimTemplate+mkV1beta1ResourceClaimTemplate v1beta1ResourceClaimTemplateSpec =+ V1beta1ResourceClaimTemplate+ { v1beta1ResourceClaimTemplateApiVersion = Nothing+ , v1beta1ResourceClaimTemplateKind = Nothing+ , v1beta1ResourceClaimTemplateMetadata = Nothing+ , v1beta1ResourceClaimTemplateSpec+ }++-- ** V1beta1ResourceClaimTemplateList+-- | V1beta1ResourceClaimTemplateList+-- ResourceClaimTemplateList is a collection of claim templates.+data V1beta1ResourceClaimTemplateList = V1beta1ResourceClaimTemplateList+ { v1beta1ResourceClaimTemplateListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceClaimTemplateListItems :: !([V1beta1ResourceClaimTemplate]) -- ^ /Required/ "items" - Items is the list of resource claim templates.+ , v1beta1ResourceClaimTemplateListKind :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceClaimTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceClaimTemplateList+instance A.FromJSON V1beta1ResourceClaimTemplateList where+ parseJSON = A.withObject "V1beta1ResourceClaimTemplateList" $ \o ->+ V1beta1ResourceClaimTemplateList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1ResourceClaimTemplateList+instance A.ToJSON V1beta1ResourceClaimTemplateList where+ toJSON V1beta1ResourceClaimTemplateList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ResourceClaimTemplateListApiVersion+ , "items" .= v1beta1ResourceClaimTemplateListItems+ , "kind" .= v1beta1ResourceClaimTemplateListKind+ , "metadata" .= v1beta1ResourceClaimTemplateListMetadata+ ]+++-- | Construct a value of type 'V1beta1ResourceClaimTemplateList' (by applying it's required fields, if any)+mkV1beta1ResourceClaimTemplateList+ :: [V1beta1ResourceClaimTemplate] -- ^ 'v1beta1ResourceClaimTemplateListItems': Items is the list of resource claim templates.+ -> V1beta1ResourceClaimTemplateList+mkV1beta1ResourceClaimTemplateList v1beta1ResourceClaimTemplateListItems =+ V1beta1ResourceClaimTemplateList+ { v1beta1ResourceClaimTemplateListApiVersion = Nothing+ , v1beta1ResourceClaimTemplateListItems+ , v1beta1ResourceClaimTemplateListKind = Nothing+ , v1beta1ResourceClaimTemplateListMetadata = Nothing+ }++-- ** V1beta1ResourceClaimTemplateSpec+-- | V1beta1ResourceClaimTemplateSpec+-- ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.+data V1beta1ResourceClaimTemplateSpec = V1beta1ResourceClaimTemplateSpec+ { v1beta1ResourceClaimTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1ResourceClaimTemplateSpecSpec :: !(V1beta1ResourceClaimSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceClaimTemplateSpec+instance A.FromJSON V1beta1ResourceClaimTemplateSpec where+ parseJSON = A.withObject "V1beta1ResourceClaimTemplateSpec" $ \o ->+ V1beta1ResourceClaimTemplateSpec+ <$> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta1ResourceClaimTemplateSpec+instance A.ToJSON V1beta1ResourceClaimTemplateSpec where+ toJSON V1beta1ResourceClaimTemplateSpec {..} =+ _omitNulls+ [ "metadata" .= v1beta1ResourceClaimTemplateSpecMetadata+ , "spec" .= v1beta1ResourceClaimTemplateSpecSpec+ ]+++-- | Construct a value of type 'V1beta1ResourceClaimTemplateSpec' (by applying it's required fields, if any)+mkV1beta1ResourceClaimTemplateSpec+ :: V1beta1ResourceClaimSpec -- ^ 'v1beta1ResourceClaimTemplateSpecSpec' + -> V1beta1ResourceClaimTemplateSpec+mkV1beta1ResourceClaimTemplateSpec v1beta1ResourceClaimTemplateSpecSpec =+ V1beta1ResourceClaimTemplateSpec+ { v1beta1ResourceClaimTemplateSpecMetadata = Nothing+ , v1beta1ResourceClaimTemplateSpecSpec+ }++-- ** V1beta1ResourcePool+-- | V1beta1ResourcePool+-- ResourcePool describes the pool that ResourceSlices belong to.+data V1beta1ResourcePool = V1beta1ResourcePool+ { v1beta1ResourcePoolGeneration :: !(Integer) -- ^ /Required/ "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.+ , v1beta1ResourcePoolName :: !(Text) -- ^ /Required/ "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.+ , v1beta1ResourcePoolResourceSliceCount :: !(Integer) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourcePool+instance A.FromJSON V1beta1ResourcePool where+ parseJSON = A.withObject "V1beta1ResourcePool" $ \o ->+ V1beta1ResourcePool+ <$> (o .: "generation")+ <*> (o .: "name")+ <*> (o .: "resourceSliceCount")++-- | ToJSON V1beta1ResourcePool+instance A.ToJSON V1beta1ResourcePool where+ toJSON V1beta1ResourcePool {..} =+ _omitNulls+ [ "generation" .= v1beta1ResourcePoolGeneration+ , "name" .= v1beta1ResourcePoolName+ , "resourceSliceCount" .= v1beta1ResourcePoolResourceSliceCount+ ]+++-- | Construct a value of type 'V1beta1ResourcePool' (by applying it's required fields, if any)+mkV1beta1ResourcePool+ :: Integer -- ^ 'v1beta1ResourcePoolGeneration': 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.+ -> Text -- ^ 'v1beta1ResourcePoolName': 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.+ -> Integer -- ^ 'v1beta1ResourcePoolResourceSliceCount': 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.+ -> V1beta1ResourcePool+mkV1beta1ResourcePool v1beta1ResourcePoolGeneration v1beta1ResourcePoolName v1beta1ResourcePoolResourceSliceCount =+ V1beta1ResourcePool+ { v1beta1ResourcePoolGeneration+ , v1beta1ResourcePoolName+ , v1beta1ResourcePoolResourceSliceCount+ }++-- ** V1beta1ResourceSlice+-- | V1beta1ResourceSlice+-- 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.+data V1beta1ResourceSlice = V1beta1ResourceSlice+ { v1beta1ResourceSliceApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceSliceKind :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1ResourceSliceSpec :: !(V1beta1ResourceSliceSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceSlice+instance A.FromJSON V1beta1ResourceSlice where+ parseJSON = A.withObject "V1beta1ResourceSlice" $ \o ->+ V1beta1ResourceSlice+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta1ResourceSlice+instance A.ToJSON V1beta1ResourceSlice where+ toJSON V1beta1ResourceSlice {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ResourceSliceApiVersion+ , "kind" .= v1beta1ResourceSliceKind+ , "metadata" .= v1beta1ResourceSliceMetadata+ , "spec" .= v1beta1ResourceSliceSpec+ ]+++-- | Construct a value of type 'V1beta1ResourceSlice' (by applying it's required fields, if any)+mkV1beta1ResourceSlice+ :: V1beta1ResourceSliceSpec -- ^ 'v1beta1ResourceSliceSpec' + -> V1beta1ResourceSlice+mkV1beta1ResourceSlice v1beta1ResourceSliceSpec =+ V1beta1ResourceSlice+ { v1beta1ResourceSliceApiVersion = Nothing+ , v1beta1ResourceSliceKind = Nothing+ , v1beta1ResourceSliceMetadata = Nothing+ , v1beta1ResourceSliceSpec+ }++-- ** V1beta1ResourceSliceList+-- | V1beta1ResourceSliceList+-- ResourceSliceList is a collection of ResourceSlices.+data V1beta1ResourceSliceList = V1beta1ResourceSliceList+ { v1beta1ResourceSliceListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceSliceListItems :: !([V1beta1ResourceSlice]) -- ^ /Required/ "items" - Items is the list of resource ResourceSlices.+ , v1beta1ResourceSliceListKind :: !(Maybe Text) -- ^ "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+ , v1beta1ResourceSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceSliceList+instance A.FromJSON V1beta1ResourceSliceList where+ parseJSON = A.withObject "V1beta1ResourceSliceList" $ \o ->+ V1beta1ResourceSliceList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1ResourceSliceList+instance A.ToJSON V1beta1ResourceSliceList where+ toJSON V1beta1ResourceSliceList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ResourceSliceListApiVersion+ , "items" .= v1beta1ResourceSliceListItems+ , "kind" .= v1beta1ResourceSliceListKind+ , "metadata" .= v1beta1ResourceSliceListMetadata+ ]+++-- | Construct a value of type 'V1beta1ResourceSliceList' (by applying it's required fields, if any)+mkV1beta1ResourceSliceList+ :: [V1beta1ResourceSlice] -- ^ 'v1beta1ResourceSliceListItems': Items is the list of resource ResourceSlices.+ -> V1beta1ResourceSliceList+mkV1beta1ResourceSliceList v1beta1ResourceSliceListItems =+ V1beta1ResourceSliceList+ { v1beta1ResourceSliceListApiVersion = Nothing+ , v1beta1ResourceSliceListItems+ , v1beta1ResourceSliceListKind = Nothing+ , v1beta1ResourceSliceListMetadata = Nothing+ }++-- ** V1beta1ResourceSliceSpec+-- | V1beta1ResourceSliceSpec+-- ResourceSliceSpec contains the information published by the driver in one ResourceSlice.+data V1beta1ResourceSliceSpec = V1beta1ResourceSliceSpec+ { v1beta1ResourceSliceSpecAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the resources in the pool. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.+ , v1beta1ResourceSliceSpecDevices :: !(Maybe [V1beta1Device]) -- ^ "devices" - Devices lists some or all of the devices in this pool. Must not have more than 128 entries. If any device uses taints or consumes counters the limit is 64. Only one of Devices and SharedCounters can be set in a ResourceSlice.+ , v1beta1ResourceSliceSpecDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters. This field is immutable.+ , v1beta1ResourceSliceSpecNodeName :: !(Maybe Text) -- ^ "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, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.+ , v1beta1ResourceSliceSpecNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ , v1beta1ResourceSliceSpecPerDeviceNodeSelection :: !(Maybe Bool) -- ^ "perDeviceNodeSelection" - PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.+ , v1beta1ResourceSliceSpecPool :: !(V1beta1ResourcePool) -- ^ /Required/ "pool"+ , v1beta1ResourceSliceSpecSharedCounters :: !(Maybe [V1beta1CounterSet]) -- ^ "sharedCounters" - SharedCounters defines a list of counter sets, each of which has a name and a list of counters available. The names of the counter sets must be unique in the ResourcePool. Only one of Devices and SharedCounters can be set in a ResourceSlice. The maximum number of counter sets is 8.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ResourceSliceSpec+instance A.FromJSON V1beta1ResourceSliceSpec where+ parseJSON = A.withObject "V1beta1ResourceSliceSpec" $ \o ->+ V1beta1ResourceSliceSpec+ <$> (o .:? "allNodes")+ <*> (o .:? "devices")+ <*> (o .: "driver")+ <*> (o .:? "nodeName")+ <*> (o .:? "nodeSelector")+ <*> (o .:? "perDeviceNodeSelection")+ <*> (o .: "pool")+ <*> (o .:? "sharedCounters")++-- | ToJSON V1beta1ResourceSliceSpec+instance A.ToJSON V1beta1ResourceSliceSpec where+ toJSON V1beta1ResourceSliceSpec {..} =+ _omitNulls+ [ "allNodes" .= v1beta1ResourceSliceSpecAllNodes+ , "devices" .= v1beta1ResourceSliceSpecDevices+ , "driver" .= v1beta1ResourceSliceSpecDriver+ , "nodeName" .= v1beta1ResourceSliceSpecNodeName+ , "nodeSelector" .= v1beta1ResourceSliceSpecNodeSelector+ , "perDeviceNodeSelection" .= v1beta1ResourceSliceSpecPerDeviceNodeSelection+ , "pool" .= v1beta1ResourceSliceSpecPool+ , "sharedCounters" .= v1beta1ResourceSliceSpecSharedCounters+ ]+++-- | Construct a value of type 'V1beta1ResourceSliceSpec' (by applying it's required fields, if any)+mkV1beta1ResourceSliceSpec+ :: Text -- ^ 'v1beta1ResourceSliceSpecDriver': 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. It should use only lower case characters. This field is immutable.+ -> V1beta1ResourcePool -- ^ 'v1beta1ResourceSliceSpecPool' + -> V1beta1ResourceSliceSpec+mkV1beta1ResourceSliceSpec v1beta1ResourceSliceSpecDriver v1beta1ResourceSliceSpecPool =+ V1beta1ResourceSliceSpec+ { v1beta1ResourceSliceSpecAllNodes = Nothing+ , v1beta1ResourceSliceSpecDevices = Nothing+ , v1beta1ResourceSliceSpecDriver+ , v1beta1ResourceSliceSpecNodeName = Nothing+ , v1beta1ResourceSliceSpecNodeSelector = Nothing+ , v1beta1ResourceSliceSpecPerDeviceNodeSelection = Nothing+ , v1beta1ResourceSliceSpecPool+ , v1beta1ResourceSliceSpecSharedCounters = Nothing+ }++-- ** V1beta1ServiceCIDR+-- | V1beta1ServiceCIDR+-- ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.+data V1beta1ServiceCIDR = V1beta1ServiceCIDR+ { v1beta1ServiceCIDRApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ServiceCIDRKind :: !(Maybe Text) -- ^ "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+ , v1beta1ServiceCIDRMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1ServiceCIDRSpec :: !(Maybe V1beta1ServiceCIDRSpec) -- ^ "spec"+ , v1beta1ServiceCIDRStatus :: !(Maybe V1beta1ServiceCIDRStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ServiceCIDR+instance A.FromJSON V1beta1ServiceCIDR where+ parseJSON = A.withObject "V1beta1ServiceCIDR" $ \o ->+ V1beta1ServiceCIDR+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1beta1ServiceCIDR+instance A.ToJSON V1beta1ServiceCIDR where+ toJSON V1beta1ServiceCIDR {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ServiceCIDRApiVersion+ , "kind" .= v1beta1ServiceCIDRKind+ , "metadata" .= v1beta1ServiceCIDRMetadata+ , "spec" .= v1beta1ServiceCIDRSpec+ , "status" .= v1beta1ServiceCIDRStatus+ ]+++-- | Construct a value of type 'V1beta1ServiceCIDR' (by applying it's required fields, if any)+mkV1beta1ServiceCIDR+ :: V1beta1ServiceCIDR+mkV1beta1ServiceCIDR =+ V1beta1ServiceCIDR+ { v1beta1ServiceCIDRApiVersion = Nothing+ , v1beta1ServiceCIDRKind = Nothing+ , v1beta1ServiceCIDRMetadata = Nothing+ , v1beta1ServiceCIDRSpec = Nothing+ , v1beta1ServiceCIDRStatus = Nothing+ }++-- ** V1beta1ServiceCIDRList+-- | V1beta1ServiceCIDRList+-- ServiceCIDRList contains a list of ServiceCIDR objects.+data V1beta1ServiceCIDRList = V1beta1ServiceCIDRList+ { v1beta1ServiceCIDRListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1ServiceCIDRListItems :: !([V1beta1ServiceCIDR]) -- ^ /Required/ "items" - items is the list of ServiceCIDRs.+ , v1beta1ServiceCIDRListKind :: !(Maybe Text) -- ^ "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+ , v1beta1ServiceCIDRListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ServiceCIDRList+instance A.FromJSON V1beta1ServiceCIDRList where+ parseJSON = A.withObject "V1beta1ServiceCIDRList" $ \o ->+ V1beta1ServiceCIDRList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1ServiceCIDRList+instance A.ToJSON V1beta1ServiceCIDRList where+ toJSON V1beta1ServiceCIDRList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1ServiceCIDRListApiVersion+ , "items" .= v1beta1ServiceCIDRListItems+ , "kind" .= v1beta1ServiceCIDRListKind+ , "metadata" .= v1beta1ServiceCIDRListMetadata+ ]+++-- | Construct a value of type 'V1beta1ServiceCIDRList' (by applying it's required fields, if any)+mkV1beta1ServiceCIDRList+ :: [V1beta1ServiceCIDR] -- ^ 'v1beta1ServiceCIDRListItems': items is the list of ServiceCIDRs.+ -> V1beta1ServiceCIDRList+mkV1beta1ServiceCIDRList v1beta1ServiceCIDRListItems =+ V1beta1ServiceCIDRList+ { v1beta1ServiceCIDRListApiVersion = Nothing+ , v1beta1ServiceCIDRListItems+ , v1beta1ServiceCIDRListKind = Nothing+ , v1beta1ServiceCIDRListMetadata = Nothing+ }++-- ** V1beta1ServiceCIDRSpec+-- | V1beta1ServiceCIDRSpec+-- ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.+data V1beta1ServiceCIDRSpec = V1beta1ServiceCIDRSpec+ { v1beta1ServiceCIDRSpecCidrs :: !(Maybe [Text]) -- ^ "cidrs" - CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ServiceCIDRSpec+instance A.FromJSON V1beta1ServiceCIDRSpec where+ parseJSON = A.withObject "V1beta1ServiceCIDRSpec" $ \o ->+ V1beta1ServiceCIDRSpec+ <$> (o .:? "cidrs")++-- | ToJSON V1beta1ServiceCIDRSpec+instance A.ToJSON V1beta1ServiceCIDRSpec where+ toJSON V1beta1ServiceCIDRSpec {..} =+ _omitNulls+ [ "cidrs" .= v1beta1ServiceCIDRSpecCidrs+ ]+++-- | Construct a value of type 'V1beta1ServiceCIDRSpec' (by applying it's required fields, if any)+mkV1beta1ServiceCIDRSpec+ :: V1beta1ServiceCIDRSpec+mkV1beta1ServiceCIDRSpec =+ V1beta1ServiceCIDRSpec+ { v1beta1ServiceCIDRSpecCidrs = Nothing+ }++-- ** V1beta1ServiceCIDRStatus+-- | V1beta1ServiceCIDRStatus+-- ServiceCIDRStatus describes the current state of the ServiceCIDR.+data V1beta1ServiceCIDRStatus = V1beta1ServiceCIDRStatus+ { v1beta1ServiceCIDRStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1ServiceCIDRStatus+instance A.FromJSON V1beta1ServiceCIDRStatus where+ parseJSON = A.withObject "V1beta1ServiceCIDRStatus" $ \o ->+ V1beta1ServiceCIDRStatus+ <$> (o .:? "conditions")++-- | ToJSON V1beta1ServiceCIDRStatus+instance A.ToJSON V1beta1ServiceCIDRStatus where+ toJSON V1beta1ServiceCIDRStatus {..} =+ _omitNulls+ [ "conditions" .= v1beta1ServiceCIDRStatusConditions+ ]+++-- | Construct a value of type 'V1beta1ServiceCIDRStatus' (by applying it's required fields, if any)+mkV1beta1ServiceCIDRStatus+ :: V1beta1ServiceCIDRStatus+mkV1beta1ServiceCIDRStatus =+ V1beta1ServiceCIDRStatus+ { v1beta1ServiceCIDRStatusConditions = Nothing+ }++-- ** V1beta1StorageVersionMigration+-- | V1beta1StorageVersionMigration+-- StorageVersionMigration represents a migration of stored data to the latest storage version.+data V1beta1StorageVersionMigration = V1beta1StorageVersionMigration+ { v1beta1StorageVersionMigrationApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1StorageVersionMigrationKind :: !(Maybe Text) -- ^ "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+ , v1beta1StorageVersionMigrationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1StorageVersionMigrationSpec :: !(Maybe V1beta1StorageVersionMigrationSpec) -- ^ "spec"+ , v1beta1StorageVersionMigrationStatus :: !(Maybe V1beta1StorageVersionMigrationStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1StorageVersionMigration+instance A.FromJSON V1beta1StorageVersionMigration where+ parseJSON = A.withObject "V1beta1StorageVersionMigration" $ \o ->+ V1beta1StorageVersionMigration+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "spec")+ <*> (o .:? "status")++-- | ToJSON V1beta1StorageVersionMigration+instance A.ToJSON V1beta1StorageVersionMigration where+ toJSON V1beta1StorageVersionMigration {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1StorageVersionMigrationApiVersion+ , "kind" .= v1beta1StorageVersionMigrationKind+ , "metadata" .= v1beta1StorageVersionMigrationMetadata+ , "spec" .= v1beta1StorageVersionMigrationSpec+ , "status" .= v1beta1StorageVersionMigrationStatus+ ]+++-- | Construct a value of type 'V1beta1StorageVersionMigration' (by applying it's required fields, if any)+mkV1beta1StorageVersionMigration+ :: V1beta1StorageVersionMigration+mkV1beta1StorageVersionMigration =+ V1beta1StorageVersionMigration+ { v1beta1StorageVersionMigrationApiVersion = Nothing+ , v1beta1StorageVersionMigrationKind = Nothing+ , v1beta1StorageVersionMigrationMetadata = Nothing+ , v1beta1StorageVersionMigrationSpec = Nothing+ , v1beta1StorageVersionMigrationStatus = Nothing+ }++-- ** V1beta1StorageVersionMigrationList+-- | V1beta1StorageVersionMigrationList+-- StorageVersionMigrationList is a collection of storage version migrations.+data V1beta1StorageVersionMigrationList = V1beta1StorageVersionMigrationList+ { v1beta1StorageVersionMigrationListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1StorageVersionMigrationListItems :: !([V1beta1StorageVersionMigration]) -- ^ /Required/ "items" - Items is the list of StorageVersionMigration+ , v1beta1StorageVersionMigrationListKind :: !(Maybe Text) -- ^ "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+ , v1beta1StorageVersionMigrationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1StorageVersionMigrationList+instance A.FromJSON V1beta1StorageVersionMigrationList where+ parseJSON = A.withObject "V1beta1StorageVersionMigrationList" $ \o ->+ V1beta1StorageVersionMigrationList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1StorageVersionMigrationList+instance A.ToJSON V1beta1StorageVersionMigrationList where+ toJSON V1beta1StorageVersionMigrationList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1StorageVersionMigrationListApiVersion+ , "items" .= v1beta1StorageVersionMigrationListItems+ , "kind" .= v1beta1StorageVersionMigrationListKind+ , "metadata" .= v1beta1StorageVersionMigrationListMetadata+ ]+++-- | Construct a value of type 'V1beta1StorageVersionMigrationList' (by applying it's required fields, if any)+mkV1beta1StorageVersionMigrationList+ :: [V1beta1StorageVersionMigration] -- ^ 'v1beta1StorageVersionMigrationListItems': Items is the list of StorageVersionMigration+ -> V1beta1StorageVersionMigrationList+mkV1beta1StorageVersionMigrationList v1beta1StorageVersionMigrationListItems =+ V1beta1StorageVersionMigrationList+ { v1beta1StorageVersionMigrationListApiVersion = Nothing+ , v1beta1StorageVersionMigrationListItems+ , v1beta1StorageVersionMigrationListKind = Nothing+ , v1beta1StorageVersionMigrationListMetadata = Nothing+ }++-- ** V1beta1StorageVersionMigrationSpec+-- | V1beta1StorageVersionMigrationSpec+-- Spec of the storage version migration.+data V1beta1StorageVersionMigrationSpec = V1beta1StorageVersionMigrationSpec+ { v1beta1StorageVersionMigrationSpecResource :: !(V1GroupResource) -- ^ /Required/ "resource"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1StorageVersionMigrationSpec+instance A.FromJSON V1beta1StorageVersionMigrationSpec where+ parseJSON = A.withObject "V1beta1StorageVersionMigrationSpec" $ \o ->+ V1beta1StorageVersionMigrationSpec+ <$> (o .: "resource")++-- | ToJSON V1beta1StorageVersionMigrationSpec+instance A.ToJSON V1beta1StorageVersionMigrationSpec where+ toJSON V1beta1StorageVersionMigrationSpec {..} =+ _omitNulls+ [ "resource" .= v1beta1StorageVersionMigrationSpecResource+ ]+++-- | Construct a value of type 'V1beta1StorageVersionMigrationSpec' (by applying it's required fields, if any)+mkV1beta1StorageVersionMigrationSpec+ :: V1GroupResource -- ^ 'v1beta1StorageVersionMigrationSpecResource' + -> V1beta1StorageVersionMigrationSpec+mkV1beta1StorageVersionMigrationSpec v1beta1StorageVersionMigrationSpecResource =+ V1beta1StorageVersionMigrationSpec+ { v1beta1StorageVersionMigrationSpecResource+ }++-- ** V1beta1StorageVersionMigrationStatus+-- | V1beta1StorageVersionMigrationStatus+-- Status of the storage version migration.+data V1beta1StorageVersionMigrationStatus = V1beta1StorageVersionMigrationStatus+ { v1beta1StorageVersionMigrationStatusConditions :: !(Maybe [V1Condition]) -- ^ "conditions" - The latest available observations of the migration's current state.+ , v1beta1StorageVersionMigrationStatusResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - ResourceVersion to compare with the GC cache for performing the migration. This is the current resource version of given group, version and resource when kube-controller-manager first observes this StorageVersionMigration resource.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1StorageVersionMigrationStatus+instance A.FromJSON V1beta1StorageVersionMigrationStatus where+ parseJSON = A.withObject "V1beta1StorageVersionMigrationStatus" $ \o ->+ V1beta1StorageVersionMigrationStatus+ <$> (o .:? "conditions")+ <*> (o .:? "resourceVersion")++-- | ToJSON V1beta1StorageVersionMigrationStatus+instance A.ToJSON V1beta1StorageVersionMigrationStatus where+ toJSON V1beta1StorageVersionMigrationStatus {..} =+ _omitNulls+ [ "conditions" .= v1beta1StorageVersionMigrationStatusConditions+ , "resourceVersion" .= v1beta1StorageVersionMigrationStatusResourceVersion+ ]+++-- | Construct a value of type 'V1beta1StorageVersionMigrationStatus' (by applying it's required fields, if any)+mkV1beta1StorageVersionMigrationStatus+ :: V1beta1StorageVersionMigrationStatus+mkV1beta1StorageVersionMigrationStatus =+ V1beta1StorageVersionMigrationStatus+ { v1beta1StorageVersionMigrationStatusConditions = Nothing+ , v1beta1StorageVersionMigrationStatusResourceVersion = Nothing+ }++-- ** V1beta1Variable+-- | V1beta1Variable+-- Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.+data V1beta1Variable = V1beta1Variable+ { v1beta1VariableExpression :: !(Text) -- ^ /Required/ "expression" - Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.+ , v1beta1VariableName :: !(Text) -- ^ /Required/ "name" - Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1Variable+instance A.FromJSON V1beta1Variable where+ parseJSON = A.withObject "V1beta1Variable" $ \o ->+ V1beta1Variable+ <$> (o .: "expression")+ <*> (o .: "name")++-- | ToJSON V1beta1Variable+instance A.ToJSON V1beta1Variable where+ toJSON V1beta1Variable {..} =+ _omitNulls+ [ "expression" .= v1beta1VariableExpression+ , "name" .= v1beta1VariableName+ ]+++-- | Construct a value of type 'V1beta1Variable' (by applying it's required fields, if any)+mkV1beta1Variable+ :: Text -- ^ 'v1beta1VariableExpression': Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.+ -> Text -- ^ 'v1beta1VariableName': Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`+ -> V1beta1Variable+mkV1beta1Variable v1beta1VariableExpression v1beta1VariableName =+ V1beta1Variable+ { v1beta1VariableExpression+ , v1beta1VariableName+ }++-- ** V1beta1VolumeAttributesClass+-- | V1beta1VolumeAttributesClass+-- VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.+data V1beta1VolumeAttributesClass = V1beta1VolumeAttributesClass+ { v1beta1VolumeAttributesClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1VolumeAttributesClassDriverName :: !(Text) -- ^ /Required/ "driverName" - Name of the CSI driver This field is immutable.+ , v1beta1VolumeAttributesClassKind :: !(Maybe Text) -- ^ "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+ , v1beta1VolumeAttributesClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta1VolumeAttributesClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass. This field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the modifyVolumeStatus field.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1VolumeAttributesClass+instance A.FromJSON V1beta1VolumeAttributesClass where+ parseJSON = A.withObject "V1beta1VolumeAttributesClass" $ \o ->+ V1beta1VolumeAttributesClass+ <$> (o .:? "apiVersion")+ <*> (o .: "driverName")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .:? "parameters")++-- | ToJSON V1beta1VolumeAttributesClass+instance A.ToJSON V1beta1VolumeAttributesClass where+ toJSON V1beta1VolumeAttributesClass {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1VolumeAttributesClassApiVersion+ , "driverName" .= v1beta1VolumeAttributesClassDriverName+ , "kind" .= v1beta1VolumeAttributesClassKind+ , "metadata" .= v1beta1VolumeAttributesClassMetadata+ , "parameters" .= v1beta1VolumeAttributesClassParameters+ ]+++-- | Construct a value of type 'V1beta1VolumeAttributesClass' (by applying it's required fields, if any)+mkV1beta1VolumeAttributesClass+ :: Text -- ^ 'v1beta1VolumeAttributesClassDriverName': Name of the CSI driver This field is immutable.+ -> V1beta1VolumeAttributesClass+mkV1beta1VolumeAttributesClass v1beta1VolumeAttributesClassDriverName =+ V1beta1VolumeAttributesClass+ { v1beta1VolumeAttributesClassApiVersion = Nothing+ , v1beta1VolumeAttributesClassDriverName+ , v1beta1VolumeAttributesClassKind = Nothing+ , v1beta1VolumeAttributesClassMetadata = Nothing+ , v1beta1VolumeAttributesClassParameters = Nothing+ }++-- ** V1beta1VolumeAttributesClassList+-- | V1beta1VolumeAttributesClassList+-- VolumeAttributesClassList is a collection of VolumeAttributesClass objects.+data V1beta1VolumeAttributesClassList = V1beta1VolumeAttributesClassList+ { v1beta1VolumeAttributesClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta1VolumeAttributesClassListItems :: !([V1beta1VolumeAttributesClass]) -- ^ /Required/ "items" - items is the list of VolumeAttributesClass objects.+ , v1beta1VolumeAttributesClassListKind :: !(Maybe Text) -- ^ "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+ , v1beta1VolumeAttributesClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta1VolumeAttributesClassList+instance A.FromJSON V1beta1VolumeAttributesClassList where+ parseJSON = A.withObject "V1beta1VolumeAttributesClassList" $ \o ->+ V1beta1VolumeAttributesClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta1VolumeAttributesClassList+instance A.ToJSON V1beta1VolumeAttributesClassList where+ toJSON V1beta1VolumeAttributesClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta1VolumeAttributesClassListApiVersion+ , "items" .= v1beta1VolumeAttributesClassListItems+ , "kind" .= v1beta1VolumeAttributesClassListKind+ , "metadata" .= v1beta1VolumeAttributesClassListMetadata+ ]+++-- | Construct a value of type 'V1beta1VolumeAttributesClassList' (by applying it's required fields, if any)+mkV1beta1VolumeAttributesClassList+ :: [V1beta1VolumeAttributesClass] -- ^ 'v1beta1VolumeAttributesClassListItems': items is the list of VolumeAttributesClass objects.+ -> V1beta1VolumeAttributesClassList+mkV1beta1VolumeAttributesClassList v1beta1VolumeAttributesClassListItems =+ V1beta1VolumeAttributesClassList+ { v1beta1VolumeAttributesClassListApiVersion = Nothing+ , v1beta1VolumeAttributesClassListItems+ , v1beta1VolumeAttributesClassListKind = Nothing+ , v1beta1VolumeAttributesClassListMetadata = Nothing+ }++-- ** V1beta2AllocatedDeviceStatus+-- | V1beta2AllocatedDeviceStatus+-- AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices.+data V1beta2AllocatedDeviceStatus = V1beta2AllocatedDeviceStatus+ { v1beta2AllocatedDeviceStatusConditions :: !(Maybe [V1Condition]) -- ^ "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. Must not contain more than 8 entries.+ , v1beta2AllocatedDeviceStatusData :: !(Maybe A.Value) -- ^ "data" - Data contains arbitrary driver-specific data. The length of the raw data must be smaller or equal to 10 Ki.+ , v1beta2AllocatedDeviceStatusDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ , v1beta2AllocatedDeviceStatusDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1beta2AllocatedDeviceStatusNetworkData :: !(Maybe V1beta2NetworkDeviceData) -- ^ "networkData"+ , v1beta2AllocatedDeviceStatusPool :: !(Text) -- ^ /Required/ "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.+ , v1beta2AllocatedDeviceStatusShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2AllocatedDeviceStatus+instance A.FromJSON V1beta2AllocatedDeviceStatus where+ parseJSON = A.withObject "V1beta2AllocatedDeviceStatus" $ \o ->+ V1beta2AllocatedDeviceStatus+ <$> (o .:? "conditions")+ <*> (o .:? "data")+ <*> (o .: "device")+ <*> (o .: "driver")+ <*> (o .:? "networkData")+ <*> (o .: "pool")+ <*> (o .:? "shareID")++-- | ToJSON V1beta2AllocatedDeviceStatus+instance A.ToJSON V1beta2AllocatedDeviceStatus where+ toJSON V1beta2AllocatedDeviceStatus {..} =+ _omitNulls+ [ "conditions" .= v1beta2AllocatedDeviceStatusConditions+ , "data" .= v1beta2AllocatedDeviceStatusData+ , "device" .= v1beta2AllocatedDeviceStatusDevice+ , "driver" .= v1beta2AllocatedDeviceStatusDriver+ , "networkData" .= v1beta2AllocatedDeviceStatusNetworkData+ , "pool" .= v1beta2AllocatedDeviceStatusPool+ , "shareID" .= v1beta2AllocatedDeviceStatusShareId+ ]+++-- | Construct a value of type 'V1beta2AllocatedDeviceStatus' (by applying it's required fields, if any)+mkV1beta2AllocatedDeviceStatus+ :: Text -- ^ 'v1beta2AllocatedDeviceStatusDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ -> Text -- ^ 'v1beta2AllocatedDeviceStatusDriver': 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. It should use only lower case characters.+ -> Text -- ^ 'v1beta2AllocatedDeviceStatusPool': 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.+ -> V1beta2AllocatedDeviceStatus+mkV1beta2AllocatedDeviceStatus v1beta2AllocatedDeviceStatusDevice v1beta2AllocatedDeviceStatusDriver v1beta2AllocatedDeviceStatusPool =+ V1beta2AllocatedDeviceStatus+ { v1beta2AllocatedDeviceStatusConditions = Nothing+ , v1beta2AllocatedDeviceStatusData = Nothing+ , v1beta2AllocatedDeviceStatusDevice+ , v1beta2AllocatedDeviceStatusDriver+ , v1beta2AllocatedDeviceStatusNetworkData = Nothing+ , v1beta2AllocatedDeviceStatusPool+ , v1beta2AllocatedDeviceStatusShareId = Nothing+ }++-- ** V1beta2AllocationResult+-- | V1beta2AllocationResult+-- AllocationResult contains attributes of an allocated resource.+data V1beta2AllocationResult = V1beta2AllocationResult+ { v1beta2AllocationResultAllocationTimestamp :: !(Maybe DateTime) -- ^ "allocationTimestamp" - AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate.+ , v1beta2AllocationResultDevices :: !(Maybe V1beta2DeviceAllocationResult) -- ^ "devices"+ , v1beta2AllocationResultNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2AllocationResult+instance A.FromJSON V1beta2AllocationResult where+ parseJSON = A.withObject "V1beta2AllocationResult" $ \o ->+ V1beta2AllocationResult+ <$> (o .:? "allocationTimestamp")+ <*> (o .:? "devices")+ <*> (o .:? "nodeSelector")++-- | ToJSON V1beta2AllocationResult+instance A.ToJSON V1beta2AllocationResult where+ toJSON V1beta2AllocationResult {..} =+ _omitNulls+ [ "allocationTimestamp" .= v1beta2AllocationResultAllocationTimestamp+ , "devices" .= v1beta2AllocationResultDevices+ , "nodeSelector" .= v1beta2AllocationResultNodeSelector+ ]+++-- | Construct a value of type 'V1beta2AllocationResult' (by applying it's required fields, if any)+mkV1beta2AllocationResult+ :: V1beta2AllocationResult+mkV1beta2AllocationResult =+ V1beta2AllocationResult+ { v1beta2AllocationResultAllocationTimestamp = Nothing+ , v1beta2AllocationResultDevices = Nothing+ , v1beta2AllocationResultNodeSelector = Nothing+ }++-- ** V1beta2CELDeviceSelector+-- | V1beta2CELDeviceSelector+-- CELDeviceSelector contains a CEL expression for selecting a device.+data V1beta2CELDeviceSelector = V1beta2CELDeviceSelector+ { v1beta2CELDeviceSelectorExpression :: !(Text) -- ^ /Required/ "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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2CELDeviceSelector+instance A.FromJSON V1beta2CELDeviceSelector where+ parseJSON = A.withObject "V1beta2CELDeviceSelector" $ \o ->+ V1beta2CELDeviceSelector+ <$> (o .: "expression")++-- | ToJSON V1beta2CELDeviceSelector+instance A.ToJSON V1beta2CELDeviceSelector where+ toJSON V1beta2CELDeviceSelector {..} =+ _omitNulls+ [ "expression" .= v1beta2CELDeviceSelectorExpression+ ]+++-- | Construct a value of type 'V1beta2CELDeviceSelector' (by applying it's required fields, if any)+mkV1beta2CELDeviceSelector+ :: Text -- ^ 'v1beta2CELDeviceSelectorExpression': 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. - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device (v1.34+ with the DRAConsumableCapacity feature enabled). 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.+ -> V1beta2CELDeviceSelector+mkV1beta2CELDeviceSelector v1beta2CELDeviceSelectorExpression =+ V1beta2CELDeviceSelector+ { v1beta2CELDeviceSelectorExpression+ }++-- ** V1beta2CapacityRequestPolicy+-- | V1beta2CapacityRequestPolicy+-- CapacityRequestPolicy defines how requests consume device capacity. Must not set more than one ValidRequestValues.+data V1beta2CapacityRequestPolicy = V1beta2CapacityRequestPolicy+ { v1beta2CapacityRequestPolicyDefault :: !(Maybe Quantity) -- ^ "default"+ , v1beta2CapacityRequestPolicyValidRange :: !(Maybe V1beta2CapacityRequestPolicyRange) -- ^ "validRange"+ , v1beta2CapacityRequestPolicyValidValues :: !(Maybe [Quantity]) -- ^ "validValues" - ValidValues defines a set of acceptable quantity values in consuming requests. Must not contain more than 10 entries. Must be sorted in ascending order. If this field is set, Default must be defined and it must be included in ValidValues list. If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≤ max(validValues). If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2CapacityRequestPolicy+instance A.FromJSON V1beta2CapacityRequestPolicy where+ parseJSON = A.withObject "V1beta2CapacityRequestPolicy" $ \o ->+ V1beta2CapacityRequestPolicy+ <$> (o .:? "default")+ <*> (o .:? "validRange")+ <*> (o .:? "validValues")++-- | ToJSON V1beta2CapacityRequestPolicy+instance A.ToJSON V1beta2CapacityRequestPolicy where+ toJSON V1beta2CapacityRequestPolicy {..} =+ _omitNulls+ [ "default" .= v1beta2CapacityRequestPolicyDefault+ , "validRange" .= v1beta2CapacityRequestPolicyValidRange+ , "validValues" .= v1beta2CapacityRequestPolicyValidValues+ ]+++-- | Construct a value of type 'V1beta2CapacityRequestPolicy' (by applying it's required fields, if any)+mkV1beta2CapacityRequestPolicy+ :: V1beta2CapacityRequestPolicy+mkV1beta2CapacityRequestPolicy =+ V1beta2CapacityRequestPolicy+ { v1beta2CapacityRequestPolicyDefault = Nothing+ , v1beta2CapacityRequestPolicyValidRange = Nothing+ , v1beta2CapacityRequestPolicyValidValues = Nothing+ }++-- ** V1beta2CapacityRequestPolicyRange+-- | V1beta2CapacityRequestPolicyRange+-- CapacityRequestPolicyRange defines a valid range for consumable capacity values. - If the requested amount is less than Min, it is rounded up to the Min value. - If Step is set and the requested amount is between Min and Max but not aligned with Step, it will be rounded up to the next value equal to Min + (n * Step). - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, and the device cannot be allocated.+data V1beta2CapacityRequestPolicyRange = V1beta2CapacityRequestPolicyRange+ { v1beta2CapacityRequestPolicyRangeMax :: !(Maybe Quantity) -- ^ "max"+ , v1beta2CapacityRequestPolicyRangeMin :: !(Quantity) -- ^ /Required/ "min"+ , v1beta2CapacityRequestPolicyRangeStep :: !(Maybe Quantity) -- ^ "step"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2CapacityRequestPolicyRange+instance A.FromJSON V1beta2CapacityRequestPolicyRange where+ parseJSON = A.withObject "V1beta2CapacityRequestPolicyRange" $ \o ->+ V1beta2CapacityRequestPolicyRange+ <$> (o .:? "max")+ <*> (o .: "min")+ <*> (o .:? "step")++-- | ToJSON V1beta2CapacityRequestPolicyRange+instance A.ToJSON V1beta2CapacityRequestPolicyRange where+ toJSON V1beta2CapacityRequestPolicyRange {..} =+ _omitNulls+ [ "max" .= v1beta2CapacityRequestPolicyRangeMax+ , "min" .= v1beta2CapacityRequestPolicyRangeMin+ , "step" .= v1beta2CapacityRequestPolicyRangeStep+ ]+++-- | Construct a value of type 'V1beta2CapacityRequestPolicyRange' (by applying it's required fields, if any)+mkV1beta2CapacityRequestPolicyRange+ :: Quantity -- ^ 'v1beta2CapacityRequestPolicyRangeMin' + -> V1beta2CapacityRequestPolicyRange+mkV1beta2CapacityRequestPolicyRange v1beta2CapacityRequestPolicyRangeMin =+ V1beta2CapacityRequestPolicyRange+ { v1beta2CapacityRequestPolicyRangeMax = Nothing+ , v1beta2CapacityRequestPolicyRangeMin+ , v1beta2CapacityRequestPolicyRangeStep = Nothing+ }++-- ** V1beta2CapacityRequirements+-- | V1beta2CapacityRequirements+-- CapacityRequirements defines the capacity requirements for a specific device request.+data V1beta2CapacityRequirements = V1beta2CapacityRequirements+ { v1beta2CapacityRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[<domain>].<name>.compareTo(quantity(<request quantity>)) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid value—because it exceeds what the requestPolicy allows— the device is considered ineligible for allocation. For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity (i.e., the whole device is claimed). - If a requestPolicy is set, the default consumed capacity is determined according to that policy. If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2CapacityRequirements+instance A.FromJSON V1beta2CapacityRequirements where+ parseJSON = A.withObject "V1beta2CapacityRequirements" $ \o ->+ V1beta2CapacityRequirements+ <$> (o .:? "requests")++-- | ToJSON V1beta2CapacityRequirements+instance A.ToJSON V1beta2CapacityRequirements where+ toJSON V1beta2CapacityRequirements {..} =+ _omitNulls+ [ "requests" .= v1beta2CapacityRequirementsRequests+ ]+++-- | Construct a value of type 'V1beta2CapacityRequirements' (by applying it's required fields, if any)+mkV1beta2CapacityRequirements+ :: V1beta2CapacityRequirements+mkV1beta2CapacityRequirements =+ V1beta2CapacityRequirements+ { v1beta2CapacityRequirementsRequests = Nothing+ }++-- ** V1beta2Counter+-- | V1beta2Counter+-- Counter describes a quantity associated with a device.+data V1beta2Counter = V1beta2Counter+ { v1beta2CounterValue :: !(Quantity) -- ^ /Required/ "value"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2Counter+instance A.FromJSON V1beta2Counter where+ parseJSON = A.withObject "V1beta2Counter" $ \o ->+ V1beta2Counter+ <$> (o .: "value")++-- | ToJSON V1beta2Counter+instance A.ToJSON V1beta2Counter where+ toJSON V1beta2Counter {..} =+ _omitNulls+ [ "value" .= v1beta2CounterValue+ ]+++-- | Construct a value of type 'V1beta2Counter' (by applying it's required fields, if any)+mkV1beta2Counter+ :: Quantity -- ^ 'v1beta2CounterValue' + -> V1beta2Counter+mkV1beta2Counter v1beta2CounterValue =+ V1beta2Counter+ { v1beta2CounterValue+ }++-- ** V1beta2CounterSet+-- | V1beta2CounterSet+-- CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.+data V1beta2CounterSet = V1beta2CounterSet+ { v1beta2CounterSetCounters :: !((Map.Map String V1beta2Counter)) -- ^ /Required/ "counters" - Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters is 32.+ , v1beta2CounterSetName :: !(Text) -- ^ /Required/ "name" - Name defines the name of the counter set. It must be a DNS label.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2CounterSet+instance A.FromJSON V1beta2CounterSet where+ parseJSON = A.withObject "V1beta2CounterSet" $ \o ->+ V1beta2CounterSet+ <$> (o .: "counters")+ <*> (o .: "name")++-- | ToJSON V1beta2CounterSet+instance A.ToJSON V1beta2CounterSet where+ toJSON V1beta2CounterSet {..} =+ _omitNulls+ [ "counters" .= v1beta2CounterSetCounters+ , "name" .= v1beta2CounterSetName+ ]+++-- | Construct a value of type 'V1beta2CounterSet' (by applying it's required fields, if any)+mkV1beta2CounterSet+ :: (Map.Map String V1beta2Counter) -- ^ 'v1beta2CounterSetCounters': Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. The maximum number of counters is 32.+ -> Text -- ^ 'v1beta2CounterSetName': Name defines the name of the counter set. It must be a DNS label.+ -> V1beta2CounterSet+mkV1beta2CounterSet v1beta2CounterSetCounters v1beta2CounterSetName =+ V1beta2CounterSet+ { v1beta2CounterSetCounters+ , v1beta2CounterSetName+ }++-- ** V1beta2Device+-- | V1beta2Device+-- Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.+data V1beta2Device = V1beta2Device+ { v1beta2DeviceAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the device. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.+ , v1beta2DeviceAllowMultipleAllocations :: !(Maybe Bool) -- ^ "allowMultipleAllocations" - AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.+ , v1beta2DeviceAttributes :: !(Maybe (Map.Map String V1beta2DeviceAttribute)) -- ^ "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.+ , v1beta2DeviceBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. The maximum number of binding conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta2DeviceBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to \"True\", a binding failure occurred. The maximum number of binding failure conditions is 4. The conditions must be a valid condition type string. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta2DeviceBindsToNode :: !(Maybe Bool) -- ^ "bindsToNode" - BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta2DeviceCapacity :: !(Maybe (Map.Map String V1beta2DeviceCapacity)) -- ^ "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.+ , v1beta2DeviceConsumesCounters :: !(Maybe [V1beta2DeviceCounterConsumption]) -- ^ "consumesCounters" - ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. There can only be a single entry per counterSet. The maximum number of device counter consumptions per device is 2.+ , v1beta2DeviceName :: !(Text) -- ^ /Required/ "name" - Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.+ , v1beta2DeviceNodeName :: !(Maybe Text) -- ^ "nodeName" - NodeName identifies the node where the device is available. Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.+ , v1beta2DeviceNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ , v1beta2DeviceTaints :: !(Maybe [V1beta2DeviceTaint]) -- ^ "taints" - If specified, these are the driver-defined taints. The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2Device+instance A.FromJSON V1beta2Device where+ parseJSON = A.withObject "V1beta2Device" $ \o ->+ V1beta2Device+ <$> (o .:? "allNodes")+ <*> (o .:? "allowMultipleAllocations")+ <*> (o .:? "attributes")+ <*> (o .:? "bindingConditions")+ <*> (o .:? "bindingFailureConditions")+ <*> (o .:? "bindsToNode")+ <*> (o .:? "capacity")+ <*> (o .:? "consumesCounters")+ <*> (o .: "name")+ <*> (o .:? "nodeName")+ <*> (o .:? "nodeSelector")+ <*> (o .:? "taints")++-- | ToJSON V1beta2Device+instance A.ToJSON V1beta2Device where+ toJSON V1beta2Device {..} =+ _omitNulls+ [ "allNodes" .= v1beta2DeviceAllNodes+ , "allowMultipleAllocations" .= v1beta2DeviceAllowMultipleAllocations+ , "attributes" .= v1beta2DeviceAttributes+ , "bindingConditions" .= v1beta2DeviceBindingConditions+ , "bindingFailureConditions" .= v1beta2DeviceBindingFailureConditions+ , "bindsToNode" .= v1beta2DeviceBindsToNode+ , "capacity" .= v1beta2DeviceCapacity+ , "consumesCounters" .= v1beta2DeviceConsumesCounters+ , "name" .= v1beta2DeviceName+ , "nodeName" .= v1beta2DeviceNodeName+ , "nodeSelector" .= v1beta2DeviceNodeSelector+ , "taints" .= v1beta2DeviceTaints+ ]+++-- | Construct a value of type 'V1beta2Device' (by applying it's required fields, if any)+mkV1beta2Device+ :: Text -- ^ 'v1beta2DeviceName': Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.+ -> V1beta2Device+mkV1beta2Device v1beta2DeviceName =+ V1beta2Device+ { v1beta2DeviceAllNodes = Nothing+ , v1beta2DeviceAllowMultipleAllocations = Nothing+ , v1beta2DeviceAttributes = Nothing+ , v1beta2DeviceBindingConditions = Nothing+ , v1beta2DeviceBindingFailureConditions = Nothing+ , v1beta2DeviceBindsToNode = Nothing+ , v1beta2DeviceCapacity = Nothing+ , v1beta2DeviceConsumesCounters = Nothing+ , v1beta2DeviceName+ , v1beta2DeviceNodeName = Nothing+ , v1beta2DeviceNodeSelector = Nothing+ , v1beta2DeviceTaints = Nothing+ }++-- ** V1beta2DeviceAllocationConfiguration+-- | V1beta2DeviceAllocationConfiguration+-- DeviceAllocationConfiguration gets embedded in an AllocationResult.+data V1beta2DeviceAllocationConfiguration = V1beta2DeviceAllocationConfiguration+ { v1beta2DeviceAllocationConfigurationOpaque :: !(Maybe V1beta2OpaqueDeviceConfiguration) -- ^ "opaque"+ , v1beta2DeviceAllocationConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.+ , v1beta2DeviceAllocationConfigurationSource :: !(Text) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceAllocationConfiguration+instance A.FromJSON V1beta2DeviceAllocationConfiguration where+ parseJSON = A.withObject "V1beta2DeviceAllocationConfiguration" $ \o ->+ V1beta2DeviceAllocationConfiguration+ <$> (o .:? "opaque")+ <*> (o .:? "requests")+ <*> (o .: "source")++-- | ToJSON V1beta2DeviceAllocationConfiguration+instance A.ToJSON V1beta2DeviceAllocationConfiguration where+ toJSON V1beta2DeviceAllocationConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1beta2DeviceAllocationConfigurationOpaque+ , "requests" .= v1beta2DeviceAllocationConfigurationRequests+ , "source" .= v1beta2DeviceAllocationConfigurationSource+ ]+++-- | Construct a value of type 'V1beta2DeviceAllocationConfiguration' (by applying it's required fields, if any)+mkV1beta2DeviceAllocationConfiguration+ :: Text -- ^ 'v1beta2DeviceAllocationConfigurationSource': 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.+ -> V1beta2DeviceAllocationConfiguration+mkV1beta2DeviceAllocationConfiguration v1beta2DeviceAllocationConfigurationSource =+ V1beta2DeviceAllocationConfiguration+ { v1beta2DeviceAllocationConfigurationOpaque = Nothing+ , v1beta2DeviceAllocationConfigurationRequests = Nothing+ , v1beta2DeviceAllocationConfigurationSource+ }++-- ** V1beta2DeviceAllocationResult+-- | V1beta2DeviceAllocationResult+-- DeviceAllocationResult is the result of allocating devices.+data V1beta2DeviceAllocationResult = V1beta2DeviceAllocationResult+ { v1beta2DeviceAllocationResultConfig :: !(Maybe [V1beta2DeviceAllocationConfiguration]) -- ^ "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.+ , v1beta2DeviceAllocationResultResults :: !(Maybe [V1beta2DeviceRequestAllocationResult]) -- ^ "results" - Results lists all allocated devices.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceAllocationResult+instance A.FromJSON V1beta2DeviceAllocationResult where+ parseJSON = A.withObject "V1beta2DeviceAllocationResult" $ \o ->+ V1beta2DeviceAllocationResult+ <$> (o .:? "config")+ <*> (o .:? "results")++-- | ToJSON V1beta2DeviceAllocationResult+instance A.ToJSON V1beta2DeviceAllocationResult where+ toJSON V1beta2DeviceAllocationResult {..} =+ _omitNulls+ [ "config" .= v1beta2DeviceAllocationResultConfig+ , "results" .= v1beta2DeviceAllocationResultResults+ ]+++-- | Construct a value of type 'V1beta2DeviceAllocationResult' (by applying it's required fields, if any)+mkV1beta2DeviceAllocationResult+ :: V1beta2DeviceAllocationResult+mkV1beta2DeviceAllocationResult =+ V1beta2DeviceAllocationResult+ { v1beta2DeviceAllocationResultConfig = Nothing+ , v1beta2DeviceAllocationResultResults = Nothing+ }++-- ** V1beta2DeviceAttribute+-- | V1beta2DeviceAttribute+-- DeviceAttribute must have exactly one field set.+data V1beta2DeviceAttribute = V1beta2DeviceAttribute+ { v1beta2DeviceAttributeBool :: !(Maybe Bool) -- ^ "bool" - BoolValue is a true/false value.+ , v1beta2DeviceAttributeInt :: !(Maybe Integer) -- ^ "int" - IntValue is a number.+ , v1beta2DeviceAttributeString :: !(Maybe Text) -- ^ "string" - StringValue is a string. Must not be longer than 64 characters.+ , v1beta2DeviceAttributeVersion :: !(Maybe Text) -- ^ "version" - VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceAttribute+instance A.FromJSON V1beta2DeviceAttribute where+ parseJSON = A.withObject "V1beta2DeviceAttribute" $ \o ->+ V1beta2DeviceAttribute+ <$> (o .:? "bool")+ <*> (o .:? "int")+ <*> (o .:? "string")+ <*> (o .:? "version")++-- | ToJSON V1beta2DeviceAttribute+instance A.ToJSON V1beta2DeviceAttribute where+ toJSON V1beta2DeviceAttribute {..} =+ _omitNulls+ [ "bool" .= v1beta2DeviceAttributeBool+ , "int" .= v1beta2DeviceAttributeInt+ , "string" .= v1beta2DeviceAttributeString+ , "version" .= v1beta2DeviceAttributeVersion+ ]+++-- | Construct a value of type 'V1beta2DeviceAttribute' (by applying it's required fields, if any)+mkV1beta2DeviceAttribute+ :: V1beta2DeviceAttribute+mkV1beta2DeviceAttribute =+ V1beta2DeviceAttribute+ { v1beta2DeviceAttributeBool = Nothing+ , v1beta2DeviceAttributeInt = Nothing+ , v1beta2DeviceAttributeString = Nothing+ , v1beta2DeviceAttributeVersion = Nothing+ }++-- ** V1beta2DeviceCapacity+-- | V1beta2DeviceCapacity+-- DeviceCapacity describes a quantity associated with a device.+data V1beta2DeviceCapacity = V1beta2DeviceCapacity+ { v1beta2DeviceCapacityRequestPolicy :: !(Maybe V1beta2CapacityRequestPolicy) -- ^ "requestPolicy"+ , v1beta2DeviceCapacityValue :: !(Quantity) -- ^ /Required/ "value"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceCapacity+instance A.FromJSON V1beta2DeviceCapacity where+ parseJSON = A.withObject "V1beta2DeviceCapacity" $ \o ->+ V1beta2DeviceCapacity+ <$> (o .:? "requestPolicy")+ <*> (o .: "value")++-- | ToJSON V1beta2DeviceCapacity+instance A.ToJSON V1beta2DeviceCapacity where+ toJSON V1beta2DeviceCapacity {..} =+ _omitNulls+ [ "requestPolicy" .= v1beta2DeviceCapacityRequestPolicy+ , "value" .= v1beta2DeviceCapacityValue+ ]+++-- | Construct a value of type 'V1beta2DeviceCapacity' (by applying it's required fields, if any)+mkV1beta2DeviceCapacity+ :: Quantity -- ^ 'v1beta2DeviceCapacityValue' + -> V1beta2DeviceCapacity+mkV1beta2DeviceCapacity v1beta2DeviceCapacityValue =+ V1beta2DeviceCapacity+ { v1beta2DeviceCapacityRequestPolicy = Nothing+ , v1beta2DeviceCapacityValue+ }++-- ** V1beta2DeviceClaim+-- | V1beta2DeviceClaim+-- DeviceClaim defines how to request devices with a ResourceClaim.+data V1beta2DeviceClaim = V1beta2DeviceClaim+ { v1beta2DeviceClaimConfig :: !(Maybe [V1beta2DeviceClaimConfiguration]) -- ^ "config" - This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.+ , v1beta2DeviceClaimConstraints :: !(Maybe [V1beta2DeviceConstraint]) -- ^ "constraints" - These constraints must be satisfied by the set of devices that get allocated for the claim.+ , v1beta2DeviceClaimRequests :: !(Maybe [V1beta2DeviceRequest]) -- ^ "requests" - Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceClaim+instance A.FromJSON V1beta2DeviceClaim where+ parseJSON = A.withObject "V1beta2DeviceClaim" $ \o ->+ V1beta2DeviceClaim+ <$> (o .:? "config")+ <*> (o .:? "constraints")+ <*> (o .:? "requests")++-- | ToJSON V1beta2DeviceClaim+instance A.ToJSON V1beta2DeviceClaim where+ toJSON V1beta2DeviceClaim {..} =+ _omitNulls+ [ "config" .= v1beta2DeviceClaimConfig+ , "constraints" .= v1beta2DeviceClaimConstraints+ , "requests" .= v1beta2DeviceClaimRequests+ ]+++-- | Construct a value of type 'V1beta2DeviceClaim' (by applying it's required fields, if any)+mkV1beta2DeviceClaim+ :: V1beta2DeviceClaim+mkV1beta2DeviceClaim =+ V1beta2DeviceClaim+ { v1beta2DeviceClaimConfig = Nothing+ , v1beta2DeviceClaimConstraints = Nothing+ , v1beta2DeviceClaimRequests = Nothing+ }++-- ** V1beta2DeviceClaimConfiguration+-- | V1beta2DeviceClaimConfiguration+-- DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.+data V1beta2DeviceClaimConfiguration = V1beta2DeviceClaimConfiguration+ { v1beta2DeviceClaimConfigurationOpaque :: !(Maybe V1beta2OpaqueDeviceConfiguration) -- ^ "opaque"+ , v1beta2DeviceClaimConfigurationRequests :: !(Maybe [Text]) -- ^ "requests" - Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the configuration applies to all subrequests.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceClaimConfiguration+instance A.FromJSON V1beta2DeviceClaimConfiguration where+ parseJSON = A.withObject "V1beta2DeviceClaimConfiguration" $ \o ->+ V1beta2DeviceClaimConfiguration+ <$> (o .:? "opaque")+ <*> (o .:? "requests")++-- | ToJSON V1beta2DeviceClaimConfiguration+instance A.ToJSON V1beta2DeviceClaimConfiguration where+ toJSON V1beta2DeviceClaimConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1beta2DeviceClaimConfigurationOpaque+ , "requests" .= v1beta2DeviceClaimConfigurationRequests+ ]+++-- | Construct a value of type 'V1beta2DeviceClaimConfiguration' (by applying it's required fields, if any)+mkV1beta2DeviceClaimConfiguration+ :: V1beta2DeviceClaimConfiguration+mkV1beta2DeviceClaimConfiguration =+ V1beta2DeviceClaimConfiguration+ { v1beta2DeviceClaimConfigurationOpaque = Nothing+ , v1beta2DeviceClaimConfigurationRequests = Nothing+ }++-- ** V1beta2DeviceClass+-- | V1beta2DeviceClass+-- 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.+data V1beta2DeviceClass = V1beta2DeviceClass+ { v1beta2DeviceClassApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta2DeviceClassKind :: !(Maybe Text) -- ^ "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+ , v1beta2DeviceClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta2DeviceClassSpec :: !(V1beta2DeviceClassSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceClass+instance A.FromJSON V1beta2DeviceClass where+ parseJSON = A.withObject "V1beta2DeviceClass" $ \o ->+ V1beta2DeviceClass+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta2DeviceClass+instance A.ToJSON V1beta2DeviceClass where+ toJSON V1beta2DeviceClass {..} =+ _omitNulls+ [ "apiVersion" .= v1beta2DeviceClassApiVersion+ , "kind" .= v1beta2DeviceClassKind+ , "metadata" .= v1beta2DeviceClassMetadata+ , "spec" .= v1beta2DeviceClassSpec+ ]+++-- | Construct a value of type 'V1beta2DeviceClass' (by applying it's required fields, if any)+mkV1beta2DeviceClass+ :: V1beta2DeviceClassSpec -- ^ 'v1beta2DeviceClassSpec' + -> V1beta2DeviceClass+mkV1beta2DeviceClass v1beta2DeviceClassSpec =+ V1beta2DeviceClass+ { v1beta2DeviceClassApiVersion = Nothing+ , v1beta2DeviceClassKind = Nothing+ , v1beta2DeviceClassMetadata = Nothing+ , v1beta2DeviceClassSpec+ }++-- ** V1beta2DeviceClassConfiguration+-- | V1beta2DeviceClassConfiguration+-- DeviceClassConfiguration is used in DeviceClass.+data V1beta2DeviceClassConfiguration = V1beta2DeviceClassConfiguration+ { v1beta2DeviceClassConfigurationOpaque :: !(Maybe V1beta2OpaqueDeviceConfiguration) -- ^ "opaque"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceClassConfiguration+instance A.FromJSON V1beta2DeviceClassConfiguration where+ parseJSON = A.withObject "V1beta2DeviceClassConfiguration" $ \o ->+ V1beta2DeviceClassConfiguration+ <$> (o .:? "opaque")++-- | ToJSON V1beta2DeviceClassConfiguration+instance A.ToJSON V1beta2DeviceClassConfiguration where+ toJSON V1beta2DeviceClassConfiguration {..} =+ _omitNulls+ [ "opaque" .= v1beta2DeviceClassConfigurationOpaque+ ]+++-- | Construct a value of type 'V1beta2DeviceClassConfiguration' (by applying it's required fields, if any)+mkV1beta2DeviceClassConfiguration+ :: V1beta2DeviceClassConfiguration+mkV1beta2DeviceClassConfiguration =+ V1beta2DeviceClassConfiguration+ { v1beta2DeviceClassConfigurationOpaque = Nothing+ }++-- ** V1beta2DeviceClassList+-- | V1beta2DeviceClassList+-- DeviceClassList is a collection of classes.+data V1beta2DeviceClassList = V1beta2DeviceClassList+ { v1beta2DeviceClassListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta2DeviceClassListItems :: !([V1beta2DeviceClass]) -- ^ /Required/ "items" - Items is the list of resource classes.+ , v1beta2DeviceClassListKind :: !(Maybe Text) -- ^ "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+ , v1beta2DeviceClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceClassList+instance A.FromJSON V1beta2DeviceClassList where+ parseJSON = A.withObject "V1beta2DeviceClassList" $ \o ->+ V1beta2DeviceClassList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta2DeviceClassList+instance A.ToJSON V1beta2DeviceClassList where+ toJSON V1beta2DeviceClassList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta2DeviceClassListApiVersion+ , "items" .= v1beta2DeviceClassListItems+ , "kind" .= v1beta2DeviceClassListKind+ , "metadata" .= v1beta2DeviceClassListMetadata+ ]+++-- | Construct a value of type 'V1beta2DeviceClassList' (by applying it's required fields, if any)+mkV1beta2DeviceClassList+ :: [V1beta2DeviceClass] -- ^ 'v1beta2DeviceClassListItems': Items is the list of resource classes.+ -> V1beta2DeviceClassList+mkV1beta2DeviceClassList v1beta2DeviceClassListItems =+ V1beta2DeviceClassList+ { v1beta2DeviceClassListApiVersion = Nothing+ , v1beta2DeviceClassListItems+ , v1beta2DeviceClassListKind = Nothing+ , v1beta2DeviceClassListMetadata = Nothing+ }++-- ** V1beta2DeviceClassSpec+-- | V1beta2DeviceClassSpec+-- DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.+data V1beta2DeviceClassSpec = V1beta2DeviceClassSpec+ { v1beta2DeviceClassSpecConfig :: !(Maybe [V1beta2DeviceClassConfiguration]) -- ^ "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.+ , v1beta2DeviceClassSpecExtendedResourceName :: !(Maybe Text) -- ^ "extendedResourceName" - ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. This is an alpha field.+ , v1beta2DeviceClassSpecSelectors :: !(Maybe [V1beta2DeviceSelector]) -- ^ "selectors" - Each selector must be satisfied by a device which is claimed via this class.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceClassSpec+instance A.FromJSON V1beta2DeviceClassSpec where+ parseJSON = A.withObject "V1beta2DeviceClassSpec" $ \o ->+ V1beta2DeviceClassSpec+ <$> (o .:? "config")+ <*> (o .:? "extendedResourceName")+ <*> (o .:? "selectors")++-- | ToJSON V1beta2DeviceClassSpec+instance A.ToJSON V1beta2DeviceClassSpec where+ toJSON V1beta2DeviceClassSpec {..} =+ _omitNulls+ [ "config" .= v1beta2DeviceClassSpecConfig+ , "extendedResourceName" .= v1beta2DeviceClassSpecExtendedResourceName+ , "selectors" .= v1beta2DeviceClassSpecSelectors+ ]+++-- | Construct a value of type 'V1beta2DeviceClassSpec' (by applying it's required fields, if any)+mkV1beta2DeviceClassSpec+ :: V1beta2DeviceClassSpec+mkV1beta2DeviceClassSpec =+ V1beta2DeviceClassSpec+ { v1beta2DeviceClassSpecConfig = Nothing+ , v1beta2DeviceClassSpecExtendedResourceName = Nothing+ , v1beta2DeviceClassSpecSelectors = Nothing+ }++-- ** V1beta2DeviceConstraint+-- | V1beta2DeviceConstraint+-- DeviceConstraint must have exactly one field set besides Requests.+data V1beta2DeviceConstraint = V1beta2DeviceConstraint+ { v1beta2DeviceConstraintDistinctAttribute :: !(Maybe Text) -- ^ "distinctAttribute" - DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. This acts as the inverse of MatchAttribute. This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs.+ , v1beta2DeviceConstraintMatchAttribute :: !(Maybe Text) -- ^ "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.+ , v1beta2DeviceConstraintRequests :: !(Maybe [Text]) -- ^ "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. References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceConstraint+instance A.FromJSON V1beta2DeviceConstraint where+ parseJSON = A.withObject "V1beta2DeviceConstraint" $ \o ->+ V1beta2DeviceConstraint+ <$> (o .:? "distinctAttribute")+ <*> (o .:? "matchAttribute")+ <*> (o .:? "requests")++-- | ToJSON V1beta2DeviceConstraint+instance A.ToJSON V1beta2DeviceConstraint where+ toJSON V1beta2DeviceConstraint {..} =+ _omitNulls+ [ "distinctAttribute" .= v1beta2DeviceConstraintDistinctAttribute+ , "matchAttribute" .= v1beta2DeviceConstraintMatchAttribute+ , "requests" .= v1beta2DeviceConstraintRequests+ ]+++-- | Construct a value of type 'V1beta2DeviceConstraint' (by applying it's required fields, if any)+mkV1beta2DeviceConstraint+ :: V1beta2DeviceConstraint+mkV1beta2DeviceConstraint =+ V1beta2DeviceConstraint+ { v1beta2DeviceConstraintDistinctAttribute = Nothing+ , v1beta2DeviceConstraintMatchAttribute = Nothing+ , v1beta2DeviceConstraintRequests = Nothing+ }++-- ** V1beta2DeviceCounterConsumption+-- | V1beta2DeviceCounterConsumption+-- DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.+data V1beta2DeviceCounterConsumption = V1beta2DeviceCounterConsumption+ { v1beta2DeviceCounterConsumptionCounterSet :: !(Text) -- ^ /Required/ "counterSet" - CounterSet is the name of the set from which the counters defined will be consumed.+ , v1beta2DeviceCounterConsumptionCounters :: !((Map.Map String V1beta2Counter)) -- ^ /Required/ "counters" - Counters defines the counters that will be consumed by the device. The maximum number of counters is 32.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceCounterConsumption+instance A.FromJSON V1beta2DeviceCounterConsumption where+ parseJSON = A.withObject "V1beta2DeviceCounterConsumption" $ \o ->+ V1beta2DeviceCounterConsumption+ <$> (o .: "counterSet")+ <*> (o .: "counters")++-- | ToJSON V1beta2DeviceCounterConsumption+instance A.ToJSON V1beta2DeviceCounterConsumption where+ toJSON V1beta2DeviceCounterConsumption {..} =+ _omitNulls+ [ "counterSet" .= v1beta2DeviceCounterConsumptionCounterSet+ , "counters" .= v1beta2DeviceCounterConsumptionCounters+ ]+++-- | Construct a value of type 'V1beta2DeviceCounterConsumption' (by applying it's required fields, if any)+mkV1beta2DeviceCounterConsumption+ :: Text -- ^ 'v1beta2DeviceCounterConsumptionCounterSet': CounterSet is the name of the set from which the counters defined will be consumed.+ -> (Map.Map String V1beta2Counter) -- ^ 'v1beta2DeviceCounterConsumptionCounters': Counters defines the counters that will be consumed by the device. The maximum number of counters is 32.+ -> V1beta2DeviceCounterConsumption+mkV1beta2DeviceCounterConsumption v1beta2DeviceCounterConsumptionCounterSet v1beta2DeviceCounterConsumptionCounters =+ V1beta2DeviceCounterConsumption+ { v1beta2DeviceCounterConsumptionCounterSet+ , v1beta2DeviceCounterConsumptionCounters+ }++-- ** V1beta2DeviceRequest+-- | V1beta2DeviceRequest+-- 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. With FirstAvailable it is also possible to provide a prioritized list of requests.+data V1beta2DeviceRequest = V1beta2DeviceRequest+ { v1beta2DeviceRequestExactly :: !(Maybe V1beta2ExactDeviceRequest) -- ^ "exactly"+ , v1beta2DeviceRequestFirstAvailable :: !(Maybe [V1beta2DeviceSubRequest]) -- ^ "firstAvailable" - FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later.+ , v1beta2DeviceRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. Must be a DNS label.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceRequest+instance A.FromJSON V1beta2DeviceRequest where+ parseJSON = A.withObject "V1beta2DeviceRequest" $ \o ->+ V1beta2DeviceRequest+ <$> (o .:? "exactly")+ <*> (o .:? "firstAvailable")+ <*> (o .: "name")++-- | ToJSON V1beta2DeviceRequest+instance A.ToJSON V1beta2DeviceRequest where+ toJSON V1beta2DeviceRequest {..} =+ _omitNulls+ [ "exactly" .= v1beta2DeviceRequestExactly+ , "firstAvailable" .= v1beta2DeviceRequestFirstAvailable+ , "name" .= v1beta2DeviceRequestName+ ]+++-- | Construct a value of type 'V1beta2DeviceRequest' (by applying it's required fields, if any)+mkV1beta2DeviceRequest+ :: Text -- ^ 'v1beta2DeviceRequestName': Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. Must be a DNS label.+ -> V1beta2DeviceRequest+mkV1beta2DeviceRequest v1beta2DeviceRequestName =+ V1beta2DeviceRequest+ { v1beta2DeviceRequestExactly = Nothing+ , v1beta2DeviceRequestFirstAvailable = Nothing+ , v1beta2DeviceRequestName+ }++-- ** V1beta2DeviceRequestAllocationResult+-- | V1beta2DeviceRequestAllocationResult+-- DeviceRequestAllocationResult contains the allocation result for one request.+data V1beta2DeviceRequestAllocationResult = V1beta2DeviceRequestAllocationResult+ { v1beta2DeviceRequestAllocationResultAdminAccess :: !(Maybe Bool) -- ^ "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.+ , v1beta2DeviceRequestAllocationResultBindingConditions :: !(Maybe [Text]) -- ^ "bindingConditions" - BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta2DeviceRequestAllocationResultBindingFailureConditions :: !(Maybe [Text]) -- ^ "bindingFailureConditions" - BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.+ , v1beta2DeviceRequestAllocationResultConsumedCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "consumedCapacity" - ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). The total consumed capacity for each device must not exceed the DeviceCapacity's Value. This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero.+ , v1beta2DeviceRequestAllocationResultDevice :: !(Text) -- ^ /Required/ "device" - Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ , v1beta2DeviceRequestAllocationResultDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1beta2DeviceRequestAllocationResultPool :: !(Text) -- ^ /Required/ "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.+ , v1beta2DeviceRequestAllocationResultRequest :: !(Text) -- ^ /Required/ "request" - Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.+ , v1beta2DeviceRequestAllocationResultShareId :: !(Maybe Text) -- ^ "shareID" - ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device.+ , v1beta2DeviceRequestAllocationResultTolerations :: !(Maybe [V1beta2DeviceToleration]) -- ^ "tolerations" - A copy of all tolerations specified in the request at the time when the device got allocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceRequestAllocationResult+instance A.FromJSON V1beta2DeviceRequestAllocationResult where+ parseJSON = A.withObject "V1beta2DeviceRequestAllocationResult" $ \o ->+ V1beta2DeviceRequestAllocationResult+ <$> (o .:? "adminAccess")+ <*> (o .:? "bindingConditions")+ <*> (o .:? "bindingFailureConditions")+ <*> (o .:? "consumedCapacity")+ <*> (o .: "device")+ <*> (o .: "driver")+ <*> (o .: "pool")+ <*> (o .: "request")+ <*> (o .:? "shareID")+ <*> (o .:? "tolerations")++-- | ToJSON V1beta2DeviceRequestAllocationResult+instance A.ToJSON V1beta2DeviceRequestAllocationResult where+ toJSON V1beta2DeviceRequestAllocationResult {..} =+ _omitNulls+ [ "adminAccess" .= v1beta2DeviceRequestAllocationResultAdminAccess+ , "bindingConditions" .= v1beta2DeviceRequestAllocationResultBindingConditions+ , "bindingFailureConditions" .= v1beta2DeviceRequestAllocationResultBindingFailureConditions+ , "consumedCapacity" .= v1beta2DeviceRequestAllocationResultConsumedCapacity+ , "device" .= v1beta2DeviceRequestAllocationResultDevice+ , "driver" .= v1beta2DeviceRequestAllocationResultDriver+ , "pool" .= v1beta2DeviceRequestAllocationResultPool+ , "request" .= v1beta2DeviceRequestAllocationResultRequest+ , "shareID" .= v1beta2DeviceRequestAllocationResultShareId+ , "tolerations" .= v1beta2DeviceRequestAllocationResultTolerations+ ]+++-- | Construct a value of type 'V1beta2DeviceRequestAllocationResult' (by applying it's required fields, if any)+mkV1beta2DeviceRequestAllocationResult+ :: Text -- ^ 'v1beta2DeviceRequestAllocationResultDevice': Device references one device instance via its name in the driver's resource pool. It must be a DNS label.+ -> Text -- ^ 'v1beta2DeviceRequestAllocationResultDriver': 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. It should use only lower case characters.+ -> Text -- ^ 'v1beta2DeviceRequestAllocationResultPool': 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.+ -> Text -- ^ 'v1beta2DeviceRequestAllocationResultRequest': Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format <main request>/<subrequest>. Multiple devices may have been allocated per request.+ -> V1beta2DeviceRequestAllocationResult+mkV1beta2DeviceRequestAllocationResult v1beta2DeviceRequestAllocationResultDevice v1beta2DeviceRequestAllocationResultDriver v1beta2DeviceRequestAllocationResultPool v1beta2DeviceRequestAllocationResultRequest =+ V1beta2DeviceRequestAllocationResult+ { v1beta2DeviceRequestAllocationResultAdminAccess = Nothing+ , v1beta2DeviceRequestAllocationResultBindingConditions = Nothing+ , v1beta2DeviceRequestAllocationResultBindingFailureConditions = Nothing+ , v1beta2DeviceRequestAllocationResultConsumedCapacity = Nothing+ , v1beta2DeviceRequestAllocationResultDevice+ , v1beta2DeviceRequestAllocationResultDriver+ , v1beta2DeviceRequestAllocationResultPool+ , v1beta2DeviceRequestAllocationResultRequest+ , v1beta2DeviceRequestAllocationResultShareId = Nothing+ , v1beta2DeviceRequestAllocationResultTolerations = Nothing+ }++-- ** V1beta2DeviceSelector+-- | V1beta2DeviceSelector+-- DeviceSelector must have exactly one field set.+data V1beta2DeviceSelector = V1beta2DeviceSelector+ { v1beta2DeviceSelectorCel :: !(Maybe V1beta2CELDeviceSelector) -- ^ "cel"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceSelector+instance A.FromJSON V1beta2DeviceSelector where+ parseJSON = A.withObject "V1beta2DeviceSelector" $ \o ->+ V1beta2DeviceSelector+ <$> (o .:? "cel")++-- | ToJSON V1beta2DeviceSelector+instance A.ToJSON V1beta2DeviceSelector where+ toJSON V1beta2DeviceSelector {..} =+ _omitNulls+ [ "cel" .= v1beta2DeviceSelectorCel+ ]+++-- | Construct a value of type 'V1beta2DeviceSelector' (by applying it's required fields, if any)+mkV1beta2DeviceSelector+ :: V1beta2DeviceSelector+mkV1beta2DeviceSelector =+ V1beta2DeviceSelector+ { v1beta2DeviceSelectorCel = Nothing+ }++-- ** V1beta2DeviceSubRequest+-- | V1beta2DeviceSubRequest+-- DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device.+data V1beta2DeviceSubRequest = V1beta2DeviceSubRequest+ { v1beta2DeviceSubRequestAllocationMode :: !(Maybe Text) -- ^ "allocationMode" - AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. 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 subrequest is for all of the matching devices in a pool. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.+ , v1beta2DeviceSubRequestCapacity :: !(Maybe V1beta2CapacityRequirements) -- ^ "capacity"+ , v1beta2DeviceSubRequestCount :: !(Maybe Integer) -- ^ "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.+ , v1beta2DeviceSubRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.+ , v1beta2DeviceSubRequestName :: !(Text) -- ^ /Required/ "name" - Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.+ , v1beta2DeviceSubRequestSelectors :: !(Maybe [V1beta2DeviceSelector]) -- ^ "selectors" - Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered.+ , v1beta2DeviceSubRequestTolerations :: !(Maybe [V1beta2DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceSubRequest+instance A.FromJSON V1beta2DeviceSubRequest where+ parseJSON = A.withObject "V1beta2DeviceSubRequest" $ \o ->+ V1beta2DeviceSubRequest+ <$> (o .:? "allocationMode")+ <*> (o .:? "capacity")+ <*> (o .:? "count")+ <*> (o .: "deviceClassName")+ <*> (o .: "name")+ <*> (o .:? "selectors")+ <*> (o .:? "tolerations")++-- | ToJSON V1beta2DeviceSubRequest+instance A.ToJSON V1beta2DeviceSubRequest where+ toJSON V1beta2DeviceSubRequest {..} =+ _omitNulls+ [ "allocationMode" .= v1beta2DeviceSubRequestAllocationMode+ , "capacity" .= v1beta2DeviceSubRequestCapacity+ , "count" .= v1beta2DeviceSubRequestCount+ , "deviceClassName" .= v1beta2DeviceSubRequestDeviceClassName+ , "name" .= v1beta2DeviceSubRequestName+ , "selectors" .= v1beta2DeviceSubRequestSelectors+ , "tolerations" .= v1beta2DeviceSubRequestTolerations+ ]+++-- | Construct a value of type 'V1beta2DeviceSubRequest' (by applying it's required fields, if any)+mkV1beta2DeviceSubRequest+ :: Text -- ^ 'v1beta2DeviceSubRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. 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.+ -> Text -- ^ 'v1beta2DeviceSubRequestName': Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format <main request>/<subrequest>. Must be a DNS label.+ -> V1beta2DeviceSubRequest+mkV1beta2DeviceSubRequest v1beta2DeviceSubRequestDeviceClassName v1beta2DeviceSubRequestName =+ V1beta2DeviceSubRequest+ { v1beta2DeviceSubRequestAllocationMode = Nothing+ , v1beta2DeviceSubRequestCapacity = Nothing+ , v1beta2DeviceSubRequestCount = Nothing+ , v1beta2DeviceSubRequestDeviceClassName+ , v1beta2DeviceSubRequestName+ , v1beta2DeviceSubRequestSelectors = Nothing+ , v1beta2DeviceSubRequestTolerations = Nothing+ }++-- ** V1beta2DeviceTaint+-- | V1beta2DeviceTaint+-- The device this taint is attached to has the \"effect\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.+data V1beta2DeviceTaint = V1beta2DeviceTaint+ { v1beta2DeviceTaintEffect :: !(Text) -- ^ /Required/ "effect" - The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.+ , v1beta2DeviceTaintKey :: !(Text) -- ^ /Required/ "key" - The taint key to be applied to a device. Must be a label name.+ , v1beta2DeviceTaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set.+ , v1beta2DeviceTaintValue :: !(Maybe Text) -- ^ "value" - The taint value corresponding to the taint key. Must be a label value.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceTaint+instance A.FromJSON V1beta2DeviceTaint where+ parseJSON = A.withObject "V1beta2DeviceTaint" $ \o ->+ V1beta2DeviceTaint+ <$> (o .: "effect")+ <*> (o .: "key")+ <*> (o .:? "timeAdded")+ <*> (o .:? "value")++-- | ToJSON V1beta2DeviceTaint+instance A.ToJSON V1beta2DeviceTaint where+ toJSON V1beta2DeviceTaint {..} =+ _omitNulls+ [ "effect" .= v1beta2DeviceTaintEffect+ , "key" .= v1beta2DeviceTaintKey+ , "timeAdded" .= v1beta2DeviceTaintTimeAdded+ , "value" .= v1beta2DeviceTaintValue+ ]+++-- | Construct a value of type 'V1beta2DeviceTaint' (by applying it's required fields, if any)+mkV1beta2DeviceTaint+ :: Text -- ^ 'v1beta2DeviceTaintEffect': The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None.+ -> Text -- ^ 'v1beta2DeviceTaintKey': The taint key to be applied to a device. Must be a label name.+ -> V1beta2DeviceTaint+mkV1beta2DeviceTaint v1beta2DeviceTaintEffect v1beta2DeviceTaintKey =+ V1beta2DeviceTaint+ { v1beta2DeviceTaintEffect+ , v1beta2DeviceTaintKey+ , v1beta2DeviceTaintTimeAdded = Nothing+ , v1beta2DeviceTaintValue = Nothing+ }++-- ** V1beta2DeviceToleration+-- | V1beta2DeviceToleration+-- The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.+data V1beta2DeviceToleration = V1beta2DeviceToleration+ { v1beta2DeviceTolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute.+ , v1beta2DeviceTolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name.+ , v1beta2DeviceTolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category.+ , v1beta2DeviceTolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as <time when taint was adedd> + <toleration seconds>.+ , v1beta2DeviceTolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value must be empty, otherwise just a regular string. Must be a label value.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2DeviceToleration+instance A.FromJSON V1beta2DeviceToleration where+ parseJSON = A.withObject "V1beta2DeviceToleration" $ \o ->+ V1beta2DeviceToleration+ <$> (o .:? "effect")+ <*> (o .:? "key")+ <*> (o .:? "operator")+ <*> (o .:? "tolerationSeconds")+ <*> (o .:? "value")++-- | ToJSON V1beta2DeviceToleration+instance A.ToJSON V1beta2DeviceToleration where+ toJSON V1beta2DeviceToleration {..} =+ _omitNulls+ [ "effect" .= v1beta2DeviceTolerationEffect+ , "key" .= v1beta2DeviceTolerationKey+ , "operator" .= v1beta2DeviceTolerationOperator+ , "tolerationSeconds" .= v1beta2DeviceTolerationTolerationSeconds+ , "value" .= v1beta2DeviceTolerationValue+ ]+++-- | Construct a value of type 'V1beta2DeviceToleration' (by applying it's required fields, if any)+mkV1beta2DeviceToleration+ :: V1beta2DeviceToleration+mkV1beta2DeviceToleration =+ V1beta2DeviceToleration+ { v1beta2DeviceTolerationEffect = Nothing+ , v1beta2DeviceTolerationKey = Nothing+ , v1beta2DeviceTolerationOperator = Nothing+ , v1beta2DeviceTolerationTolerationSeconds = Nothing+ , v1beta2DeviceTolerationValue = Nothing+ }++-- ** V1beta2ExactDeviceRequest+-- | V1beta2ExactDeviceRequest+-- ExactDeviceRequest is a request for one or more identical devices.+data V1beta2ExactDeviceRequest = V1beta2ExactDeviceRequest+ { v1beta2ExactDeviceRequestAdminAccess :: !(Maybe Bool) -- ^ "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.+ , v1beta2ExactDeviceRequestAllocationMode :: !(Maybe Text) -- ^ "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. At least one device must exist on the node for the allocation to succeed. Allocation will fail if some devices are already allocated, unless adminAccess is requested. If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field. More modes may get added in the future. Clients must refuse to handle requests with unknown modes.+ , v1beta2ExactDeviceRequestCapacity :: !(Maybe V1beta2CapacityRequirements) -- ^ "capacity"+ , v1beta2ExactDeviceRequestCount :: !(Maybe Integer) -- ^ "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.+ , v1beta2ExactDeviceRequestDeviceClassName :: !(Text) -- ^ /Required/ "deviceClassName" - DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A DeviceClassName is required. 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.+ , v1beta2ExactDeviceRequestSelectors :: !(Maybe [V1beta2DeviceSelector]) -- ^ "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.+ , v1beta2ExactDeviceRequestTolerations :: !(Maybe [V1beta2DeviceToleration]) -- ^ "tolerations" - If specified, the request's tolerations. Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. The maximum number of tolerations is 16. This is an alpha field and requires enabling the DRADeviceTaints feature gate.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ExactDeviceRequest+instance A.FromJSON V1beta2ExactDeviceRequest where+ parseJSON = A.withObject "V1beta2ExactDeviceRequest" $ \o ->+ V1beta2ExactDeviceRequest+ <$> (o .:? "adminAccess")+ <*> (o .:? "allocationMode")+ <*> (o .:? "capacity")+ <*> (o .:? "count")+ <*> (o .: "deviceClassName")+ <*> (o .:? "selectors")+ <*> (o .:? "tolerations")++-- | ToJSON V1beta2ExactDeviceRequest+instance A.ToJSON V1beta2ExactDeviceRequest where+ toJSON V1beta2ExactDeviceRequest {..} =+ _omitNulls+ [ "adminAccess" .= v1beta2ExactDeviceRequestAdminAccess+ , "allocationMode" .= v1beta2ExactDeviceRequestAllocationMode+ , "capacity" .= v1beta2ExactDeviceRequestCapacity+ , "count" .= v1beta2ExactDeviceRequestCount+ , "deviceClassName" .= v1beta2ExactDeviceRequestDeviceClassName+ , "selectors" .= v1beta2ExactDeviceRequestSelectors+ , "tolerations" .= v1beta2ExactDeviceRequestTolerations+ ]+++-- | Construct a value of type 'V1beta2ExactDeviceRequest' (by applying it's required fields, if any)+mkV1beta2ExactDeviceRequest+ :: Text -- ^ 'v1beta2ExactDeviceRequestDeviceClassName': DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. A DeviceClassName is required. 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.+ -> V1beta2ExactDeviceRequest+mkV1beta2ExactDeviceRequest v1beta2ExactDeviceRequestDeviceClassName =+ V1beta2ExactDeviceRequest+ { v1beta2ExactDeviceRequestAdminAccess = Nothing+ , v1beta2ExactDeviceRequestAllocationMode = Nothing+ , v1beta2ExactDeviceRequestCapacity = Nothing+ , v1beta2ExactDeviceRequestCount = Nothing+ , v1beta2ExactDeviceRequestDeviceClassName+ , v1beta2ExactDeviceRequestSelectors = Nothing+ , v1beta2ExactDeviceRequestTolerations = Nothing+ }++-- ** V1beta2NetworkDeviceData+-- | V1beta2NetworkDeviceData+-- 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.+data V1beta2NetworkDeviceData = V1beta2NetworkDeviceData+ { v1beta2NetworkDeviceDataHardwareAddress :: !(Maybe Text) -- ^ "hardwareAddress" - HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface. Must not be longer than 128 characters.+ , v1beta2NetworkDeviceDataInterfaceName :: !(Maybe Text) -- ^ "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.+ , v1beta2NetworkDeviceDataIps :: !(Maybe [Text]) -- ^ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2NetworkDeviceData+instance A.FromJSON V1beta2NetworkDeviceData where+ parseJSON = A.withObject "V1beta2NetworkDeviceData" $ \o ->+ V1beta2NetworkDeviceData+ <$> (o .:? "hardwareAddress")+ <*> (o .:? "interfaceName")+ <*> (o .:? "ips")++-- | ToJSON V1beta2NetworkDeviceData+instance A.ToJSON V1beta2NetworkDeviceData where+ toJSON V1beta2NetworkDeviceData {..} =+ _omitNulls+ [ "hardwareAddress" .= v1beta2NetworkDeviceDataHardwareAddress+ , "interfaceName" .= v1beta2NetworkDeviceDataInterfaceName+ , "ips" .= v1beta2NetworkDeviceDataIps+ ]+++-- | Construct a value of type 'V1beta2NetworkDeviceData' (by applying it's required fields, if any)+mkV1beta2NetworkDeviceData+ :: V1beta2NetworkDeviceData+mkV1beta2NetworkDeviceData =+ V1beta2NetworkDeviceData+ { v1beta2NetworkDeviceDataHardwareAddress = Nothing+ , v1beta2NetworkDeviceDataInterfaceName = Nothing+ , v1beta2NetworkDeviceDataIps = Nothing+ }++-- ** V1beta2OpaqueDeviceConfiguration+-- | V1beta2OpaqueDeviceConfiguration+-- OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.+data V1beta2OpaqueDeviceConfiguration = V1beta2OpaqueDeviceConfiguration+ { v1beta2OpaqueDeviceConfigurationDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters.+ , v1beta2OpaqueDeviceConfigurationParameters :: !(A.Value) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2OpaqueDeviceConfiguration+instance A.FromJSON V1beta2OpaqueDeviceConfiguration where+ parseJSON = A.withObject "V1beta2OpaqueDeviceConfiguration" $ \o ->+ V1beta2OpaqueDeviceConfiguration+ <$> (o .: "driver")+ <*> (o .: "parameters")++-- | ToJSON V1beta2OpaqueDeviceConfiguration+instance A.ToJSON V1beta2OpaqueDeviceConfiguration where+ toJSON V1beta2OpaqueDeviceConfiguration {..} =+ _omitNulls+ [ "driver" .= v1beta2OpaqueDeviceConfigurationDriver+ , "parameters" .= v1beta2OpaqueDeviceConfigurationParameters+ ]+++-- | Construct a value of type 'V1beta2OpaqueDeviceConfiguration' (by applying it's required fields, if any)+mkV1beta2OpaqueDeviceConfiguration+ :: Text -- ^ 'v1beta2OpaqueDeviceConfigurationDriver': 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. It should use only lower case characters.+ -> A.Value -- ^ 'v1beta2OpaqueDeviceConfigurationParameters': 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.+ -> V1beta2OpaqueDeviceConfiguration+mkV1beta2OpaqueDeviceConfiguration v1beta2OpaqueDeviceConfigurationDriver v1beta2OpaqueDeviceConfigurationParameters =+ V1beta2OpaqueDeviceConfiguration+ { v1beta2OpaqueDeviceConfigurationDriver+ , v1beta2OpaqueDeviceConfigurationParameters+ }++-- ** V1beta2ResourceClaim+-- | V1beta2ResourceClaim+-- 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.+data V1beta2ResourceClaim = V1beta2ResourceClaim+ { v1beta2ResourceClaimApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceClaimKind :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta2ResourceClaimSpec :: !(V1beta2ResourceClaimSpec) -- ^ /Required/ "spec"+ , v1beta2ResourceClaimStatus :: !(Maybe V1beta2ResourceClaimStatus) -- ^ "status"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceClaim+instance A.FromJSON V1beta2ResourceClaim where+ parseJSON = A.withObject "V1beta2ResourceClaim" $ \o ->+ V1beta2ResourceClaim+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")+ <*> (o .:? "status")++-- | ToJSON V1beta2ResourceClaim+instance A.ToJSON V1beta2ResourceClaim where+ toJSON V1beta2ResourceClaim {..} =+ _omitNulls+ [ "apiVersion" .= v1beta2ResourceClaimApiVersion+ , "kind" .= v1beta2ResourceClaimKind+ , "metadata" .= v1beta2ResourceClaimMetadata+ , "spec" .= v1beta2ResourceClaimSpec+ , "status" .= v1beta2ResourceClaimStatus+ ]+++-- | Construct a value of type 'V1beta2ResourceClaim' (by applying it's required fields, if any)+mkV1beta2ResourceClaim+ :: V1beta2ResourceClaimSpec -- ^ 'v1beta2ResourceClaimSpec' + -> V1beta2ResourceClaim+mkV1beta2ResourceClaim v1beta2ResourceClaimSpec =+ V1beta2ResourceClaim+ { v1beta2ResourceClaimApiVersion = Nothing+ , v1beta2ResourceClaimKind = Nothing+ , v1beta2ResourceClaimMetadata = Nothing+ , v1beta2ResourceClaimSpec+ , v1beta2ResourceClaimStatus = Nothing+ }++-- ** V1beta2ResourceClaimConsumerReference+-- | V1beta2ResourceClaimConsumerReference+-- 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.+data V1beta2ResourceClaimConsumerReference = V1beta2ResourceClaimConsumerReference+ { v1beta2ResourceClaimConsumerReferenceApiGroup :: !(Maybe Text) -- ^ "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.+ , v1beta2ResourceClaimConsumerReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced.+ , v1beta2ResourceClaimConsumerReferenceResource :: !(Text) -- ^ /Required/ "resource" - Resource is the type of resource being referenced, for example \"pods\".+ , v1beta2ResourceClaimConsumerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID identifies exactly one incarnation of the resource.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceClaimConsumerReference+instance A.FromJSON V1beta2ResourceClaimConsumerReference where+ parseJSON = A.withObject "V1beta2ResourceClaimConsumerReference" $ \o ->+ V1beta2ResourceClaimConsumerReference+ <$> (o .:? "apiGroup")+ <*> (o .: "name")+ <*> (o .: "resource")+ <*> (o .: "uid")++-- | ToJSON V1beta2ResourceClaimConsumerReference+instance A.ToJSON V1beta2ResourceClaimConsumerReference where+ toJSON V1beta2ResourceClaimConsumerReference {..} =+ _omitNulls+ [ "apiGroup" .= v1beta2ResourceClaimConsumerReferenceApiGroup+ , "name" .= v1beta2ResourceClaimConsumerReferenceName+ , "resource" .= v1beta2ResourceClaimConsumerReferenceResource+ , "uid" .= v1beta2ResourceClaimConsumerReferenceUid+ ]+++-- | Construct a value of type 'V1beta2ResourceClaimConsumerReference' (by applying it's required fields, if any)+mkV1beta2ResourceClaimConsumerReference+ :: Text -- ^ 'v1beta2ResourceClaimConsumerReferenceName': Name is the name of resource being referenced.+ -> Text -- ^ 'v1beta2ResourceClaimConsumerReferenceResource': Resource is the type of resource being referenced, for example \"pods\".+ -> Text -- ^ 'v1beta2ResourceClaimConsumerReferenceUid': UID identifies exactly one incarnation of the resource.+ -> V1beta2ResourceClaimConsumerReference+mkV1beta2ResourceClaimConsumerReference v1beta2ResourceClaimConsumerReferenceName v1beta2ResourceClaimConsumerReferenceResource v1beta2ResourceClaimConsumerReferenceUid =+ V1beta2ResourceClaimConsumerReference+ { v1beta2ResourceClaimConsumerReferenceApiGroup = Nothing+ , v1beta2ResourceClaimConsumerReferenceName+ , v1beta2ResourceClaimConsumerReferenceResource+ , v1beta2ResourceClaimConsumerReferenceUid+ }++-- ** V1beta2ResourceClaimList+-- | V1beta2ResourceClaimList+-- ResourceClaimList is a collection of claims.+data V1beta2ResourceClaimList = V1beta2ResourceClaimList+ { v1beta2ResourceClaimListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceClaimListItems :: !([V1beta2ResourceClaim]) -- ^ /Required/ "items" - Items is the list of resource claims.+ , v1beta2ResourceClaimListKind :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceClaimList+instance A.FromJSON V1beta2ResourceClaimList where+ parseJSON = A.withObject "V1beta2ResourceClaimList" $ \o ->+ V1beta2ResourceClaimList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta2ResourceClaimList+instance A.ToJSON V1beta2ResourceClaimList where+ toJSON V1beta2ResourceClaimList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta2ResourceClaimListApiVersion+ , "items" .= v1beta2ResourceClaimListItems+ , "kind" .= v1beta2ResourceClaimListKind+ , "metadata" .= v1beta2ResourceClaimListMetadata+ ]+++-- | Construct a value of type 'V1beta2ResourceClaimList' (by applying it's required fields, if any)+mkV1beta2ResourceClaimList+ :: [V1beta2ResourceClaim] -- ^ 'v1beta2ResourceClaimListItems': Items is the list of resource claims.+ -> V1beta2ResourceClaimList+mkV1beta2ResourceClaimList v1beta2ResourceClaimListItems =+ V1beta2ResourceClaimList+ { v1beta2ResourceClaimListApiVersion = Nothing+ , v1beta2ResourceClaimListItems+ , v1beta2ResourceClaimListKind = Nothing+ , v1beta2ResourceClaimListMetadata = Nothing+ }++-- ** V1beta2ResourceClaimSpec+-- | V1beta2ResourceClaimSpec+-- ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.+data V1beta2ResourceClaimSpec = V1beta2ResourceClaimSpec+ { v1beta2ResourceClaimSpecDevices :: !(Maybe V1beta2DeviceClaim) -- ^ "devices"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceClaimSpec+instance A.FromJSON V1beta2ResourceClaimSpec where+ parseJSON = A.withObject "V1beta2ResourceClaimSpec" $ \o ->+ V1beta2ResourceClaimSpec+ <$> (o .:? "devices")++-- | ToJSON V1beta2ResourceClaimSpec+instance A.ToJSON V1beta2ResourceClaimSpec where+ toJSON V1beta2ResourceClaimSpec {..} =+ _omitNulls+ [ "devices" .= v1beta2ResourceClaimSpecDevices+ ]+++-- | Construct a value of type 'V1beta2ResourceClaimSpec' (by applying it's required fields, if any)+mkV1beta2ResourceClaimSpec+ :: V1beta2ResourceClaimSpec+mkV1beta2ResourceClaimSpec =+ V1beta2ResourceClaimSpec+ { v1beta2ResourceClaimSpecDevices = Nothing+ }++-- ** V1beta2ResourceClaimStatus+-- | V1beta2ResourceClaimStatus+-- ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.+data V1beta2ResourceClaimStatus = V1beta2ResourceClaimStatus+ { v1beta2ResourceClaimStatusAllocation :: !(Maybe V1beta2AllocationResult) -- ^ "allocation"+ , v1beta2ResourceClaimStatusDevices :: !(Maybe [V1beta2AllocatedDeviceStatus]) -- ^ "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.+ , v1beta2ResourceClaimStatusReservedFor :: !(Maybe [V1beta2ResourceClaimConsumerReference]) -- ^ "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 256 such reservations. This may get increased in the future, but not reduced.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceClaimStatus+instance A.FromJSON V1beta2ResourceClaimStatus where+ parseJSON = A.withObject "V1beta2ResourceClaimStatus" $ \o ->+ V1beta2ResourceClaimStatus+ <$> (o .:? "allocation")+ <*> (o .:? "devices")+ <*> (o .:? "reservedFor")++-- | ToJSON V1beta2ResourceClaimStatus+instance A.ToJSON V1beta2ResourceClaimStatus where+ toJSON V1beta2ResourceClaimStatus {..} =+ _omitNulls+ [ "allocation" .= v1beta2ResourceClaimStatusAllocation+ , "devices" .= v1beta2ResourceClaimStatusDevices+ , "reservedFor" .= v1beta2ResourceClaimStatusReservedFor+ ]+++-- | Construct a value of type 'V1beta2ResourceClaimStatus' (by applying it's required fields, if any)+mkV1beta2ResourceClaimStatus+ :: V1beta2ResourceClaimStatus+mkV1beta2ResourceClaimStatus =+ V1beta2ResourceClaimStatus+ { v1beta2ResourceClaimStatusAllocation = Nothing+ , v1beta2ResourceClaimStatusDevices = Nothing+ , v1beta2ResourceClaimStatusReservedFor = Nothing+ }++-- ** V1beta2ResourceClaimTemplate+-- | V1beta2ResourceClaimTemplate+-- ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.+data V1beta2ResourceClaimTemplate = V1beta2ResourceClaimTemplate+ { v1beta2ResourceClaimTemplateApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceClaimTemplateKind :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceClaimTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta2ResourceClaimTemplateSpec :: !(V1beta2ResourceClaimTemplateSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceClaimTemplate+instance A.FromJSON V1beta2ResourceClaimTemplate where+ parseJSON = A.withObject "V1beta2ResourceClaimTemplate" $ \o ->+ V1beta2ResourceClaimTemplate+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta2ResourceClaimTemplate+instance A.ToJSON V1beta2ResourceClaimTemplate where+ toJSON V1beta2ResourceClaimTemplate {..} =+ _omitNulls+ [ "apiVersion" .= v1beta2ResourceClaimTemplateApiVersion+ , "kind" .= v1beta2ResourceClaimTemplateKind+ , "metadata" .= v1beta2ResourceClaimTemplateMetadata+ , "spec" .= v1beta2ResourceClaimTemplateSpec+ ]+++-- | Construct a value of type 'V1beta2ResourceClaimTemplate' (by applying it's required fields, if any)+mkV1beta2ResourceClaimTemplate+ :: V1beta2ResourceClaimTemplateSpec -- ^ 'v1beta2ResourceClaimTemplateSpec' + -> V1beta2ResourceClaimTemplate+mkV1beta2ResourceClaimTemplate v1beta2ResourceClaimTemplateSpec =+ V1beta2ResourceClaimTemplate+ { v1beta2ResourceClaimTemplateApiVersion = Nothing+ , v1beta2ResourceClaimTemplateKind = Nothing+ , v1beta2ResourceClaimTemplateMetadata = Nothing+ , v1beta2ResourceClaimTemplateSpec+ }++-- ** V1beta2ResourceClaimTemplateList+-- | V1beta2ResourceClaimTemplateList+-- ResourceClaimTemplateList is a collection of claim templates.+data V1beta2ResourceClaimTemplateList = V1beta2ResourceClaimTemplateList+ { v1beta2ResourceClaimTemplateListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceClaimTemplateListItems :: !([V1beta2ResourceClaimTemplate]) -- ^ /Required/ "items" - Items is the list of resource claim templates.+ , v1beta2ResourceClaimTemplateListKind :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceClaimTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceClaimTemplateList+instance A.FromJSON V1beta2ResourceClaimTemplateList where+ parseJSON = A.withObject "V1beta2ResourceClaimTemplateList" $ \o ->+ V1beta2ResourceClaimTemplateList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta2ResourceClaimTemplateList+instance A.ToJSON V1beta2ResourceClaimTemplateList where+ toJSON V1beta2ResourceClaimTemplateList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta2ResourceClaimTemplateListApiVersion+ , "items" .= v1beta2ResourceClaimTemplateListItems+ , "kind" .= v1beta2ResourceClaimTemplateListKind+ , "metadata" .= v1beta2ResourceClaimTemplateListMetadata+ ]+++-- | Construct a value of type 'V1beta2ResourceClaimTemplateList' (by applying it's required fields, if any)+mkV1beta2ResourceClaimTemplateList+ :: [V1beta2ResourceClaimTemplate] -- ^ 'v1beta2ResourceClaimTemplateListItems': Items is the list of resource claim templates.+ -> V1beta2ResourceClaimTemplateList+mkV1beta2ResourceClaimTemplateList v1beta2ResourceClaimTemplateListItems =+ V1beta2ResourceClaimTemplateList+ { v1beta2ResourceClaimTemplateListApiVersion = Nothing+ , v1beta2ResourceClaimTemplateListItems+ , v1beta2ResourceClaimTemplateListKind = Nothing+ , v1beta2ResourceClaimTemplateListMetadata = Nothing+ }++-- ** V1beta2ResourceClaimTemplateSpec+-- | V1beta2ResourceClaimTemplateSpec+-- ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.+data V1beta2ResourceClaimTemplateSpec = V1beta2ResourceClaimTemplateSpec+ { v1beta2ResourceClaimTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta2ResourceClaimTemplateSpecSpec :: !(V1beta2ResourceClaimSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceClaimTemplateSpec+instance A.FromJSON V1beta2ResourceClaimTemplateSpec where+ parseJSON = A.withObject "V1beta2ResourceClaimTemplateSpec" $ \o ->+ V1beta2ResourceClaimTemplateSpec+ <$> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta2ResourceClaimTemplateSpec+instance A.ToJSON V1beta2ResourceClaimTemplateSpec where+ toJSON V1beta2ResourceClaimTemplateSpec {..} =+ _omitNulls+ [ "metadata" .= v1beta2ResourceClaimTemplateSpecMetadata+ , "spec" .= v1beta2ResourceClaimTemplateSpecSpec+ ]+++-- | Construct a value of type 'V1beta2ResourceClaimTemplateSpec' (by applying it's required fields, if any)+mkV1beta2ResourceClaimTemplateSpec+ :: V1beta2ResourceClaimSpec -- ^ 'v1beta2ResourceClaimTemplateSpecSpec' + -> V1beta2ResourceClaimTemplateSpec+mkV1beta2ResourceClaimTemplateSpec v1beta2ResourceClaimTemplateSpecSpec =+ V1beta2ResourceClaimTemplateSpec+ { v1beta2ResourceClaimTemplateSpecMetadata = Nothing+ , v1beta2ResourceClaimTemplateSpecSpec+ }++-- ** V1beta2ResourcePool+-- | V1beta2ResourcePool+-- ResourcePool describes the pool that ResourceSlices belong to.+data V1beta2ResourcePool = V1beta2ResourcePool+ { v1beta2ResourcePoolGeneration :: !(Integer) -- ^ /Required/ "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.+ , v1beta2ResourcePoolName :: !(Text) -- ^ /Required/ "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.+ , v1beta2ResourcePoolResourceSliceCount :: !(Integer) -- ^ /Required/ "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.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourcePool+instance A.FromJSON V1beta2ResourcePool where+ parseJSON = A.withObject "V1beta2ResourcePool" $ \o ->+ V1beta2ResourcePool+ <$> (o .: "generation")+ <*> (o .: "name")+ <*> (o .: "resourceSliceCount")++-- | ToJSON V1beta2ResourcePool+instance A.ToJSON V1beta2ResourcePool where+ toJSON V1beta2ResourcePool {..} =+ _omitNulls+ [ "generation" .= v1beta2ResourcePoolGeneration+ , "name" .= v1beta2ResourcePoolName+ , "resourceSliceCount" .= v1beta2ResourcePoolResourceSliceCount+ ]+++-- | Construct a value of type 'V1beta2ResourcePool' (by applying it's required fields, if any)+mkV1beta2ResourcePool+ :: Integer -- ^ 'v1beta2ResourcePoolGeneration': 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.+ -> Text -- ^ 'v1beta2ResourcePoolName': 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.+ -> Integer -- ^ 'v1beta2ResourcePoolResourceSliceCount': 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.+ -> V1beta2ResourcePool+mkV1beta2ResourcePool v1beta2ResourcePoolGeneration v1beta2ResourcePoolName v1beta2ResourcePoolResourceSliceCount =+ V1beta2ResourcePool+ { v1beta2ResourcePoolGeneration+ , v1beta2ResourcePoolName+ , v1beta2ResourcePoolResourceSliceCount+ }++-- ** V1beta2ResourceSlice+-- | V1beta2ResourceSlice+-- 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.+data V1beta2ResourceSlice = V1beta2ResourceSlice+ { v1beta2ResourceSliceApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceSliceKind :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"+ , v1beta2ResourceSliceSpec :: !(V1beta2ResourceSliceSpec) -- ^ /Required/ "spec"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceSlice+instance A.FromJSON V1beta2ResourceSlice where+ parseJSON = A.withObject "V1beta2ResourceSlice" $ \o ->+ V1beta2ResourceSlice+ <$> (o .:? "apiVersion")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")+ <*> (o .: "spec")++-- | ToJSON V1beta2ResourceSlice+instance A.ToJSON V1beta2ResourceSlice where+ toJSON V1beta2ResourceSlice {..} =+ _omitNulls+ [ "apiVersion" .= v1beta2ResourceSliceApiVersion+ , "kind" .= v1beta2ResourceSliceKind+ , "metadata" .= v1beta2ResourceSliceMetadata+ , "spec" .= v1beta2ResourceSliceSpec+ ]+++-- | Construct a value of type 'V1beta2ResourceSlice' (by applying it's required fields, if any)+mkV1beta2ResourceSlice+ :: V1beta2ResourceSliceSpec -- ^ 'v1beta2ResourceSliceSpec' + -> V1beta2ResourceSlice+mkV1beta2ResourceSlice v1beta2ResourceSliceSpec =+ V1beta2ResourceSlice+ { v1beta2ResourceSliceApiVersion = Nothing+ , v1beta2ResourceSliceKind = Nothing+ , v1beta2ResourceSliceMetadata = Nothing+ , v1beta2ResourceSliceSpec+ }++-- ** V1beta2ResourceSliceList+-- | V1beta2ResourceSliceList+-- ResourceSliceList is a collection of ResourceSlices.+data V1beta2ResourceSliceList = V1beta2ResourceSliceList+ { v1beta2ResourceSliceListApiVersion :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceSliceListItems :: !([V1beta2ResourceSlice]) -- ^ /Required/ "items" - Items is the list of resource ResourceSlices.+ , v1beta2ResourceSliceListKind :: !(Maybe Text) -- ^ "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+ , v1beta2ResourceSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceSliceList+instance A.FromJSON V1beta2ResourceSliceList where+ parseJSON = A.withObject "V1beta2ResourceSliceList" $ \o ->+ V1beta2ResourceSliceList+ <$> (o .:? "apiVersion")+ <*> (o .: "items")+ <*> (o .:? "kind")+ <*> (o .:? "metadata")++-- | ToJSON V1beta2ResourceSliceList+instance A.ToJSON V1beta2ResourceSliceList where+ toJSON V1beta2ResourceSliceList {..} =+ _omitNulls+ [ "apiVersion" .= v1beta2ResourceSliceListApiVersion+ , "items" .= v1beta2ResourceSliceListItems+ , "kind" .= v1beta2ResourceSliceListKind+ , "metadata" .= v1beta2ResourceSliceListMetadata+ ]+++-- | Construct a value of type 'V1beta2ResourceSliceList' (by applying it's required fields, if any)+mkV1beta2ResourceSliceList+ :: [V1beta2ResourceSlice] -- ^ 'v1beta2ResourceSliceListItems': Items is the list of resource ResourceSlices.+ -> V1beta2ResourceSliceList+mkV1beta2ResourceSliceList v1beta2ResourceSliceListItems =+ V1beta2ResourceSliceList+ { v1beta2ResourceSliceListApiVersion = Nothing+ , v1beta2ResourceSliceListItems+ , v1beta2ResourceSliceListKind = Nothing+ , v1beta2ResourceSliceListMetadata = Nothing+ }++-- ** V1beta2ResourceSliceSpec+-- | V1beta2ResourceSliceSpec+-- ResourceSliceSpec contains the information published by the driver in one ResourceSlice.+data V1beta2ResourceSliceSpec = V1beta2ResourceSliceSpec+ { v1beta2ResourceSliceSpecAllNodes :: !(Maybe Bool) -- ^ "allNodes" - AllNodes indicates that all nodes have access to the resources in the pool. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.+ , v1beta2ResourceSliceSpecDevices :: !(Maybe [V1beta2Device]) -- ^ "devices" - Devices lists some or all of the devices in this pool. Must not have more than 128 entries. If any device uses taints or consumes counters the limit is 64. Only one of Devices and SharedCounters can be set in a ResourceSlice.+ , v1beta2ResourceSliceSpecDriver :: !(Text) -- ^ /Required/ "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. It should use only lower case characters. This field is immutable.+ , v1beta2ResourceSliceSpecNodeName :: !(Maybe Text) -- ^ "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, AllNodes, and PerDeviceNodeSelection must be set. This field is immutable.+ , v1beta2ResourceSliceSpecNodeSelector :: !(Maybe V1NodeSelector) -- ^ "nodeSelector"+ , v1beta2ResourceSliceSpecPerDeviceNodeSelection :: !(Maybe Bool) -- ^ "perDeviceNodeSelection" - PerDeviceNodeSelection defines whether the access from nodes to resources in the pool is set on the ResourceSlice level or on each device. If it is set to true, every device defined the ResourceSlice must specify this individually. Exactly one of NodeName, NodeSelector, AllNodes, and PerDeviceNodeSelection must be set.+ , v1beta2ResourceSliceSpecPool :: !(V1beta2ResourcePool) -- ^ /Required/ "pool"+ , v1beta2ResourceSliceSpecSharedCounters :: !(Maybe [V1beta2CounterSet]) -- ^ "sharedCounters" - SharedCounters defines a list of counter sets, each of which has a name and a list of counters available. The names of the counter sets must be unique in the ResourcePool. Only one of Devices and SharedCounters can be set in a ResourceSlice. The maximum number of counter sets is 8.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V1beta2ResourceSliceSpec+instance A.FromJSON V1beta2ResourceSliceSpec where+ parseJSON = A.withObject "V1beta2ResourceSliceSpec" $ \o ->+ V1beta2ResourceSliceSpec+ <$> (o .:? "allNodes")+ <*> (o .:? "devices")+ <*> (o .: "driver")+ <*> (o .:? "nodeName")+ <*> (o .:? "nodeSelector")+ <*> (o .:? "perDeviceNodeSelection")+ <*> (o .: "pool")+ <*> (o .:? "sharedCounters")++-- | ToJSON V1beta2ResourceSliceSpec+instance A.ToJSON V1beta2ResourceSliceSpec where+ toJSON V1beta2ResourceSliceSpec {..} =+ _omitNulls+ [ "allNodes" .= v1beta2ResourceSliceSpecAllNodes+ , "devices" .= v1beta2ResourceSliceSpecDevices+ , "driver" .= v1beta2ResourceSliceSpecDriver+ , "nodeName" .= v1beta2ResourceSliceSpecNodeName+ , "nodeSelector" .= v1beta2ResourceSliceSpecNodeSelector+ , "perDeviceNodeSelection" .= v1beta2ResourceSliceSpecPerDeviceNodeSelection+ , "pool" .= v1beta2ResourceSliceSpecPool+ , "sharedCounters" .= v1beta2ResourceSliceSpecSharedCounters+ ]+++-- | Construct a value of type 'V1beta2ResourceSliceSpec' (by applying it's required fields, if any)+mkV1beta2ResourceSliceSpec+ :: Text -- ^ 'v1beta2ResourceSliceSpecDriver': 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. It should use only lower case characters. This field is immutable.+ -> V1beta2ResourcePool -- ^ 'v1beta2ResourceSliceSpecPool' + -> V1beta2ResourceSliceSpec+mkV1beta2ResourceSliceSpec v1beta2ResourceSliceSpecDriver v1beta2ResourceSliceSpecPool =+ V1beta2ResourceSliceSpec+ { v1beta2ResourceSliceSpecAllNodes = Nothing+ , v1beta2ResourceSliceSpecDevices = Nothing+ , v1beta2ResourceSliceSpecDriver+ , v1beta2ResourceSliceSpecNodeName = Nothing+ , v1beta2ResourceSliceSpecNodeSelector = Nothing+ , v1beta2ResourceSliceSpecPerDeviceNodeSelection = Nothing+ , v1beta2ResourceSliceSpecPool+ , v1beta2ResourceSliceSpecSharedCounters = Nothing+ }++-- ** V2ContainerResourceMetricSource+-- | V2ContainerResourceMetricSource+-- ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. 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. Only one \"target\" type should be set.+data V2ContainerResourceMetricSource = V2ContainerResourceMetricSource+ { v2ContainerResourceMetricSourceContainer :: !(Text) -- ^ /Required/ "container" - container is the name of the container in the pods of the scaling target+ , v2ContainerResourceMetricSourceName :: !(Text) -- ^ /Required/ "name" - name is the name of the resource in question.+ , v2ContainerResourceMetricSourceTarget :: !(V2MetricTarget) -- ^ /Required/ "target"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V2ContainerResourceMetricSource+instance A.FromJSON V2ContainerResourceMetricSource where+ parseJSON = A.withObject "V2ContainerResourceMetricSource" $ \o ->+ V2ContainerResourceMetricSource+ <$> (o .: "container")+ <*> (o .: "name")+ <*> (o .: "target")++-- | ToJSON V2ContainerResourceMetricSource+instance A.ToJSON V2ContainerResourceMetricSource where+ toJSON V2ContainerResourceMetricSource {..} =+ _omitNulls+ [ "container" .= v2ContainerResourceMetricSourceContainer+ , "name" .= v2ContainerResourceMetricSourceName+ , "target" .= v2ContainerResourceMetricSourceTarget+ ]+++-- | Construct a value of type 'V2ContainerResourceMetricSource' (by applying it's required fields, if any)+mkV2ContainerResourceMetricSource+ :: Text -- ^ 'v2ContainerResourceMetricSourceContainer': container is the name of the container in the pods of the scaling target+ -> Text -- ^ 'v2ContainerResourceMetricSourceName': name is the name of the resource in question.+ -> V2MetricTarget -- ^ 'v2ContainerResourceMetricSourceTarget' + -> V2ContainerResourceMetricSource+mkV2ContainerResourceMetricSource v2ContainerResourceMetricSourceContainer v2ContainerResourceMetricSourceName v2ContainerResourceMetricSourceTarget =+ V2ContainerResourceMetricSource+ { v2ContainerResourceMetricSourceContainer+ , v2ContainerResourceMetricSourceName+ , v2ContainerResourceMetricSourceTarget+ }++-- ** V2ContainerResourceMetricStatus+-- | V2ContainerResourceMetricStatus+-- ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, 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.+data V2ContainerResourceMetricStatus = V2ContainerResourceMetricStatus+ { v2ContainerResourceMetricStatusContainer :: !(Text) -- ^ /Required/ "container" - container is the name of the container in the pods of the scaling target+ , v2ContainerResourceMetricStatusCurrent :: !(V2MetricValueStatus) -- ^ /Required/ "current"+ , v2ContainerResourceMetricStatusName :: !(Text) -- ^ /Required/ "name" - name is the name of the resource in question.+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V2ContainerResourceMetricStatus+instance A.FromJSON V2ContainerResourceMetricStatus where+ parseJSON = A.withObject "V2ContainerResourceMetricStatus" $ \o ->+ V2ContainerResourceMetricStatus+ <$> (o .: "container")+ <*> (o .: "current")+ <*> (o .: "name")++-- | ToJSON V2ContainerResourceMetricStatus+instance A.ToJSON V2ContainerResourceMetricStatus where+ toJSON V2ContainerResourceMetricStatus {..} =+ _omitNulls+ [ "container" .= v2ContainerResourceMetricStatusContainer+ , "current" .= v2ContainerResourceMetricStatusCurrent+ , "name" .= v2ContainerResourceMetricStatusName+ ]+++-- | Construct a value of type 'V2ContainerResourceMetricStatus' (by applying it's required fields, if any)+mkV2ContainerResourceMetricStatus+ :: Text -- ^ 'v2ContainerResourceMetricStatusContainer': container is the name of the container in the pods of the scaling target+ -> V2MetricValueStatus -- ^ 'v2ContainerResourceMetricStatusCurrent' + -> Text -- ^ 'v2ContainerResourceMetricStatusName': name is the name of the resource in question.+ -> V2ContainerResourceMetricStatus+mkV2ContainerResourceMetricStatus v2ContainerResourceMetricStatusContainer v2ContainerResourceMetricStatusCurrent v2ContainerResourceMetricStatusName =+ V2ContainerResourceMetricStatus+ { v2ContainerResourceMetricStatusContainer+ , v2ContainerResourceMetricStatusCurrent+ , v2ContainerResourceMetricStatusName+ }++-- ** V2CrossVersionObjectReference+-- | V2CrossVersionObjectReference+-- CrossVersionObjectReference contains enough information to let you identify the referred resource.+data V2CrossVersionObjectReference = V2CrossVersionObjectReference+ { v2CrossVersionObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - apiVersion is the API version of the referent+ , v2CrossVersionObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds+ , v2CrossVersionObjectReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V2CrossVersionObjectReference+instance A.FromJSON V2CrossVersionObjectReference where+ parseJSON = A.withObject "V2CrossVersionObjectReference" $ \o ->+ V2CrossVersionObjectReference+ <$> (o .:? "apiVersion")+ <*> (o .: "kind")+ <*> (o .: "name")++-- | ToJSON V2CrossVersionObjectReference+instance A.ToJSON V2CrossVersionObjectReference where+ toJSON V2CrossVersionObjectReference {..} =+ _omitNulls+ [ "apiVersion" .= v2CrossVersionObjectReferenceApiVersion+ , "kind" .= v2CrossVersionObjectReferenceKind+ , "name" .= v2CrossVersionObjectReferenceName+ ]+++-- | Construct a value of type 'V2CrossVersionObjectReference' (by applying it's required fields, if any)+mkV2CrossVersionObjectReference+ :: Text -- ^ 'v2CrossVersionObjectReferenceKind': kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds+ -> Text -- ^ 'v2CrossVersionObjectReferenceName': name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names+ -> V2CrossVersionObjectReference+mkV2CrossVersionObjectReference v2CrossVersionObjectReferenceKind v2CrossVersionObjectReferenceName =+ V2CrossVersionObjectReference+ { v2CrossVersionObjectReferenceApiVersion = Nothing+ , v2CrossVersionObjectReferenceKind+ , v2CrossVersionObjectReferenceName+ }++-- ** V2ExternalMetricSource+-- | V2ExternalMetricSource+-- ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).+data V2ExternalMetricSource = V2ExternalMetricSource+ { v2ExternalMetricSourceMetric :: !(V2MetricIdentifier) -- ^ /Required/ "metric"+ , v2ExternalMetricSourceTarget :: !(V2MetricTarget) -- ^ /Required/ "target"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V2ExternalMetricSource+instance A.FromJSON V2ExternalMetricSource where+ parseJSON = A.withObject "V2ExternalMetricSource" $ \o ->+ V2ExternalMetricSource+ <$> (o .: "metric")+ <*> (o .: "target")++-- | ToJSON V2ExternalMetricSource+instance A.ToJSON V2ExternalMetricSource where+ toJSON V2ExternalMetricSource {..} =+ _omitNulls+ [ "metric" .= v2ExternalMetricSourceMetric+ , "target" .= v2ExternalMetricSourceTarget+ ]+++-- | Construct a value of type 'V2ExternalMetricSource' (by applying it's required fields, if any)+mkV2ExternalMetricSource+ :: V2MetricIdentifier -- ^ 'v2ExternalMetricSourceMetric' + -> V2MetricTarget -- ^ 'v2ExternalMetricSourceTarget' + -> V2ExternalMetricSource+mkV2ExternalMetricSource v2ExternalMetricSourceMetric v2ExternalMetricSourceTarget =+ V2ExternalMetricSource+ { v2ExternalMetricSourceMetric+ , v2ExternalMetricSourceTarget+ }++-- ** V2ExternalMetricStatus+-- | V2ExternalMetricStatus+-- ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.+data V2ExternalMetricStatus = V2ExternalMetricStatus+ { v2ExternalMetricStatusCurrent :: !(V2MetricValueStatus) -- ^ /Required/ "current"+ , v2ExternalMetricStatusMetric :: !(V2MetricIdentifier) -- ^ /Required/ "metric"+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V2ExternalMetricStatus+instance A.FromJSON V2ExternalMetricStatus where+ parseJSON = A.withObject "V2ExternalMetricStatus" $ \o ->+ V2ExternalMetricStatus+ <$> (o .: "current")+ <*> (o .: "metric")++-- | ToJSON V2ExternalMetricStatus+instance A.ToJSON V2ExternalMetricStatus where+ toJSON V2ExternalMetricStatus {..} =+ _omitNulls+ [ "current" .= v2ExternalMetricStatusCurrent+ , "metric" .= v2ExternalMetricStatusMetric+ ]+++-- | Construct a value of type 'V2ExternalMetricStatus' (by applying it's required fields, if any)+mkV2ExternalMetricStatus+ :: V2MetricValueStatus -- ^ 'v2ExternalMetricStatusCurrent' + -> V2MetricIdentifier -- ^ 'v2ExternalMetricStatusMetric' + -> V2ExternalMetricStatus+mkV2ExternalMetricStatus v2ExternalMetricStatusCurrent v2ExternalMetricStatusMetric =+ V2ExternalMetricStatus+ { v2ExternalMetricStatusCurrent+ , v2ExternalMetricStatusMetric+ }++-- ** V2HPAScalingPolicy+-- | V2HPAScalingPolicy+-- HPAScalingPolicy is a single policy which must hold true for a specified past interval.+data V2HPAScalingPolicy = V2HPAScalingPolicy+ { v2HPAScalingPolicyPeriodSeconds :: !(Int) -- ^ /Required/ "periodSeconds" - periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).+ , v2HPAScalingPolicyType :: !(Text) -- ^ /Required/ "type" - type is used to specify the scaling policy.+ , v2HPAScalingPolicyValue :: !(Int) -- ^ /Required/ "value" - value contains the amount of change which is permitted by the policy. It must be greater than zero+ } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON V2HPAScalingPolicy+instance A.FromJSON V2HPAScalingPolicy where+ parseJSON = A.withObject "V2HPAScalingPolicy" $ \o ->+ V2HPAScalingPolicy+ <$> (o .: "periodSeconds")+ <*> (o .: "type")+ <*> (o .: "value")++-- | ToJSON V2HPAScalingPolicy+instance A.ToJSON V2HPAScalingPolicy where+ toJSON V2HPAScalingPolicy {..} =+ _omitNulls+ [ "periodSeconds" .= v2HPAScalingPolicyPeriodSeconds+ , "type" .= v2HPAScalingPolicyType+ , "value" .= v2HPAScalingPolicyValue+ ]+++-- | Construct a value of type 'V2HPAScalingPolicy' (by applying it's required fields, if any)+mkV2HPAScalingPolicy+ :: Int -- ^ 'v2HPAScalingPolicyPeriodSeconds': periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).+ -> Text -- ^ 'v2HPAScalingPolicyType': type is used to specify the scaling policy.+ -> Int -- ^ 'v2HPAScalingPolicyValue': value contains the amount of change which is permitted by the policy. It must be greater than zero+ -> V2HPAScalingPolicy+mkV2HPAScalingPolicy v2HPAScalingPolicyPeriodSeconds v2HPAScalingPolicyType v2HPAScalingPolicyValue =+ V2HPAScalingPolicy+ { v2HPAScalingPolicyPeriodSeconds+ , v2HPAScalingPolicyType+ , v2HPAScalingPolicyValue+ }++-- ** V2HPAScalingRules+-- | V2HPAScalingRules+-- HPAScalingRules configures the scaling behavior for one direction via scaling Policy Rules and a configurable metric tolerance. Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires the beta HPAConfigurableTolerance feature gate to be enabled.) data V2HPAScalingRules = V2HPAScalingRules { v2HPAScalingRulesPolicies :: !(Maybe [V2HPAScalingPolicy]) -- ^ "policies" - policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window. , v2HPAScalingRulesSelectPolicy :: !(Maybe Text) -- ^ "selectPolicy" - selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.
lib/Kubernetes/OpenAPI/ModelLens.hs view
@@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) OpenAPI Version: 3.0.1- Kubernetes API version: release-1.34+ Kubernetes API version: release-1.35 Generated by OpenAPI Generator (https://openapi-generator.tech) -} @@ -1228,6 +1228,11 @@ v1CSIDriverSpecSeLinuxMountL f V1CSIDriverSpec{..} = (\v1CSIDriverSpecSeLinuxMount -> V1CSIDriverSpec { v1CSIDriverSpecSeLinuxMount, ..} ) <$> f v1CSIDriverSpecSeLinuxMount {-# INLINE v1CSIDriverSpecSeLinuxMountL #-} +-- | 'v1CSIDriverSpecServiceAccountTokenInSecrets' Lens+v1CSIDriverSpecServiceAccountTokenInSecretsL :: Lens_' V1CSIDriverSpec (Maybe Bool)+v1CSIDriverSpecServiceAccountTokenInSecretsL f V1CSIDriverSpec{..} = (\v1CSIDriverSpecServiceAccountTokenInSecrets -> V1CSIDriverSpec { v1CSIDriverSpecServiceAccountTokenInSecrets, ..} ) <$> f v1CSIDriverSpecServiceAccountTokenInSecrets+{-# INLINE v1CSIDriverSpecServiceAccountTokenInSecretsL #-}+ -- | 'v1CSIDriverSpecStorageCapacity' Lens v1CSIDriverSpecStorageCapacityL :: Lens_' V1CSIDriverSpec (Maybe Bool) v1CSIDriverSpecStorageCapacityL f V1CSIDriverSpec{..} = (\v1CSIDriverSpecStorageCapacity -> V1CSIDriverSpec { v1CSIDriverSpecStorageCapacity, ..} ) <$> f v1CSIDriverSpecStorageCapacity@@ -2909,6 +2914,11 @@ v1CustomResourceDefinitionConditionMessageL f V1CustomResourceDefinitionCondition{..} = (\v1CustomResourceDefinitionConditionMessage -> V1CustomResourceDefinitionCondition { v1CustomResourceDefinitionConditionMessage, ..} ) <$> f v1CustomResourceDefinitionConditionMessage {-# INLINE v1CustomResourceDefinitionConditionMessageL #-} +-- | 'v1CustomResourceDefinitionConditionObservedGeneration' Lens+v1CustomResourceDefinitionConditionObservedGenerationL :: Lens_' V1CustomResourceDefinitionCondition (Maybe Integer)+v1CustomResourceDefinitionConditionObservedGenerationL f V1CustomResourceDefinitionCondition{..} = (\v1CustomResourceDefinitionConditionObservedGeneration -> V1CustomResourceDefinitionCondition { v1CustomResourceDefinitionConditionObservedGeneration, ..} ) <$> f v1CustomResourceDefinitionConditionObservedGeneration+{-# INLINE v1CustomResourceDefinitionConditionObservedGenerationL #-}+ -- | 'v1CustomResourceDefinitionConditionReason' Lens v1CustomResourceDefinitionConditionReasonL :: Lens_' V1CustomResourceDefinitionCondition (Maybe Text) v1CustomResourceDefinitionConditionReasonL f V1CustomResourceDefinitionCondition{..} = (\v1CustomResourceDefinitionConditionReason -> V1CustomResourceDefinitionCondition { v1CustomResourceDefinitionConditionReason, ..} ) <$> f v1CustomResourceDefinitionConditionReason@@ -3030,6 +3040,11 @@ v1CustomResourceDefinitionStatusConditionsL f V1CustomResourceDefinitionStatus{..} = (\v1CustomResourceDefinitionStatusConditions -> V1CustomResourceDefinitionStatus { v1CustomResourceDefinitionStatusConditions, ..} ) <$> f v1CustomResourceDefinitionStatusConditions {-# INLINE v1CustomResourceDefinitionStatusConditionsL #-} +-- | 'v1CustomResourceDefinitionStatusObservedGeneration' Lens+v1CustomResourceDefinitionStatusObservedGenerationL :: Lens_' V1CustomResourceDefinitionStatus (Maybe Integer)+v1CustomResourceDefinitionStatusObservedGenerationL f V1CustomResourceDefinitionStatus{..} = (\v1CustomResourceDefinitionStatusObservedGeneration -> V1CustomResourceDefinitionStatus { v1CustomResourceDefinitionStatusObservedGeneration, ..} ) <$> f v1CustomResourceDefinitionStatusObservedGeneration+{-# INLINE v1CustomResourceDefinitionStatusObservedGenerationL #-}+ -- | 'v1CustomResourceDefinitionStatusStoredVersions' Lens v1CustomResourceDefinitionStatusStoredVersionsL :: Lens_' V1CustomResourceDefinitionStatus (Maybe [Text]) v1CustomResourceDefinitionStatusStoredVersionsL f V1CustomResourceDefinitionStatus{..} = (\v1CustomResourceDefinitionStatusStoredVersions -> V1CustomResourceDefinitionStatus { v1CustomResourceDefinitionStatusStoredVersions, ..} ) <$> f v1CustomResourceDefinitionStatusStoredVersions@@ -5030,6 +5045,20 @@ +-- * V1GroupResource++-- | 'v1GroupResourceGroup' Lens+v1GroupResourceGroupL :: Lens_' V1GroupResource (Text)+v1GroupResourceGroupL f V1GroupResource{..} = (\v1GroupResourceGroup -> V1GroupResource { v1GroupResourceGroup, ..} ) <$> f v1GroupResourceGroup+{-# INLINE v1GroupResourceGroupL #-}++-- | 'v1GroupResourceResource' Lens+v1GroupResourceResourceL :: Lens_' V1GroupResource (Text)+v1GroupResourceResourceL f V1GroupResource{..} = (\v1GroupResourceResource -> V1GroupResource { v1GroupResourceResource, ..} ) <$> f v1GroupResourceResource+{-# INLINE v1GroupResourceResourceL #-}+++ -- * V1GroupSubject -- | 'v1GroupSubjectName' Lens@@ -7501,6 +7530,11 @@ v1NodeStatusDaemonEndpointsL f V1NodeStatus{..} = (\v1NodeStatusDaemonEndpoints -> V1NodeStatus { v1NodeStatusDaemonEndpoints, ..} ) <$> f v1NodeStatusDaemonEndpoints {-# INLINE v1NodeStatusDaemonEndpointsL #-} +-- | 'v1NodeStatusDeclaredFeatures' Lens+v1NodeStatusDeclaredFeaturesL :: Lens_' V1NodeStatus (Maybe [Text])+v1NodeStatusDeclaredFeaturesL f V1NodeStatus{..} = (\v1NodeStatusDeclaredFeatures -> V1NodeStatus { v1NodeStatusDeclaredFeatures, ..} ) <$> f v1NodeStatusDeclaredFeatures+{-# INLINE v1NodeStatusDeclaredFeaturesL #-}+ -- | 'v1NodeStatusFeatures' Lens v1NodeStatusFeaturesL :: Lens_' V1NodeStatus (Maybe V1NodeFeatures) v1NodeStatusFeaturesL f V1NodeStatus{..} = (\v1NodeStatusFeatures -> V1NodeStatus { v1NodeStatusFeatures, ..} ) <$> f v1NodeStatusFeatures@@ -8480,8 +8514,13 @@ v1PodCertificateProjectionSignerNameL f V1PodCertificateProjection{..} = (\v1PodCertificateProjectionSignerName -> V1PodCertificateProjection { v1PodCertificateProjectionSignerName, ..} ) <$> f v1PodCertificateProjectionSignerName {-# INLINE v1PodCertificateProjectionSignerNameL #-} +-- | 'v1PodCertificateProjectionUserAnnotations' Lens+v1PodCertificateProjectionUserAnnotationsL :: Lens_' V1PodCertificateProjection (Maybe (Map.Map String Text))+v1PodCertificateProjectionUserAnnotationsL f V1PodCertificateProjection{..} = (\v1PodCertificateProjectionUserAnnotations -> V1PodCertificateProjection { v1PodCertificateProjectionUserAnnotations, ..} ) <$> f v1PodCertificateProjectionUserAnnotations+{-# INLINE v1PodCertificateProjectionUserAnnotationsL #-} + -- * V1PodCondition -- | 'v1PodConditionLastProbeTime' Lens@@ -8715,7 +8754,7 @@ -- * V1PodFailurePolicyOnPodConditionsPattern -- | 'v1PodFailurePolicyOnPodConditionsPatternStatus' Lens-v1PodFailurePolicyOnPodConditionsPatternStatusL :: Lens_' V1PodFailurePolicyOnPodConditionsPattern (Text)+v1PodFailurePolicyOnPodConditionsPatternStatusL :: Lens_' V1PodFailurePolicyOnPodConditionsPattern (Maybe Text) v1PodFailurePolicyOnPodConditionsPatternStatusL f V1PodFailurePolicyOnPodConditionsPattern{..} = (\v1PodFailurePolicyOnPodConditionsPatternStatus -> V1PodFailurePolicyOnPodConditionsPattern { v1PodFailurePolicyOnPodConditionsPatternStatus, ..} ) <$> f v1PodFailurePolicyOnPodConditionsPatternStatus {-# INLINE v1PodFailurePolicyOnPodConditionsPatternStatusL #-} @@ -9114,10 +9153,20 @@ v1PodSpecVolumesL f V1PodSpec{..} = (\v1PodSpecVolumes -> V1PodSpec { v1PodSpecVolumes, ..} ) <$> f v1PodSpecVolumes {-# INLINE v1PodSpecVolumesL #-} +-- | 'v1PodSpecWorkloadRef' Lens+v1PodSpecWorkloadRefL :: Lens_' V1PodSpec (Maybe V1WorkloadReference)+v1PodSpecWorkloadRefL f V1PodSpec{..} = (\v1PodSpecWorkloadRef -> V1PodSpec { v1PodSpecWorkloadRef, ..} ) <$> f v1PodSpecWorkloadRef+{-# INLINE v1PodSpecWorkloadRefL #-} + -- * V1PodStatus +-- | 'v1PodStatusAllocatedResources' Lens+v1PodStatusAllocatedResourcesL :: Lens_' V1PodStatus (Maybe (Map.Map String Quantity))+v1PodStatusAllocatedResourcesL f V1PodStatus{..} = (\v1PodStatusAllocatedResources -> V1PodStatus { v1PodStatusAllocatedResources, ..} ) <$> f v1PodStatusAllocatedResources+{-# INLINE v1PodStatusAllocatedResourcesL #-}+ -- | 'v1PodStatusConditions' Lens v1PodStatusConditionsL :: Lens_' V1PodStatus (Maybe [V1PodCondition]) v1PodStatusConditionsL f V1PodStatus{..} = (\v1PodStatusConditions -> V1PodStatus { v1PodStatusConditions, ..} ) <$> f v1PodStatusConditions@@ -9203,6 +9252,11 @@ v1PodStatusResourceClaimStatusesL f V1PodStatus{..} = (\v1PodStatusResourceClaimStatuses -> V1PodStatus { v1PodStatusResourceClaimStatuses, ..} ) <$> f v1PodStatusResourceClaimStatuses {-# INLINE v1PodStatusResourceClaimStatusesL #-} +-- | 'v1PodStatusResources' Lens+v1PodStatusResourcesL :: Lens_' V1PodStatus (Maybe V1ResourceRequirements)+v1PodStatusResourcesL f V1PodStatus{..} = (\v1PodStatusResources -> V1PodStatus { v1PodStatusResources, ..} ) <$> f v1PodStatusResources+{-# INLINE v1PodStatusResourcesL #-}+ -- | 'v1PodStatusStartTime' Lens v1PodStatusStartTimeL :: Lens_' V1PodStatus (Maybe DateTime) v1PodStatusStartTimeL f V1PodStatus{..} = (\v1PodStatusStartTime -> V1PodStatus { v1PodStatusStartTime, ..} ) <$> f v1PodStatusStartTime@@ -13689,6 +13743,25 @@ +-- * V1WorkloadReference++-- | 'v1WorkloadReferenceName' Lens+v1WorkloadReferenceNameL :: Lens_' V1WorkloadReference (Text)+v1WorkloadReferenceNameL f V1WorkloadReference{..} = (\v1WorkloadReferenceName -> V1WorkloadReference { v1WorkloadReferenceName, ..} ) <$> f v1WorkloadReferenceName+{-# INLINE v1WorkloadReferenceNameL #-}++-- | 'v1WorkloadReferencePodGroup' Lens+v1WorkloadReferencePodGroupL :: Lens_' V1WorkloadReference (Text)+v1WorkloadReferencePodGroupL f V1WorkloadReference{..} = (\v1WorkloadReferencePodGroup -> V1WorkloadReference { v1WorkloadReferencePodGroup, ..} ) <$> f v1WorkloadReferencePodGroup+{-# INLINE v1WorkloadReferencePodGroupL #-}++-- | 'v1WorkloadReferencePodGroupReplicaKey' Lens+v1WorkloadReferencePodGroupReplicaKeyL :: Lens_' V1WorkloadReference (Maybe Text)+v1WorkloadReferencePodGroupReplicaKeyL f V1WorkloadReference{..} = (\v1WorkloadReferencePodGroupReplicaKey -> V1WorkloadReference { v1WorkloadReferencePodGroupReplicaKey, ..} ) <$> f v1WorkloadReferencePodGroupReplicaKey+{-# INLINE v1WorkloadReferencePodGroupReplicaKeyL #-}+++ -- * V1alpha1ApplyConfiguration -- | 'v1alpha1ApplyConfigurationExpression' Lens@@ -13760,22 +13833,12 @@ --- * V1alpha1GroupVersionResource---- | 'v1alpha1GroupVersionResourceGroup' Lens-v1alpha1GroupVersionResourceGroupL :: Lens_' V1alpha1GroupVersionResource (Maybe Text)-v1alpha1GroupVersionResourceGroupL f V1alpha1GroupVersionResource{..} = (\v1alpha1GroupVersionResourceGroup -> V1alpha1GroupVersionResource { v1alpha1GroupVersionResourceGroup, ..} ) <$> f v1alpha1GroupVersionResourceGroup-{-# INLINE v1alpha1GroupVersionResourceGroupL #-}---- | 'v1alpha1GroupVersionResourceResource' Lens-v1alpha1GroupVersionResourceResourceL :: Lens_' V1alpha1GroupVersionResource (Maybe Text)-v1alpha1GroupVersionResourceResourceL f V1alpha1GroupVersionResource{..} = (\v1alpha1GroupVersionResourceResource -> V1alpha1GroupVersionResource { v1alpha1GroupVersionResourceResource, ..} ) <$> f v1alpha1GroupVersionResourceResource-{-# INLINE v1alpha1GroupVersionResourceResourceL #-}+-- * V1alpha1GangSchedulingPolicy --- | 'v1alpha1GroupVersionResourceVersion' Lens-v1alpha1GroupVersionResourceVersionL :: Lens_' V1alpha1GroupVersionResource (Maybe Text)-v1alpha1GroupVersionResourceVersionL f V1alpha1GroupVersionResource{..} = (\v1alpha1GroupVersionResourceVersion -> V1alpha1GroupVersionResource { v1alpha1GroupVersionResourceVersion, ..} ) <$> f v1alpha1GroupVersionResourceVersion-{-# INLINE v1alpha1GroupVersionResourceVersionL #-}+-- | 'v1alpha1GangSchedulingPolicyMinCount' Lens+v1alpha1GangSchedulingPolicyMinCountL :: Lens_' V1alpha1GangSchedulingPolicy (Int)+v1alpha1GangSchedulingPolicyMinCountL f V1alpha1GangSchedulingPolicy{..} = (\v1alpha1GangSchedulingPolicyMinCount -> V1alpha1GangSchedulingPolicy { v1alpha1GangSchedulingPolicyMinCount, ..} ) <$> f v1alpha1GangSchedulingPolicyMinCount+{-# INLINE v1alpha1GangSchedulingPolicyMinCountL #-} @@ -13831,35 +13894,6 @@ --- * V1alpha1MigrationCondition---- | 'v1alpha1MigrationConditionLastUpdateTime' Lens-v1alpha1MigrationConditionLastUpdateTimeL :: Lens_' V1alpha1MigrationCondition (Maybe DateTime)-v1alpha1MigrationConditionLastUpdateTimeL f V1alpha1MigrationCondition{..} = (\v1alpha1MigrationConditionLastUpdateTime -> V1alpha1MigrationCondition { v1alpha1MigrationConditionLastUpdateTime, ..} ) <$> f v1alpha1MigrationConditionLastUpdateTime-{-# INLINE v1alpha1MigrationConditionLastUpdateTimeL #-}---- | 'v1alpha1MigrationConditionMessage' Lens-v1alpha1MigrationConditionMessageL :: Lens_' V1alpha1MigrationCondition (Maybe Text)-v1alpha1MigrationConditionMessageL f V1alpha1MigrationCondition{..} = (\v1alpha1MigrationConditionMessage -> V1alpha1MigrationCondition { v1alpha1MigrationConditionMessage, ..} ) <$> f v1alpha1MigrationConditionMessage-{-# INLINE v1alpha1MigrationConditionMessageL #-}---- | 'v1alpha1MigrationConditionReason' Lens-v1alpha1MigrationConditionReasonL :: Lens_' V1alpha1MigrationCondition (Maybe Text)-v1alpha1MigrationConditionReasonL f V1alpha1MigrationCondition{..} = (\v1alpha1MigrationConditionReason -> V1alpha1MigrationCondition { v1alpha1MigrationConditionReason, ..} ) <$> f v1alpha1MigrationConditionReason-{-# INLINE v1alpha1MigrationConditionReasonL #-}---- | 'v1alpha1MigrationConditionStatus' Lens-v1alpha1MigrationConditionStatusL :: Lens_' V1alpha1MigrationCondition (Text)-v1alpha1MigrationConditionStatusL f V1alpha1MigrationCondition{..} = (\v1alpha1MigrationConditionStatus -> V1alpha1MigrationCondition { v1alpha1MigrationConditionStatus, ..} ) <$> f v1alpha1MigrationConditionStatus-{-# INLINE v1alpha1MigrationConditionStatusL #-}---- | 'v1alpha1MigrationConditionType' Lens-v1alpha1MigrationConditionTypeL :: Lens_' V1alpha1MigrationCondition (Text)-v1alpha1MigrationConditionTypeL f V1alpha1MigrationCondition{..} = (\v1alpha1MigrationConditionType -> V1alpha1MigrationCondition { v1alpha1MigrationConditionType, ..} ) <$> f v1alpha1MigrationConditionType-{-# INLINE v1alpha1MigrationConditionTypeL #-}--- -- * V1alpha1MutatingAdmissionPolicy -- | 'v1alpha1MutatingAdmissionPolicyApiVersion' Lens@@ -14105,139 +14139,31 @@ --- * V1alpha1PodCertificateRequest---- | 'v1alpha1PodCertificateRequestApiVersion' Lens-v1alpha1PodCertificateRequestApiVersionL :: Lens_' V1alpha1PodCertificateRequest (Maybe Text)-v1alpha1PodCertificateRequestApiVersionL f V1alpha1PodCertificateRequest{..} = (\v1alpha1PodCertificateRequestApiVersion -> V1alpha1PodCertificateRequest { v1alpha1PodCertificateRequestApiVersion, ..} ) <$> f v1alpha1PodCertificateRequestApiVersion-{-# INLINE v1alpha1PodCertificateRequestApiVersionL #-}---- | 'v1alpha1PodCertificateRequestKind' Lens-v1alpha1PodCertificateRequestKindL :: Lens_' V1alpha1PodCertificateRequest (Maybe Text)-v1alpha1PodCertificateRequestKindL f V1alpha1PodCertificateRequest{..} = (\v1alpha1PodCertificateRequestKind -> V1alpha1PodCertificateRequest { v1alpha1PodCertificateRequestKind, ..} ) <$> f v1alpha1PodCertificateRequestKind-{-# INLINE v1alpha1PodCertificateRequestKindL #-}---- | 'v1alpha1PodCertificateRequestMetadata' Lens-v1alpha1PodCertificateRequestMetadataL :: Lens_' V1alpha1PodCertificateRequest (Maybe V1ObjectMeta)-v1alpha1PodCertificateRequestMetadataL f V1alpha1PodCertificateRequest{..} = (\v1alpha1PodCertificateRequestMetadata -> V1alpha1PodCertificateRequest { v1alpha1PodCertificateRequestMetadata, ..} ) <$> f v1alpha1PodCertificateRequestMetadata-{-# INLINE v1alpha1PodCertificateRequestMetadataL #-}---- | 'v1alpha1PodCertificateRequestSpec' Lens-v1alpha1PodCertificateRequestSpecL :: Lens_' V1alpha1PodCertificateRequest (V1alpha1PodCertificateRequestSpec)-v1alpha1PodCertificateRequestSpecL f V1alpha1PodCertificateRequest{..} = (\v1alpha1PodCertificateRequestSpec -> V1alpha1PodCertificateRequest { v1alpha1PodCertificateRequestSpec, ..} ) <$> f v1alpha1PodCertificateRequestSpec-{-# INLINE v1alpha1PodCertificateRequestSpecL #-}---- | 'v1alpha1PodCertificateRequestStatus' Lens-v1alpha1PodCertificateRequestStatusL :: Lens_' V1alpha1PodCertificateRequest (Maybe V1alpha1PodCertificateRequestStatus)-v1alpha1PodCertificateRequestStatusL f V1alpha1PodCertificateRequest{..} = (\v1alpha1PodCertificateRequestStatus -> V1alpha1PodCertificateRequest { v1alpha1PodCertificateRequestStatus, ..} ) <$> f v1alpha1PodCertificateRequestStatus-{-# INLINE v1alpha1PodCertificateRequestStatusL #-}------ * V1alpha1PodCertificateRequestList---- | 'v1alpha1PodCertificateRequestListApiVersion' Lens-v1alpha1PodCertificateRequestListApiVersionL :: Lens_' V1alpha1PodCertificateRequestList (Maybe Text)-v1alpha1PodCertificateRequestListApiVersionL f V1alpha1PodCertificateRequestList{..} = (\v1alpha1PodCertificateRequestListApiVersion -> V1alpha1PodCertificateRequestList { v1alpha1PodCertificateRequestListApiVersion, ..} ) <$> f v1alpha1PodCertificateRequestListApiVersion-{-# INLINE v1alpha1PodCertificateRequestListApiVersionL #-}---- | 'v1alpha1PodCertificateRequestListItems' Lens-v1alpha1PodCertificateRequestListItemsL :: Lens_' V1alpha1PodCertificateRequestList ([V1alpha1PodCertificateRequest])-v1alpha1PodCertificateRequestListItemsL f V1alpha1PodCertificateRequestList{..} = (\v1alpha1PodCertificateRequestListItems -> V1alpha1PodCertificateRequestList { v1alpha1PodCertificateRequestListItems, ..} ) <$> f v1alpha1PodCertificateRequestListItems-{-# INLINE v1alpha1PodCertificateRequestListItemsL #-}---- | 'v1alpha1PodCertificateRequestListKind' Lens-v1alpha1PodCertificateRequestListKindL :: Lens_' V1alpha1PodCertificateRequestList (Maybe Text)-v1alpha1PodCertificateRequestListKindL f V1alpha1PodCertificateRequestList{..} = (\v1alpha1PodCertificateRequestListKind -> V1alpha1PodCertificateRequestList { v1alpha1PodCertificateRequestListKind, ..} ) <$> f v1alpha1PodCertificateRequestListKind-{-# INLINE v1alpha1PodCertificateRequestListKindL #-}---- | 'v1alpha1PodCertificateRequestListMetadata' Lens-v1alpha1PodCertificateRequestListMetadataL :: Lens_' V1alpha1PodCertificateRequestList (Maybe V1ListMeta)-v1alpha1PodCertificateRequestListMetadataL f V1alpha1PodCertificateRequestList{..} = (\v1alpha1PodCertificateRequestListMetadata -> V1alpha1PodCertificateRequestList { v1alpha1PodCertificateRequestListMetadata, ..} ) <$> f v1alpha1PodCertificateRequestListMetadata-{-# INLINE v1alpha1PodCertificateRequestListMetadataL #-}------ * V1alpha1PodCertificateRequestSpec---- | 'v1alpha1PodCertificateRequestSpecMaxExpirationSeconds' Lens-v1alpha1PodCertificateRequestSpecMaxExpirationSecondsL :: Lens_' V1alpha1PodCertificateRequestSpec (Maybe Int)-v1alpha1PodCertificateRequestSpecMaxExpirationSecondsL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecMaxExpirationSeconds -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecMaxExpirationSeconds, ..} ) <$> f v1alpha1PodCertificateRequestSpecMaxExpirationSeconds-{-# INLINE v1alpha1PodCertificateRequestSpecMaxExpirationSecondsL #-}---- | 'v1alpha1PodCertificateRequestSpecNodeName' Lens-v1alpha1PodCertificateRequestSpecNodeNameL :: Lens_' V1alpha1PodCertificateRequestSpec (Text)-v1alpha1PodCertificateRequestSpecNodeNameL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecNodeName -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecNodeName, ..} ) <$> f v1alpha1PodCertificateRequestSpecNodeName-{-# INLINE v1alpha1PodCertificateRequestSpecNodeNameL #-}---- | 'v1alpha1PodCertificateRequestSpecNodeUid' Lens-v1alpha1PodCertificateRequestSpecNodeUidL :: Lens_' V1alpha1PodCertificateRequestSpec (Text)-v1alpha1PodCertificateRequestSpecNodeUidL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecNodeUid -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecNodeUid, ..} ) <$> f v1alpha1PodCertificateRequestSpecNodeUid-{-# INLINE v1alpha1PodCertificateRequestSpecNodeUidL #-}---- | 'v1alpha1PodCertificateRequestSpecPkixPublicKey' Lens-v1alpha1PodCertificateRequestSpecPkixPublicKeyL :: Lens_' V1alpha1PodCertificateRequestSpec (ByteArray)-v1alpha1PodCertificateRequestSpecPkixPublicKeyL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecPkixPublicKey -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecPkixPublicKey, ..} ) <$> f v1alpha1PodCertificateRequestSpecPkixPublicKey-{-# INLINE v1alpha1PodCertificateRequestSpecPkixPublicKeyL #-}---- | 'v1alpha1PodCertificateRequestSpecPodName' Lens-v1alpha1PodCertificateRequestSpecPodNameL :: Lens_' V1alpha1PodCertificateRequestSpec (Text)-v1alpha1PodCertificateRequestSpecPodNameL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecPodName -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecPodName, ..} ) <$> f v1alpha1PodCertificateRequestSpecPodName-{-# INLINE v1alpha1PodCertificateRequestSpecPodNameL #-}---- | 'v1alpha1PodCertificateRequestSpecPodUid' Lens-v1alpha1PodCertificateRequestSpecPodUidL :: Lens_' V1alpha1PodCertificateRequestSpec (Text)-v1alpha1PodCertificateRequestSpecPodUidL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecPodUid -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecPodUid, ..} ) <$> f v1alpha1PodCertificateRequestSpecPodUid-{-# INLINE v1alpha1PodCertificateRequestSpecPodUidL #-}---- | 'v1alpha1PodCertificateRequestSpecProofOfPossession' Lens-v1alpha1PodCertificateRequestSpecProofOfPossessionL :: Lens_' V1alpha1PodCertificateRequestSpec (ByteArray)-v1alpha1PodCertificateRequestSpecProofOfPossessionL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecProofOfPossession -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecProofOfPossession, ..} ) <$> f v1alpha1PodCertificateRequestSpecProofOfPossession-{-# INLINE v1alpha1PodCertificateRequestSpecProofOfPossessionL #-}---- | 'v1alpha1PodCertificateRequestSpecServiceAccountName' Lens-v1alpha1PodCertificateRequestSpecServiceAccountNameL :: Lens_' V1alpha1PodCertificateRequestSpec (Text)-v1alpha1PodCertificateRequestSpecServiceAccountNameL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecServiceAccountName -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecServiceAccountName, ..} ) <$> f v1alpha1PodCertificateRequestSpecServiceAccountName-{-# INLINE v1alpha1PodCertificateRequestSpecServiceAccountNameL #-}+-- * V1alpha1PodGroup --- | 'v1alpha1PodCertificateRequestSpecServiceAccountUid' Lens-v1alpha1PodCertificateRequestSpecServiceAccountUidL :: Lens_' V1alpha1PodCertificateRequestSpec (Text)-v1alpha1PodCertificateRequestSpecServiceAccountUidL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecServiceAccountUid -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecServiceAccountUid, ..} ) <$> f v1alpha1PodCertificateRequestSpecServiceAccountUid-{-# INLINE v1alpha1PodCertificateRequestSpecServiceAccountUidL #-}+-- | 'v1alpha1PodGroupName' Lens+v1alpha1PodGroupNameL :: Lens_' V1alpha1PodGroup (Text)+v1alpha1PodGroupNameL f V1alpha1PodGroup{..} = (\v1alpha1PodGroupName -> V1alpha1PodGroup { v1alpha1PodGroupName, ..} ) <$> f v1alpha1PodGroupName+{-# INLINE v1alpha1PodGroupNameL #-} --- | 'v1alpha1PodCertificateRequestSpecSignerName' Lens-v1alpha1PodCertificateRequestSpecSignerNameL :: Lens_' V1alpha1PodCertificateRequestSpec (Text)-v1alpha1PodCertificateRequestSpecSignerNameL f V1alpha1PodCertificateRequestSpec{..} = (\v1alpha1PodCertificateRequestSpecSignerName -> V1alpha1PodCertificateRequestSpec { v1alpha1PodCertificateRequestSpecSignerName, ..} ) <$> f v1alpha1PodCertificateRequestSpecSignerName-{-# INLINE v1alpha1PodCertificateRequestSpecSignerNameL #-}+-- | 'v1alpha1PodGroupPolicy' Lens+v1alpha1PodGroupPolicyL :: Lens_' V1alpha1PodGroup (V1alpha1PodGroupPolicy)+v1alpha1PodGroupPolicyL f V1alpha1PodGroup{..} = (\v1alpha1PodGroupPolicy -> V1alpha1PodGroup { v1alpha1PodGroupPolicy, ..} ) <$> f v1alpha1PodGroupPolicy+{-# INLINE v1alpha1PodGroupPolicyL #-} --- * V1alpha1PodCertificateRequestStatus---- | 'v1alpha1PodCertificateRequestStatusBeginRefreshAt' Lens-v1alpha1PodCertificateRequestStatusBeginRefreshAtL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe DateTime)-v1alpha1PodCertificateRequestStatusBeginRefreshAtL f V1alpha1PodCertificateRequestStatus{..} = (\v1alpha1PodCertificateRequestStatusBeginRefreshAt -> V1alpha1PodCertificateRequestStatus { v1alpha1PodCertificateRequestStatusBeginRefreshAt, ..} ) <$> f v1alpha1PodCertificateRequestStatusBeginRefreshAt-{-# INLINE v1alpha1PodCertificateRequestStatusBeginRefreshAtL #-}---- | 'v1alpha1PodCertificateRequestStatusCertificateChain' Lens-v1alpha1PodCertificateRequestStatusCertificateChainL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe Text)-v1alpha1PodCertificateRequestStatusCertificateChainL f V1alpha1PodCertificateRequestStatus{..} = (\v1alpha1PodCertificateRequestStatusCertificateChain -> V1alpha1PodCertificateRequestStatus { v1alpha1PodCertificateRequestStatusCertificateChain, ..} ) <$> f v1alpha1PodCertificateRequestStatusCertificateChain-{-# INLINE v1alpha1PodCertificateRequestStatusCertificateChainL #-}---- | 'v1alpha1PodCertificateRequestStatusConditions' Lens-v1alpha1PodCertificateRequestStatusConditionsL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe [V1Condition])-v1alpha1PodCertificateRequestStatusConditionsL f V1alpha1PodCertificateRequestStatus{..} = (\v1alpha1PodCertificateRequestStatusConditions -> V1alpha1PodCertificateRequestStatus { v1alpha1PodCertificateRequestStatusConditions, ..} ) <$> f v1alpha1PodCertificateRequestStatusConditions-{-# INLINE v1alpha1PodCertificateRequestStatusConditionsL #-}+-- * V1alpha1PodGroupPolicy --- | 'v1alpha1PodCertificateRequestStatusNotAfter' Lens-v1alpha1PodCertificateRequestStatusNotAfterL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe DateTime)-v1alpha1PodCertificateRequestStatusNotAfterL f V1alpha1PodCertificateRequestStatus{..} = (\v1alpha1PodCertificateRequestStatusNotAfter -> V1alpha1PodCertificateRequestStatus { v1alpha1PodCertificateRequestStatusNotAfter, ..} ) <$> f v1alpha1PodCertificateRequestStatusNotAfter-{-# INLINE v1alpha1PodCertificateRequestStatusNotAfterL #-}+-- | 'v1alpha1PodGroupPolicyBasic' Lens+v1alpha1PodGroupPolicyBasicL :: Lens_' V1alpha1PodGroupPolicy (Maybe A.Value)+v1alpha1PodGroupPolicyBasicL f V1alpha1PodGroupPolicy{..} = (\v1alpha1PodGroupPolicyBasic -> V1alpha1PodGroupPolicy { v1alpha1PodGroupPolicyBasic, ..} ) <$> f v1alpha1PodGroupPolicyBasic+{-# INLINE v1alpha1PodGroupPolicyBasicL #-} --- | 'v1alpha1PodCertificateRequestStatusNotBefore' Lens-v1alpha1PodCertificateRequestStatusNotBeforeL :: Lens_' V1alpha1PodCertificateRequestStatus (Maybe DateTime)-v1alpha1PodCertificateRequestStatusNotBeforeL f V1alpha1PodCertificateRequestStatus{..} = (\v1alpha1PodCertificateRequestStatusNotBefore -> V1alpha1PodCertificateRequestStatus { v1alpha1PodCertificateRequestStatusNotBefore, ..} ) <$> f v1alpha1PodCertificateRequestStatusNotBefore-{-# INLINE v1alpha1PodCertificateRequestStatusNotBeforeL #-}+-- | 'v1alpha1PodGroupPolicyGang' Lens+v1alpha1PodGroupPolicyGangL :: Lens_' V1alpha1PodGroupPolicy (Maybe V1alpha1GangSchedulingPolicy)+v1alpha1PodGroupPolicyGangL f V1alpha1PodGroupPolicy{..} = (\v1alpha1PodGroupPolicyGang -> V1alpha1PodGroupPolicy { v1alpha1PodGroupPolicyGang, ..} ) <$> f v1alpha1PodGroupPolicyGang+{-# INLINE v1alpha1PodGroupPolicyGangL #-} @@ -14352,87 +14278,6 @@ --- * V1alpha1StorageVersionMigration---- | 'v1alpha1StorageVersionMigrationApiVersion' Lens-v1alpha1StorageVersionMigrationApiVersionL :: Lens_' V1alpha1StorageVersionMigration (Maybe Text)-v1alpha1StorageVersionMigrationApiVersionL f V1alpha1StorageVersionMigration{..} = (\v1alpha1StorageVersionMigrationApiVersion -> V1alpha1StorageVersionMigration { v1alpha1StorageVersionMigrationApiVersion, ..} ) <$> f v1alpha1StorageVersionMigrationApiVersion-{-# INLINE v1alpha1StorageVersionMigrationApiVersionL #-}---- | 'v1alpha1StorageVersionMigrationKind' Lens-v1alpha1StorageVersionMigrationKindL :: Lens_' V1alpha1StorageVersionMigration (Maybe Text)-v1alpha1StorageVersionMigrationKindL f V1alpha1StorageVersionMigration{..} = (\v1alpha1StorageVersionMigrationKind -> V1alpha1StorageVersionMigration { v1alpha1StorageVersionMigrationKind, ..} ) <$> f v1alpha1StorageVersionMigrationKind-{-# INLINE v1alpha1StorageVersionMigrationKindL #-}---- | 'v1alpha1StorageVersionMigrationMetadata' Lens-v1alpha1StorageVersionMigrationMetadataL :: Lens_' V1alpha1StorageVersionMigration (Maybe V1ObjectMeta)-v1alpha1StorageVersionMigrationMetadataL f V1alpha1StorageVersionMigration{..} = (\v1alpha1StorageVersionMigrationMetadata -> V1alpha1StorageVersionMigration { v1alpha1StorageVersionMigrationMetadata, ..} ) <$> f v1alpha1StorageVersionMigrationMetadata-{-# INLINE v1alpha1StorageVersionMigrationMetadataL #-}---- | 'v1alpha1StorageVersionMigrationSpec' Lens-v1alpha1StorageVersionMigrationSpecL :: Lens_' V1alpha1StorageVersionMigration (Maybe V1alpha1StorageVersionMigrationSpec)-v1alpha1StorageVersionMigrationSpecL f V1alpha1StorageVersionMigration{..} = (\v1alpha1StorageVersionMigrationSpec -> V1alpha1StorageVersionMigration { v1alpha1StorageVersionMigrationSpec, ..} ) <$> f v1alpha1StorageVersionMigrationSpec-{-# INLINE v1alpha1StorageVersionMigrationSpecL #-}---- | 'v1alpha1StorageVersionMigrationStatus' Lens-v1alpha1StorageVersionMigrationStatusL :: Lens_' V1alpha1StorageVersionMigration (Maybe V1alpha1StorageVersionMigrationStatus)-v1alpha1StorageVersionMigrationStatusL f V1alpha1StorageVersionMigration{..} = (\v1alpha1StorageVersionMigrationStatus -> V1alpha1StorageVersionMigration { v1alpha1StorageVersionMigrationStatus, ..} ) <$> f v1alpha1StorageVersionMigrationStatus-{-# INLINE v1alpha1StorageVersionMigrationStatusL #-}------ * V1alpha1StorageVersionMigrationList---- | 'v1alpha1StorageVersionMigrationListApiVersion' Lens-v1alpha1StorageVersionMigrationListApiVersionL :: Lens_' V1alpha1StorageVersionMigrationList (Maybe Text)-v1alpha1StorageVersionMigrationListApiVersionL f V1alpha1StorageVersionMigrationList{..} = (\v1alpha1StorageVersionMigrationListApiVersion -> V1alpha1StorageVersionMigrationList { v1alpha1StorageVersionMigrationListApiVersion, ..} ) <$> f v1alpha1StorageVersionMigrationListApiVersion-{-# INLINE v1alpha1StorageVersionMigrationListApiVersionL #-}---- | 'v1alpha1StorageVersionMigrationListItems' Lens-v1alpha1StorageVersionMigrationListItemsL :: Lens_' V1alpha1StorageVersionMigrationList ([V1alpha1StorageVersionMigration])-v1alpha1StorageVersionMigrationListItemsL f V1alpha1StorageVersionMigrationList{..} = (\v1alpha1StorageVersionMigrationListItems -> V1alpha1StorageVersionMigrationList { v1alpha1StorageVersionMigrationListItems, ..} ) <$> f v1alpha1StorageVersionMigrationListItems-{-# INLINE v1alpha1StorageVersionMigrationListItemsL #-}---- | 'v1alpha1StorageVersionMigrationListKind' Lens-v1alpha1StorageVersionMigrationListKindL :: Lens_' V1alpha1StorageVersionMigrationList (Maybe Text)-v1alpha1StorageVersionMigrationListKindL f V1alpha1StorageVersionMigrationList{..} = (\v1alpha1StorageVersionMigrationListKind -> V1alpha1StorageVersionMigrationList { v1alpha1StorageVersionMigrationListKind, ..} ) <$> f v1alpha1StorageVersionMigrationListKind-{-# INLINE v1alpha1StorageVersionMigrationListKindL #-}---- | 'v1alpha1StorageVersionMigrationListMetadata' Lens-v1alpha1StorageVersionMigrationListMetadataL :: Lens_' V1alpha1StorageVersionMigrationList (Maybe V1ListMeta)-v1alpha1StorageVersionMigrationListMetadataL f V1alpha1StorageVersionMigrationList{..} = (\v1alpha1StorageVersionMigrationListMetadata -> V1alpha1StorageVersionMigrationList { v1alpha1StorageVersionMigrationListMetadata, ..} ) <$> f v1alpha1StorageVersionMigrationListMetadata-{-# INLINE v1alpha1StorageVersionMigrationListMetadataL #-}------ * V1alpha1StorageVersionMigrationSpec---- | 'v1alpha1StorageVersionMigrationSpecContinueToken' Lens-v1alpha1StorageVersionMigrationSpecContinueTokenL :: Lens_' V1alpha1StorageVersionMigrationSpec (Maybe Text)-v1alpha1StorageVersionMigrationSpecContinueTokenL f V1alpha1StorageVersionMigrationSpec{..} = (\v1alpha1StorageVersionMigrationSpecContinueToken -> V1alpha1StorageVersionMigrationSpec { v1alpha1StorageVersionMigrationSpecContinueToken, ..} ) <$> f v1alpha1StorageVersionMigrationSpecContinueToken-{-# INLINE v1alpha1StorageVersionMigrationSpecContinueTokenL #-}---- | 'v1alpha1StorageVersionMigrationSpecResource' Lens-v1alpha1StorageVersionMigrationSpecResourceL :: Lens_' V1alpha1StorageVersionMigrationSpec (V1alpha1GroupVersionResource)-v1alpha1StorageVersionMigrationSpecResourceL f V1alpha1StorageVersionMigrationSpec{..} = (\v1alpha1StorageVersionMigrationSpecResource -> V1alpha1StorageVersionMigrationSpec { v1alpha1StorageVersionMigrationSpecResource, ..} ) <$> f v1alpha1StorageVersionMigrationSpecResource-{-# INLINE v1alpha1StorageVersionMigrationSpecResourceL #-}------ * V1alpha1StorageVersionMigrationStatus---- | 'v1alpha1StorageVersionMigrationStatusConditions' Lens-v1alpha1StorageVersionMigrationStatusConditionsL :: Lens_' V1alpha1StorageVersionMigrationStatus (Maybe [V1alpha1MigrationCondition])-v1alpha1StorageVersionMigrationStatusConditionsL f V1alpha1StorageVersionMigrationStatus{..} = (\v1alpha1StorageVersionMigrationStatusConditions -> V1alpha1StorageVersionMigrationStatus { v1alpha1StorageVersionMigrationStatusConditions, ..} ) <$> f v1alpha1StorageVersionMigrationStatusConditions-{-# INLINE v1alpha1StorageVersionMigrationStatusConditionsL #-}---- | 'v1alpha1StorageVersionMigrationStatusResourceVersion' Lens-v1alpha1StorageVersionMigrationStatusResourceVersionL :: Lens_' V1alpha1StorageVersionMigrationStatus (Maybe Text)-v1alpha1StorageVersionMigrationStatusResourceVersionL f V1alpha1StorageVersionMigrationStatus{..} = (\v1alpha1StorageVersionMigrationStatusResourceVersion -> V1alpha1StorageVersionMigrationStatus { v1alpha1StorageVersionMigrationStatusResourceVersion, ..} ) <$> f v1alpha1StorageVersionMigrationStatusResourceVersion-{-# INLINE v1alpha1StorageVersionMigrationStatusResourceVersionL #-}--- -- * V1alpha1StorageVersionStatus -- | 'v1alpha1StorageVersionStatusCommonEncodingVersion' Lens@@ -14452,6 +14297,25 @@ +-- * V1alpha1TypedLocalObjectReference++-- | 'v1alpha1TypedLocalObjectReferenceApiGroup' Lens+v1alpha1TypedLocalObjectReferenceApiGroupL :: Lens_' V1alpha1TypedLocalObjectReference (Maybe Text)+v1alpha1TypedLocalObjectReferenceApiGroupL f V1alpha1TypedLocalObjectReference{..} = (\v1alpha1TypedLocalObjectReferenceApiGroup -> V1alpha1TypedLocalObjectReference { v1alpha1TypedLocalObjectReferenceApiGroup, ..} ) <$> f v1alpha1TypedLocalObjectReferenceApiGroup+{-# INLINE v1alpha1TypedLocalObjectReferenceApiGroupL #-}++-- | 'v1alpha1TypedLocalObjectReferenceKind' Lens+v1alpha1TypedLocalObjectReferenceKindL :: Lens_' V1alpha1TypedLocalObjectReference (Text)+v1alpha1TypedLocalObjectReferenceKindL f V1alpha1TypedLocalObjectReference{..} = (\v1alpha1TypedLocalObjectReferenceKind -> V1alpha1TypedLocalObjectReference { v1alpha1TypedLocalObjectReferenceKind, ..} ) <$> f v1alpha1TypedLocalObjectReferenceKind+{-# INLINE v1alpha1TypedLocalObjectReferenceKindL #-}++-- | 'v1alpha1TypedLocalObjectReferenceName' Lens+v1alpha1TypedLocalObjectReferenceNameL :: Lens_' V1alpha1TypedLocalObjectReference (Text)+v1alpha1TypedLocalObjectReferenceNameL f V1alpha1TypedLocalObjectReference{..} = (\v1alpha1TypedLocalObjectReferenceName -> V1alpha1TypedLocalObjectReference { v1alpha1TypedLocalObjectReferenceName, ..} ) <$> f v1alpha1TypedLocalObjectReferenceName+{-# INLINE v1alpha1TypedLocalObjectReferenceNameL #-}+++ -- * V1alpha1Variable -- | 'v1alpha1VariableExpression' Lens@@ -14466,59 +14330,68 @@ --- * V1alpha1VolumeAttributesClass+-- * V1alpha1Workload --- | 'v1alpha1VolumeAttributesClassApiVersion' Lens-v1alpha1VolumeAttributesClassApiVersionL :: Lens_' V1alpha1VolumeAttributesClass (Maybe Text)-v1alpha1VolumeAttributesClassApiVersionL f V1alpha1VolumeAttributesClass{..} = (\v1alpha1VolumeAttributesClassApiVersion -> V1alpha1VolumeAttributesClass { v1alpha1VolumeAttributesClassApiVersion, ..} ) <$> f v1alpha1VolumeAttributesClassApiVersion-{-# INLINE v1alpha1VolumeAttributesClassApiVersionL #-}+-- | 'v1alpha1WorkloadApiVersion' Lens+v1alpha1WorkloadApiVersionL :: Lens_' V1alpha1Workload (Maybe Text)+v1alpha1WorkloadApiVersionL f V1alpha1Workload{..} = (\v1alpha1WorkloadApiVersion -> V1alpha1Workload { v1alpha1WorkloadApiVersion, ..} ) <$> f v1alpha1WorkloadApiVersion+{-# INLINE v1alpha1WorkloadApiVersionL #-} --- | 'v1alpha1VolumeAttributesClassDriverName' Lens-v1alpha1VolumeAttributesClassDriverNameL :: Lens_' V1alpha1VolumeAttributesClass (Text)-v1alpha1VolumeAttributesClassDriverNameL f V1alpha1VolumeAttributesClass{..} = (\v1alpha1VolumeAttributesClassDriverName -> V1alpha1VolumeAttributesClass { v1alpha1VolumeAttributesClassDriverName, ..} ) <$> f v1alpha1VolumeAttributesClassDriverName-{-# INLINE v1alpha1VolumeAttributesClassDriverNameL #-}+-- | 'v1alpha1WorkloadKind' Lens+v1alpha1WorkloadKindL :: Lens_' V1alpha1Workload (Maybe Text)+v1alpha1WorkloadKindL f V1alpha1Workload{..} = (\v1alpha1WorkloadKind -> V1alpha1Workload { v1alpha1WorkloadKind, ..} ) <$> f v1alpha1WorkloadKind+{-# INLINE v1alpha1WorkloadKindL #-} --- | 'v1alpha1VolumeAttributesClassKind' Lens-v1alpha1VolumeAttributesClassKindL :: Lens_' V1alpha1VolumeAttributesClass (Maybe Text)-v1alpha1VolumeAttributesClassKindL f V1alpha1VolumeAttributesClass{..} = (\v1alpha1VolumeAttributesClassKind -> V1alpha1VolumeAttributesClass { v1alpha1VolumeAttributesClassKind, ..} ) <$> f v1alpha1VolumeAttributesClassKind-{-# INLINE v1alpha1VolumeAttributesClassKindL #-}+-- | 'v1alpha1WorkloadMetadata' Lens+v1alpha1WorkloadMetadataL :: Lens_' V1alpha1Workload (Maybe V1ObjectMeta)+v1alpha1WorkloadMetadataL f V1alpha1Workload{..} = (\v1alpha1WorkloadMetadata -> V1alpha1Workload { v1alpha1WorkloadMetadata, ..} ) <$> f v1alpha1WorkloadMetadata+{-# INLINE v1alpha1WorkloadMetadataL #-} --- | 'v1alpha1VolumeAttributesClassMetadata' Lens-v1alpha1VolumeAttributesClassMetadataL :: Lens_' V1alpha1VolumeAttributesClass (Maybe V1ObjectMeta)-v1alpha1VolumeAttributesClassMetadataL f V1alpha1VolumeAttributesClass{..} = (\v1alpha1VolumeAttributesClassMetadata -> V1alpha1VolumeAttributesClass { v1alpha1VolumeAttributesClassMetadata, ..} ) <$> f v1alpha1VolumeAttributesClassMetadata-{-# INLINE v1alpha1VolumeAttributesClassMetadataL #-}+-- | 'v1alpha1WorkloadSpec' Lens+v1alpha1WorkloadSpecL :: Lens_' V1alpha1Workload (V1alpha1WorkloadSpec)+v1alpha1WorkloadSpecL f V1alpha1Workload{..} = (\v1alpha1WorkloadSpec -> V1alpha1Workload { v1alpha1WorkloadSpec, ..} ) <$> f v1alpha1WorkloadSpec+{-# INLINE v1alpha1WorkloadSpecL #-} --- | 'v1alpha1VolumeAttributesClassParameters' Lens-v1alpha1VolumeAttributesClassParametersL :: Lens_' V1alpha1VolumeAttributesClass (Maybe (Map.Map String Text))-v1alpha1VolumeAttributesClassParametersL f V1alpha1VolumeAttributesClass{..} = (\v1alpha1VolumeAttributesClassParameters -> V1alpha1VolumeAttributesClass { v1alpha1VolumeAttributesClassParameters, ..} ) <$> f v1alpha1VolumeAttributesClassParameters-{-# INLINE v1alpha1VolumeAttributesClassParametersL #-} +-- * V1alpha1WorkloadList --- * V1alpha1VolumeAttributesClassList+-- | 'v1alpha1WorkloadListApiVersion' Lens+v1alpha1WorkloadListApiVersionL :: Lens_' V1alpha1WorkloadList (Maybe Text)+v1alpha1WorkloadListApiVersionL f V1alpha1WorkloadList{..} = (\v1alpha1WorkloadListApiVersion -> V1alpha1WorkloadList { v1alpha1WorkloadListApiVersion, ..} ) <$> f v1alpha1WorkloadListApiVersion+{-# INLINE v1alpha1WorkloadListApiVersionL #-} --- | 'v1alpha1VolumeAttributesClassListApiVersion' Lens-v1alpha1VolumeAttributesClassListApiVersionL :: Lens_' V1alpha1VolumeAttributesClassList (Maybe Text)-v1alpha1VolumeAttributesClassListApiVersionL f V1alpha1VolumeAttributesClassList{..} = (\v1alpha1VolumeAttributesClassListApiVersion -> V1alpha1VolumeAttributesClassList { v1alpha1VolumeAttributesClassListApiVersion, ..} ) <$> f v1alpha1VolumeAttributesClassListApiVersion-{-# INLINE v1alpha1VolumeAttributesClassListApiVersionL #-}+-- | 'v1alpha1WorkloadListItems' Lens+v1alpha1WorkloadListItemsL :: Lens_' V1alpha1WorkloadList ([V1alpha1Workload])+v1alpha1WorkloadListItemsL f V1alpha1WorkloadList{..} = (\v1alpha1WorkloadListItems -> V1alpha1WorkloadList { v1alpha1WorkloadListItems, ..} ) <$> f v1alpha1WorkloadListItems+{-# INLINE v1alpha1WorkloadListItemsL #-} --- | 'v1alpha1VolumeAttributesClassListItems' Lens-v1alpha1VolumeAttributesClassListItemsL :: Lens_' V1alpha1VolumeAttributesClassList ([V1alpha1VolumeAttributesClass])-v1alpha1VolumeAttributesClassListItemsL f V1alpha1VolumeAttributesClassList{..} = (\v1alpha1VolumeAttributesClassListItems -> V1alpha1VolumeAttributesClassList { v1alpha1VolumeAttributesClassListItems, ..} ) <$> f v1alpha1VolumeAttributesClassListItems-{-# INLINE v1alpha1VolumeAttributesClassListItemsL #-}+-- | 'v1alpha1WorkloadListKind' Lens+v1alpha1WorkloadListKindL :: Lens_' V1alpha1WorkloadList (Maybe Text)+v1alpha1WorkloadListKindL f V1alpha1WorkloadList{..} = (\v1alpha1WorkloadListKind -> V1alpha1WorkloadList { v1alpha1WorkloadListKind, ..} ) <$> f v1alpha1WorkloadListKind+{-# INLINE v1alpha1WorkloadListKindL #-} --- | 'v1alpha1VolumeAttributesClassListKind' Lens-v1alpha1VolumeAttributesClassListKindL :: Lens_' V1alpha1VolumeAttributesClassList (Maybe Text)-v1alpha1VolumeAttributesClassListKindL f V1alpha1VolumeAttributesClassList{..} = (\v1alpha1VolumeAttributesClassListKind -> V1alpha1VolumeAttributesClassList { v1alpha1VolumeAttributesClassListKind, ..} ) <$> f v1alpha1VolumeAttributesClassListKind-{-# INLINE v1alpha1VolumeAttributesClassListKindL #-}+-- | 'v1alpha1WorkloadListMetadata' Lens+v1alpha1WorkloadListMetadataL :: Lens_' V1alpha1WorkloadList (Maybe V1ListMeta)+v1alpha1WorkloadListMetadataL f V1alpha1WorkloadList{..} = (\v1alpha1WorkloadListMetadata -> V1alpha1WorkloadList { v1alpha1WorkloadListMetadata, ..} ) <$> f v1alpha1WorkloadListMetadata+{-# INLINE v1alpha1WorkloadListMetadataL #-} --- | 'v1alpha1VolumeAttributesClassListMetadata' Lens-v1alpha1VolumeAttributesClassListMetadataL :: Lens_' V1alpha1VolumeAttributesClassList (Maybe V1ListMeta)-v1alpha1VolumeAttributesClassListMetadataL f V1alpha1VolumeAttributesClassList{..} = (\v1alpha1VolumeAttributesClassListMetadata -> V1alpha1VolumeAttributesClassList { v1alpha1VolumeAttributesClassListMetadata, ..} ) <$> f v1alpha1VolumeAttributesClassListMetadata-{-# INLINE v1alpha1VolumeAttributesClassListMetadataL #-} +-- * V1alpha1WorkloadSpec +-- | 'v1alpha1WorkloadSpecControllerRef' Lens+v1alpha1WorkloadSpecControllerRefL :: Lens_' V1alpha1WorkloadSpec (Maybe V1alpha1TypedLocalObjectReference)+v1alpha1WorkloadSpecControllerRefL f V1alpha1WorkloadSpec{..} = (\v1alpha1WorkloadSpecControllerRef -> V1alpha1WorkloadSpec { v1alpha1WorkloadSpecControllerRef, ..} ) <$> f v1alpha1WorkloadSpecControllerRef+{-# INLINE v1alpha1WorkloadSpecControllerRefL #-}++-- | 'v1alpha1WorkloadSpecPodGroups' Lens+v1alpha1WorkloadSpecPodGroupsL :: Lens_' V1alpha1WorkloadSpec ([V1alpha1PodGroup])+v1alpha1WorkloadSpecPodGroupsL f V1alpha1WorkloadSpec{..} = (\v1alpha1WorkloadSpecPodGroups -> V1alpha1WorkloadSpec { v1alpha1WorkloadSpecPodGroups, ..} ) <$> f v1alpha1WorkloadSpecPodGroups+{-# INLINE v1alpha1WorkloadSpecPodGroupsL #-}+++ -- * V1alpha2LeaseCandidate -- | 'v1alpha2LeaseCandidateApiVersion' Lens@@ -14601,24 +14474,6 @@ --- * V1alpha3CELDeviceSelector---- | 'v1alpha3CELDeviceSelectorExpression' Lens-v1alpha3CELDeviceSelectorExpressionL :: Lens_' V1alpha3CELDeviceSelector (Text)-v1alpha3CELDeviceSelectorExpressionL f V1alpha3CELDeviceSelector{..} = (\v1alpha3CELDeviceSelectorExpression -> V1alpha3CELDeviceSelector { v1alpha3CELDeviceSelectorExpression, ..} ) <$> f v1alpha3CELDeviceSelectorExpression-{-# INLINE v1alpha3CELDeviceSelectorExpressionL #-}------ * V1alpha3DeviceSelector---- | 'v1alpha3DeviceSelectorCel' Lens-v1alpha3DeviceSelectorCelL :: Lens_' V1alpha3DeviceSelector (Maybe V1alpha3CELDeviceSelector)-v1alpha3DeviceSelectorCelL f V1alpha3DeviceSelector{..} = (\v1alpha3DeviceSelectorCel -> V1alpha3DeviceSelector { v1alpha3DeviceSelectorCel, ..} ) <$> f v1alpha3DeviceSelectorCel-{-# INLINE v1alpha3DeviceSelectorCelL #-}--- -- * V1alpha3DeviceTaint -- | 'v1alpha3DeviceTaintEffect' Lens@@ -14665,8 +14520,13 @@ v1alpha3DeviceTaintRuleSpecL f V1alpha3DeviceTaintRule{..} = (\v1alpha3DeviceTaintRuleSpec -> V1alpha3DeviceTaintRule { v1alpha3DeviceTaintRuleSpec, ..} ) <$> f v1alpha3DeviceTaintRuleSpec {-# INLINE v1alpha3DeviceTaintRuleSpecL #-} +-- | 'v1alpha3DeviceTaintRuleStatus' Lens+v1alpha3DeviceTaintRuleStatusL :: Lens_' V1alpha3DeviceTaintRule (Maybe V1alpha3DeviceTaintRuleStatus)+v1alpha3DeviceTaintRuleStatusL f V1alpha3DeviceTaintRule{..} = (\v1alpha3DeviceTaintRuleStatus -> V1alpha3DeviceTaintRule { v1alpha3DeviceTaintRuleStatus, ..} ) <$> f v1alpha3DeviceTaintRuleStatus+{-# INLINE v1alpha3DeviceTaintRuleStatusL #-} + -- * V1alpha3DeviceTaintRuleList -- | 'v1alpha3DeviceTaintRuleListApiVersion' Lens@@ -14705,6 +14565,15 @@ +-- * V1alpha3DeviceTaintRuleStatus++-- | 'v1alpha3DeviceTaintRuleStatusConditions' Lens+v1alpha3DeviceTaintRuleStatusConditionsL :: Lens_' V1alpha3DeviceTaintRuleStatus (Maybe [V1Condition])+v1alpha3DeviceTaintRuleStatusConditionsL f V1alpha3DeviceTaintRuleStatus{..} = (\v1alpha3DeviceTaintRuleStatusConditions -> V1alpha3DeviceTaintRuleStatus { v1alpha3DeviceTaintRuleStatusConditions, ..} ) <$> f v1alpha3DeviceTaintRuleStatusConditions+{-# INLINE v1alpha3DeviceTaintRuleStatusConditionsL #-}+++ -- * V1alpha3DeviceTaintSelector -- | 'v1alpha3DeviceTaintSelectorDevice' Lens@@ -14712,11 +14581,6 @@ v1alpha3DeviceTaintSelectorDeviceL f V1alpha3DeviceTaintSelector{..} = (\v1alpha3DeviceTaintSelectorDevice -> V1alpha3DeviceTaintSelector { v1alpha3DeviceTaintSelectorDevice, ..} ) <$> f v1alpha3DeviceTaintSelectorDevice {-# INLINE v1alpha3DeviceTaintSelectorDeviceL #-} --- | 'v1alpha3DeviceTaintSelectorDeviceClassName' Lens-v1alpha3DeviceTaintSelectorDeviceClassNameL :: Lens_' V1alpha3DeviceTaintSelector (Maybe Text)-v1alpha3DeviceTaintSelectorDeviceClassNameL f V1alpha3DeviceTaintSelector{..} = (\v1alpha3DeviceTaintSelectorDeviceClassName -> V1alpha3DeviceTaintSelector { v1alpha3DeviceTaintSelectorDeviceClassName, ..} ) <$> f v1alpha3DeviceTaintSelectorDeviceClassName-{-# INLINE v1alpha3DeviceTaintSelectorDeviceClassNameL #-}- -- | 'v1alpha3DeviceTaintSelectorDriver' Lens v1alpha3DeviceTaintSelectorDriverL :: Lens_' V1alpha3DeviceTaintSelector (Maybe Text) v1alpha3DeviceTaintSelectorDriverL f V1alpha3DeviceTaintSelector{..} = (\v1alpha3DeviceTaintSelectorDriver -> V1alpha3DeviceTaintSelector { v1alpha3DeviceTaintSelectorDriver, ..} ) <$> f v1alpha3DeviceTaintSelectorDriver@@ -14727,13 +14591,8 @@ v1alpha3DeviceTaintSelectorPoolL f V1alpha3DeviceTaintSelector{..} = (\v1alpha3DeviceTaintSelectorPool -> V1alpha3DeviceTaintSelector { v1alpha3DeviceTaintSelectorPool, ..} ) <$> f v1alpha3DeviceTaintSelectorPool {-# INLINE v1alpha3DeviceTaintSelectorPoolL #-} --- | 'v1alpha3DeviceTaintSelectorSelectors' Lens-v1alpha3DeviceTaintSelectorSelectorsL :: Lens_' V1alpha3DeviceTaintSelector (Maybe [V1alpha3DeviceSelector])-v1alpha3DeviceTaintSelectorSelectorsL f V1alpha3DeviceTaintSelector{..} = (\v1alpha3DeviceTaintSelectorSelectors -> V1alpha3DeviceTaintSelector { v1alpha3DeviceTaintSelectorSelectors, ..} ) <$> f v1alpha3DeviceTaintSelectorSelectors-{-# INLINE v1alpha3DeviceTaintSelectorSelectorsL #-} - -- * V1beta1AllocatedDeviceStatus -- | 'v1beta1AllocatedDeviceStatusConditions' Lens@@ -15925,6 +15784,147 @@ +-- * V1beta1PodCertificateRequest++-- | 'v1beta1PodCertificateRequestApiVersion' Lens+v1beta1PodCertificateRequestApiVersionL :: Lens_' V1beta1PodCertificateRequest (Maybe Text)+v1beta1PodCertificateRequestApiVersionL f V1beta1PodCertificateRequest{..} = (\v1beta1PodCertificateRequestApiVersion -> V1beta1PodCertificateRequest { v1beta1PodCertificateRequestApiVersion, ..} ) <$> f v1beta1PodCertificateRequestApiVersion+{-# INLINE v1beta1PodCertificateRequestApiVersionL #-}++-- | 'v1beta1PodCertificateRequestKind' Lens+v1beta1PodCertificateRequestKindL :: Lens_' V1beta1PodCertificateRequest (Maybe Text)+v1beta1PodCertificateRequestKindL f V1beta1PodCertificateRequest{..} = (\v1beta1PodCertificateRequestKind -> V1beta1PodCertificateRequest { v1beta1PodCertificateRequestKind, ..} ) <$> f v1beta1PodCertificateRequestKind+{-# INLINE v1beta1PodCertificateRequestKindL #-}++-- | 'v1beta1PodCertificateRequestMetadata' Lens+v1beta1PodCertificateRequestMetadataL :: Lens_' V1beta1PodCertificateRequest (Maybe V1ObjectMeta)+v1beta1PodCertificateRequestMetadataL f V1beta1PodCertificateRequest{..} = (\v1beta1PodCertificateRequestMetadata -> V1beta1PodCertificateRequest { v1beta1PodCertificateRequestMetadata, ..} ) <$> f v1beta1PodCertificateRequestMetadata+{-# INLINE v1beta1PodCertificateRequestMetadataL #-}++-- | 'v1beta1PodCertificateRequestSpec' Lens+v1beta1PodCertificateRequestSpecL :: Lens_' V1beta1PodCertificateRequest (V1beta1PodCertificateRequestSpec)+v1beta1PodCertificateRequestSpecL f V1beta1PodCertificateRequest{..} = (\v1beta1PodCertificateRequestSpec -> V1beta1PodCertificateRequest { v1beta1PodCertificateRequestSpec, ..} ) <$> f v1beta1PodCertificateRequestSpec+{-# INLINE v1beta1PodCertificateRequestSpecL #-}++-- | 'v1beta1PodCertificateRequestStatus' Lens+v1beta1PodCertificateRequestStatusL :: Lens_' V1beta1PodCertificateRequest (Maybe V1beta1PodCertificateRequestStatus)+v1beta1PodCertificateRequestStatusL f V1beta1PodCertificateRequest{..} = (\v1beta1PodCertificateRequestStatus -> V1beta1PodCertificateRequest { v1beta1PodCertificateRequestStatus, ..} ) <$> f v1beta1PodCertificateRequestStatus+{-# INLINE v1beta1PodCertificateRequestStatusL #-}++++-- * V1beta1PodCertificateRequestList++-- | 'v1beta1PodCertificateRequestListApiVersion' Lens+v1beta1PodCertificateRequestListApiVersionL :: Lens_' V1beta1PodCertificateRequestList (Maybe Text)+v1beta1PodCertificateRequestListApiVersionL f V1beta1PodCertificateRequestList{..} = (\v1beta1PodCertificateRequestListApiVersion -> V1beta1PodCertificateRequestList { v1beta1PodCertificateRequestListApiVersion, ..} ) <$> f v1beta1PodCertificateRequestListApiVersion+{-# INLINE v1beta1PodCertificateRequestListApiVersionL #-}++-- | 'v1beta1PodCertificateRequestListItems' Lens+v1beta1PodCertificateRequestListItemsL :: Lens_' V1beta1PodCertificateRequestList ([V1beta1PodCertificateRequest])+v1beta1PodCertificateRequestListItemsL f V1beta1PodCertificateRequestList{..} = (\v1beta1PodCertificateRequestListItems -> V1beta1PodCertificateRequestList { v1beta1PodCertificateRequestListItems, ..} ) <$> f v1beta1PodCertificateRequestListItems+{-# INLINE v1beta1PodCertificateRequestListItemsL #-}++-- | 'v1beta1PodCertificateRequestListKind' Lens+v1beta1PodCertificateRequestListKindL :: Lens_' V1beta1PodCertificateRequestList (Maybe Text)+v1beta1PodCertificateRequestListKindL f V1beta1PodCertificateRequestList{..} = (\v1beta1PodCertificateRequestListKind -> V1beta1PodCertificateRequestList { v1beta1PodCertificateRequestListKind, ..} ) <$> f v1beta1PodCertificateRequestListKind+{-# INLINE v1beta1PodCertificateRequestListKindL #-}++-- | 'v1beta1PodCertificateRequestListMetadata' Lens+v1beta1PodCertificateRequestListMetadataL :: Lens_' V1beta1PodCertificateRequestList (Maybe V1ListMeta)+v1beta1PodCertificateRequestListMetadataL f V1beta1PodCertificateRequestList{..} = (\v1beta1PodCertificateRequestListMetadata -> V1beta1PodCertificateRequestList { v1beta1PodCertificateRequestListMetadata, ..} ) <$> f v1beta1PodCertificateRequestListMetadata+{-# INLINE v1beta1PodCertificateRequestListMetadataL #-}++++-- * V1beta1PodCertificateRequestSpec++-- | 'v1beta1PodCertificateRequestSpecMaxExpirationSeconds' Lens+v1beta1PodCertificateRequestSpecMaxExpirationSecondsL :: Lens_' V1beta1PodCertificateRequestSpec (Maybe Int)+v1beta1PodCertificateRequestSpecMaxExpirationSecondsL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecMaxExpirationSeconds -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecMaxExpirationSeconds, ..} ) <$> f v1beta1PodCertificateRequestSpecMaxExpirationSeconds+{-# INLINE v1beta1PodCertificateRequestSpecMaxExpirationSecondsL #-}++-- | 'v1beta1PodCertificateRequestSpecNodeName' Lens+v1beta1PodCertificateRequestSpecNodeNameL :: Lens_' V1beta1PodCertificateRequestSpec (Text)+v1beta1PodCertificateRequestSpecNodeNameL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecNodeName -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecNodeName, ..} ) <$> f v1beta1PodCertificateRequestSpecNodeName+{-# INLINE v1beta1PodCertificateRequestSpecNodeNameL #-}++-- | 'v1beta1PodCertificateRequestSpecNodeUid' Lens+v1beta1PodCertificateRequestSpecNodeUidL :: Lens_' V1beta1PodCertificateRequestSpec (Text)+v1beta1PodCertificateRequestSpecNodeUidL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecNodeUid -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecNodeUid, ..} ) <$> f v1beta1PodCertificateRequestSpecNodeUid+{-# INLINE v1beta1PodCertificateRequestSpecNodeUidL #-}++-- | 'v1beta1PodCertificateRequestSpecPkixPublicKey' Lens+v1beta1PodCertificateRequestSpecPkixPublicKeyL :: Lens_' V1beta1PodCertificateRequestSpec (ByteArray)+v1beta1PodCertificateRequestSpecPkixPublicKeyL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecPkixPublicKey -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecPkixPublicKey, ..} ) <$> f v1beta1PodCertificateRequestSpecPkixPublicKey+{-# INLINE v1beta1PodCertificateRequestSpecPkixPublicKeyL #-}++-- | 'v1beta1PodCertificateRequestSpecPodName' Lens+v1beta1PodCertificateRequestSpecPodNameL :: Lens_' V1beta1PodCertificateRequestSpec (Text)+v1beta1PodCertificateRequestSpecPodNameL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecPodName -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecPodName, ..} ) <$> f v1beta1PodCertificateRequestSpecPodName+{-# INLINE v1beta1PodCertificateRequestSpecPodNameL #-}++-- | 'v1beta1PodCertificateRequestSpecPodUid' Lens+v1beta1PodCertificateRequestSpecPodUidL :: Lens_' V1beta1PodCertificateRequestSpec (Text)+v1beta1PodCertificateRequestSpecPodUidL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecPodUid -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecPodUid, ..} ) <$> f v1beta1PodCertificateRequestSpecPodUid+{-# INLINE v1beta1PodCertificateRequestSpecPodUidL #-}++-- | 'v1beta1PodCertificateRequestSpecProofOfPossession' Lens+v1beta1PodCertificateRequestSpecProofOfPossessionL :: Lens_' V1beta1PodCertificateRequestSpec (ByteArray)+v1beta1PodCertificateRequestSpecProofOfPossessionL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecProofOfPossession -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecProofOfPossession, ..} ) <$> f v1beta1PodCertificateRequestSpecProofOfPossession+{-# INLINE v1beta1PodCertificateRequestSpecProofOfPossessionL #-}++-- | 'v1beta1PodCertificateRequestSpecServiceAccountName' Lens+v1beta1PodCertificateRequestSpecServiceAccountNameL :: Lens_' V1beta1PodCertificateRequestSpec (Text)+v1beta1PodCertificateRequestSpecServiceAccountNameL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecServiceAccountName -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecServiceAccountName, ..} ) <$> f v1beta1PodCertificateRequestSpecServiceAccountName+{-# INLINE v1beta1PodCertificateRequestSpecServiceAccountNameL #-}++-- | 'v1beta1PodCertificateRequestSpecServiceAccountUid' Lens+v1beta1PodCertificateRequestSpecServiceAccountUidL :: Lens_' V1beta1PodCertificateRequestSpec (Text)+v1beta1PodCertificateRequestSpecServiceAccountUidL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecServiceAccountUid -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecServiceAccountUid, ..} ) <$> f v1beta1PodCertificateRequestSpecServiceAccountUid+{-# INLINE v1beta1PodCertificateRequestSpecServiceAccountUidL #-}++-- | 'v1beta1PodCertificateRequestSpecSignerName' Lens+v1beta1PodCertificateRequestSpecSignerNameL :: Lens_' V1beta1PodCertificateRequestSpec (Text)+v1beta1PodCertificateRequestSpecSignerNameL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecSignerName -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecSignerName, ..} ) <$> f v1beta1PodCertificateRequestSpecSignerName+{-# INLINE v1beta1PodCertificateRequestSpecSignerNameL #-}++-- | 'v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations' Lens+v1beta1PodCertificateRequestSpecUnverifiedUserAnnotationsL :: Lens_' V1beta1PodCertificateRequestSpec (Maybe (Map.Map String Text))+v1beta1PodCertificateRequestSpecUnverifiedUserAnnotationsL f V1beta1PodCertificateRequestSpec{..} = (\v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations -> V1beta1PodCertificateRequestSpec { v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations, ..} ) <$> f v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations+{-# INLINE v1beta1PodCertificateRequestSpecUnverifiedUserAnnotationsL #-}++++-- * V1beta1PodCertificateRequestStatus++-- | 'v1beta1PodCertificateRequestStatusBeginRefreshAt' Lens+v1beta1PodCertificateRequestStatusBeginRefreshAtL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe DateTime)+v1beta1PodCertificateRequestStatusBeginRefreshAtL f V1beta1PodCertificateRequestStatus{..} = (\v1beta1PodCertificateRequestStatusBeginRefreshAt -> V1beta1PodCertificateRequestStatus { v1beta1PodCertificateRequestStatusBeginRefreshAt, ..} ) <$> f v1beta1PodCertificateRequestStatusBeginRefreshAt+{-# INLINE v1beta1PodCertificateRequestStatusBeginRefreshAtL #-}++-- | 'v1beta1PodCertificateRequestStatusCertificateChain' Lens+v1beta1PodCertificateRequestStatusCertificateChainL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe Text)+v1beta1PodCertificateRequestStatusCertificateChainL f V1beta1PodCertificateRequestStatus{..} = (\v1beta1PodCertificateRequestStatusCertificateChain -> V1beta1PodCertificateRequestStatus { v1beta1PodCertificateRequestStatusCertificateChain, ..} ) <$> f v1beta1PodCertificateRequestStatusCertificateChain+{-# INLINE v1beta1PodCertificateRequestStatusCertificateChainL #-}++-- | 'v1beta1PodCertificateRequestStatusConditions' Lens+v1beta1PodCertificateRequestStatusConditionsL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe [V1Condition])+v1beta1PodCertificateRequestStatusConditionsL f V1beta1PodCertificateRequestStatus{..} = (\v1beta1PodCertificateRequestStatusConditions -> V1beta1PodCertificateRequestStatus { v1beta1PodCertificateRequestStatusConditions, ..} ) <$> f v1beta1PodCertificateRequestStatusConditions+{-# INLINE v1beta1PodCertificateRequestStatusConditionsL #-}++-- | 'v1beta1PodCertificateRequestStatusNotAfter' Lens+v1beta1PodCertificateRequestStatusNotAfterL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe DateTime)+v1beta1PodCertificateRequestStatusNotAfterL f V1beta1PodCertificateRequestStatus{..} = (\v1beta1PodCertificateRequestStatusNotAfter -> V1beta1PodCertificateRequestStatus { v1beta1PodCertificateRequestStatusNotAfter, ..} ) <$> f v1beta1PodCertificateRequestStatusNotAfter+{-# INLINE v1beta1PodCertificateRequestStatusNotAfterL #-}++-- | 'v1beta1PodCertificateRequestStatusNotBefore' Lens+v1beta1PodCertificateRequestStatusNotBeforeL :: Lens_' V1beta1PodCertificateRequestStatus (Maybe DateTime)+v1beta1PodCertificateRequestStatusNotBeforeL f V1beta1PodCertificateRequestStatus{..} = (\v1beta1PodCertificateRequestStatusNotBefore -> V1beta1PodCertificateRequestStatus { v1beta1PodCertificateRequestStatusNotBefore, ..} ) <$> f v1beta1PodCertificateRequestStatusNotBefore+{-# INLINE v1beta1PodCertificateRequestStatusNotBeforeL #-}+++ -- * V1beta1ResourceClaim -- | 'v1beta1ResourceClaimApiVersion' Lens@@ -16271,6 +16271,82 @@ v1beta1ServiceCIDRStatusConditionsL :: Lens_' V1beta1ServiceCIDRStatus (Maybe [V1Condition]) v1beta1ServiceCIDRStatusConditionsL f V1beta1ServiceCIDRStatus{..} = (\v1beta1ServiceCIDRStatusConditions -> V1beta1ServiceCIDRStatus { v1beta1ServiceCIDRStatusConditions, ..} ) <$> f v1beta1ServiceCIDRStatusConditions {-# INLINE v1beta1ServiceCIDRStatusConditionsL #-}++++-- * V1beta1StorageVersionMigration++-- | 'v1beta1StorageVersionMigrationApiVersion' Lens+v1beta1StorageVersionMigrationApiVersionL :: Lens_' V1beta1StorageVersionMigration (Maybe Text)+v1beta1StorageVersionMigrationApiVersionL f V1beta1StorageVersionMigration{..} = (\v1beta1StorageVersionMigrationApiVersion -> V1beta1StorageVersionMigration { v1beta1StorageVersionMigrationApiVersion, ..} ) <$> f v1beta1StorageVersionMigrationApiVersion+{-# INLINE v1beta1StorageVersionMigrationApiVersionL #-}++-- | 'v1beta1StorageVersionMigrationKind' Lens+v1beta1StorageVersionMigrationKindL :: Lens_' V1beta1StorageVersionMigration (Maybe Text)+v1beta1StorageVersionMigrationKindL f V1beta1StorageVersionMigration{..} = (\v1beta1StorageVersionMigrationKind -> V1beta1StorageVersionMigration { v1beta1StorageVersionMigrationKind, ..} ) <$> f v1beta1StorageVersionMigrationKind+{-# INLINE v1beta1StorageVersionMigrationKindL #-}++-- | 'v1beta1StorageVersionMigrationMetadata' Lens+v1beta1StorageVersionMigrationMetadataL :: Lens_' V1beta1StorageVersionMigration (Maybe V1ObjectMeta)+v1beta1StorageVersionMigrationMetadataL f V1beta1StorageVersionMigration{..} = (\v1beta1StorageVersionMigrationMetadata -> V1beta1StorageVersionMigration { v1beta1StorageVersionMigrationMetadata, ..} ) <$> f v1beta1StorageVersionMigrationMetadata+{-# INLINE v1beta1StorageVersionMigrationMetadataL #-}++-- | 'v1beta1StorageVersionMigrationSpec' Lens+v1beta1StorageVersionMigrationSpecL :: Lens_' V1beta1StorageVersionMigration (Maybe V1beta1StorageVersionMigrationSpec)+v1beta1StorageVersionMigrationSpecL f V1beta1StorageVersionMigration{..} = (\v1beta1StorageVersionMigrationSpec -> V1beta1StorageVersionMigration { v1beta1StorageVersionMigrationSpec, ..} ) <$> f v1beta1StorageVersionMigrationSpec+{-# INLINE v1beta1StorageVersionMigrationSpecL #-}++-- | 'v1beta1StorageVersionMigrationStatus' Lens+v1beta1StorageVersionMigrationStatusL :: Lens_' V1beta1StorageVersionMigration (Maybe V1beta1StorageVersionMigrationStatus)+v1beta1StorageVersionMigrationStatusL f V1beta1StorageVersionMigration{..} = (\v1beta1StorageVersionMigrationStatus -> V1beta1StorageVersionMigration { v1beta1StorageVersionMigrationStatus, ..} ) <$> f v1beta1StorageVersionMigrationStatus+{-# INLINE v1beta1StorageVersionMigrationStatusL #-}++++-- * V1beta1StorageVersionMigrationList++-- | 'v1beta1StorageVersionMigrationListApiVersion' Lens+v1beta1StorageVersionMigrationListApiVersionL :: Lens_' V1beta1StorageVersionMigrationList (Maybe Text)+v1beta1StorageVersionMigrationListApiVersionL f V1beta1StorageVersionMigrationList{..} = (\v1beta1StorageVersionMigrationListApiVersion -> V1beta1StorageVersionMigrationList { v1beta1StorageVersionMigrationListApiVersion, ..} ) <$> f v1beta1StorageVersionMigrationListApiVersion+{-# INLINE v1beta1StorageVersionMigrationListApiVersionL #-}++-- | 'v1beta1StorageVersionMigrationListItems' Lens+v1beta1StorageVersionMigrationListItemsL :: Lens_' V1beta1StorageVersionMigrationList ([V1beta1StorageVersionMigration])+v1beta1StorageVersionMigrationListItemsL f V1beta1StorageVersionMigrationList{..} = (\v1beta1StorageVersionMigrationListItems -> V1beta1StorageVersionMigrationList { v1beta1StorageVersionMigrationListItems, ..} ) <$> f v1beta1StorageVersionMigrationListItems+{-# INLINE v1beta1StorageVersionMigrationListItemsL #-}++-- | 'v1beta1StorageVersionMigrationListKind' Lens+v1beta1StorageVersionMigrationListKindL :: Lens_' V1beta1StorageVersionMigrationList (Maybe Text)+v1beta1StorageVersionMigrationListKindL f V1beta1StorageVersionMigrationList{..} = (\v1beta1StorageVersionMigrationListKind -> V1beta1StorageVersionMigrationList { v1beta1StorageVersionMigrationListKind, ..} ) <$> f v1beta1StorageVersionMigrationListKind+{-# INLINE v1beta1StorageVersionMigrationListKindL #-}++-- | 'v1beta1StorageVersionMigrationListMetadata' Lens+v1beta1StorageVersionMigrationListMetadataL :: Lens_' V1beta1StorageVersionMigrationList (Maybe V1ListMeta)+v1beta1StorageVersionMigrationListMetadataL f V1beta1StorageVersionMigrationList{..} = (\v1beta1StorageVersionMigrationListMetadata -> V1beta1StorageVersionMigrationList { v1beta1StorageVersionMigrationListMetadata, ..} ) <$> f v1beta1StorageVersionMigrationListMetadata+{-# INLINE v1beta1StorageVersionMigrationListMetadataL #-}++++-- * V1beta1StorageVersionMigrationSpec++-- | 'v1beta1StorageVersionMigrationSpecResource' Lens+v1beta1StorageVersionMigrationSpecResourceL :: Lens_' V1beta1StorageVersionMigrationSpec (V1GroupResource)+v1beta1StorageVersionMigrationSpecResourceL f V1beta1StorageVersionMigrationSpec{..} = (\v1beta1StorageVersionMigrationSpecResource -> V1beta1StorageVersionMigrationSpec { v1beta1StorageVersionMigrationSpecResource, ..} ) <$> f v1beta1StorageVersionMigrationSpecResource+{-# INLINE v1beta1StorageVersionMigrationSpecResourceL #-}++++-- * V1beta1StorageVersionMigrationStatus++-- | 'v1beta1StorageVersionMigrationStatusConditions' Lens+v1beta1StorageVersionMigrationStatusConditionsL :: Lens_' V1beta1StorageVersionMigrationStatus (Maybe [V1Condition])+v1beta1StorageVersionMigrationStatusConditionsL f V1beta1StorageVersionMigrationStatus{..} = (\v1beta1StorageVersionMigrationStatusConditions -> V1beta1StorageVersionMigrationStatus { v1beta1StorageVersionMigrationStatusConditions, ..} ) <$> f v1beta1StorageVersionMigrationStatusConditions+{-# INLINE v1beta1StorageVersionMigrationStatusConditionsL #-}++-- | 'v1beta1StorageVersionMigrationStatusResourceVersion' Lens+v1beta1StorageVersionMigrationStatusResourceVersionL :: Lens_' V1beta1StorageVersionMigrationStatus (Maybe Text)+v1beta1StorageVersionMigrationStatusResourceVersionL f V1beta1StorageVersionMigrationStatus{..} = (\v1beta1StorageVersionMigrationStatusResourceVersion -> V1beta1StorageVersionMigrationStatus { v1beta1StorageVersionMigrationStatusResourceVersion, ..} ) <$> f v1beta1StorageVersionMigrationStatusResourceVersion+{-# INLINE v1beta1StorageVersionMigrationStatusResourceVersionL #-}
tests/Instances.hs view
@@ -637,6 +637,7 @@ <*> arbitraryReducedMaybe n -- v1CSIDriverSpecPodInfoOnMount :: Maybe Bool <*> arbitraryReducedMaybe n -- v1CSIDriverSpecRequiresRepublish :: Maybe Bool <*> arbitraryReducedMaybe n -- v1CSIDriverSpecSeLinuxMount :: Maybe Bool+ <*> arbitraryReducedMaybe n -- v1CSIDriverSpecServiceAccountTokenInSecrets :: Maybe Bool <*> arbitraryReducedMaybe n -- v1CSIDriverSpecStorageCapacity :: Maybe Bool <*> arbitraryReducedMaybe n -- v1CSIDriverSpecTokenRequests :: Maybe [StorageV1TokenRequest] <*> arbitraryReducedMaybe n -- v1CSIDriverSpecVolumeLifecycleModes :: Maybe [Text]@@ -1370,6 +1371,7 @@ V1CustomResourceDefinitionCondition <$> arbitraryReducedMaybe n -- v1CustomResourceDefinitionConditionLastTransitionTime :: Maybe DateTime <*> arbitraryReducedMaybe n -- v1CustomResourceDefinitionConditionMessage :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1CustomResourceDefinitionConditionObservedGeneration :: Maybe Integer <*> arbitraryReducedMaybe n -- v1CustomResourceDefinitionConditionReason :: Maybe Text <*> arbitrary -- v1CustomResourceDefinitionConditionStatus :: Text <*> arbitrary -- v1CustomResourceDefinitionConditionType :: Text@@ -1419,6 +1421,7 @@ V1CustomResourceDefinitionStatus <$> arbitraryReducedMaybe n -- v1CustomResourceDefinitionStatusAcceptedNames :: Maybe V1CustomResourceDefinitionNames <*> arbitraryReducedMaybe n -- v1CustomResourceDefinitionStatusConditions :: Maybe [V1CustomResourceDefinitionCondition]+ <*> arbitraryReducedMaybe n -- v1CustomResourceDefinitionStatusObservedGeneration :: Maybe Integer <*> arbitraryReducedMaybe n -- v1CustomResourceDefinitionStatusStoredVersions :: Maybe [Text] instance Arbitrary V1CustomResourceDefinitionVersion where@@ -2328,6 +2331,15 @@ <*> arbitrary -- v1GlusterfsVolumeSourcePath :: Text <*> arbitraryReducedMaybe n -- v1GlusterfsVolumeSourceReadOnly :: Maybe Bool +instance Arbitrary V1GroupResource where+ arbitrary = sized genV1GroupResource++genV1GroupResource :: Int -> Gen V1GroupResource+genV1GroupResource n =+ V1GroupResource+ <$> arbitrary -- v1GroupResourceGroup :: Text+ <*> arbitrary -- v1GroupResourceResource :: Text+ instance Arbitrary V1GroupSubject where arbitrary = sized genV1GroupSubject @@ -3454,6 +3466,7 @@ <*> arbitraryReducedMaybe n -- v1NodeStatusConditions :: Maybe [V1NodeCondition] <*> arbitraryReducedMaybe n -- v1NodeStatusConfig :: Maybe V1NodeConfigStatus <*> arbitraryReducedMaybe n -- v1NodeStatusDaemonEndpoints :: Maybe V1NodeDaemonEndpoints+ <*> arbitraryReducedMaybe n -- v1NodeStatusDeclaredFeatures :: Maybe [Text] <*> arbitraryReducedMaybe n -- v1NodeStatusFeatures :: Maybe V1NodeFeatures <*> arbitraryReducedMaybe n -- v1NodeStatusImages :: Maybe [V1ContainerImage] <*> arbitraryReducedMaybe n -- v1NodeStatusNodeInfo :: Maybe V1NodeSystemInfo@@ -3842,6 +3855,7 @@ <*> arbitrary -- v1PodCertificateProjectionKeyType :: Text <*> arbitraryReducedMaybe n -- v1PodCertificateProjectionMaxExpirationSeconds :: Maybe Int <*> arbitrary -- v1PodCertificateProjectionSignerName :: Text+ <*> arbitraryReducedMaybe n -- v1PodCertificateProjectionUserAnnotations :: Maybe (Map.Map String Text) instance Arbitrary V1PodCondition where arbitrary = sized genV1PodCondition@@ -3957,7 +3971,7 @@ genV1PodFailurePolicyOnPodConditionsPattern :: Int -> Gen V1PodFailurePolicyOnPodConditionsPattern genV1PodFailurePolicyOnPodConditionsPattern n = V1PodFailurePolicyOnPodConditionsPattern- <$> arbitrary -- v1PodFailurePolicyOnPodConditionsPatternStatus :: Text+ <$> arbitraryReducedMaybe n -- v1PodFailurePolicyOnPodConditionsPatternStatus :: Maybe Text <*> arbitrary -- v1PodFailurePolicyOnPodConditionsPatternType :: Text instance Arbitrary V1PodFailurePolicyRule where@@ -4099,6 +4113,7 @@ <*> arbitraryReducedMaybe n -- v1PodSpecTolerations :: Maybe [V1Toleration] <*> arbitraryReducedMaybe n -- v1PodSpecTopologySpreadConstraints :: Maybe [V1TopologySpreadConstraint] <*> arbitraryReducedMaybe n -- v1PodSpecVolumes :: Maybe [V1Volume]+ <*> arbitraryReducedMaybe n -- v1PodSpecWorkloadRef :: Maybe V1WorkloadReference instance Arbitrary V1PodStatus where arbitrary = sized genV1PodStatus@@ -4106,7 +4121,8 @@ genV1PodStatus :: Int -> Gen V1PodStatus genV1PodStatus n = V1PodStatus- <$> arbitraryReducedMaybe n -- v1PodStatusConditions :: Maybe [V1PodCondition]+ <$> arbitraryReducedMaybe n -- v1PodStatusAllocatedResources :: Maybe (Map.Map String Quantity)+ <*> arbitraryReducedMaybe n -- v1PodStatusConditions :: Maybe [V1PodCondition] <*> arbitraryReducedMaybe n -- v1PodStatusContainerStatuses :: Maybe [V1ContainerStatus] <*> arbitraryReducedMaybe n -- v1PodStatusEphemeralContainerStatuses :: Maybe [V1ContainerStatus] <*> arbitraryReducedMaybe n -- v1PodStatusExtendedResourceClaimStatus :: Maybe V1PodExtendedResourceClaimStatus@@ -4123,6 +4139,7 @@ <*> arbitraryReducedMaybe n -- v1PodStatusReason :: Maybe Text <*> arbitraryReducedMaybe n -- v1PodStatusResize :: Maybe Text <*> arbitraryReducedMaybe n -- v1PodStatusResourceClaimStatuses :: Maybe [V1PodResourceClaimStatus]+ <*> arbitraryReducedMaybe n -- v1PodStatusResources :: Maybe V1ResourceRequirements <*> arbitraryReducedMaybe n -- v1PodStatusStartTime :: Maybe DateTime instance Arbitrary V1PodTemplate where@@ -6143,6 +6160,16 @@ <*> arbitraryReducedMaybe n -- v1WindowsSecurityContextOptionsHostProcess :: Maybe Bool <*> arbitraryReducedMaybe n -- v1WindowsSecurityContextOptionsRunAsUserName :: Maybe Text +instance Arbitrary V1WorkloadReference where+ arbitrary = sized genV1WorkloadReference++genV1WorkloadReference :: Int -> Gen V1WorkloadReference+genV1WorkloadReference n =+ V1WorkloadReference+ <$> arbitrary -- v1WorkloadReferenceName :: Text+ <*> arbitrary -- v1WorkloadReferencePodGroup :: Text+ <*> arbitraryReducedMaybe n -- v1WorkloadReferencePodGroupReplicaKey :: Maybe Text+ instance Arbitrary V1alpha1ApplyConfiguration where arbitrary = sized genV1alpha1ApplyConfiguration @@ -6182,15 +6209,13 @@ <$> arbitraryReducedMaybe n -- v1alpha1ClusterTrustBundleSpecSignerName :: Maybe Text <*> arbitrary -- v1alpha1ClusterTrustBundleSpecTrustBundle :: Text -instance Arbitrary V1alpha1GroupVersionResource where- arbitrary = sized genV1alpha1GroupVersionResource+instance Arbitrary V1alpha1GangSchedulingPolicy where+ arbitrary = sized genV1alpha1GangSchedulingPolicy -genV1alpha1GroupVersionResource :: Int -> Gen V1alpha1GroupVersionResource-genV1alpha1GroupVersionResource n =- V1alpha1GroupVersionResource- <$> arbitraryReducedMaybe n -- v1alpha1GroupVersionResourceGroup :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1GroupVersionResourceResource :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1GroupVersionResourceVersion :: Maybe Text+genV1alpha1GangSchedulingPolicy :: Int -> Gen V1alpha1GangSchedulingPolicy+genV1alpha1GangSchedulingPolicy n =+ V1alpha1GangSchedulingPolicy+ <$> arbitrary -- v1alpha1GangSchedulingPolicyMinCount :: Int instance Arbitrary V1alpha1JSONPatch where arbitrary = sized genV1alpha1JSONPatch@@ -6221,18 +6246,6 @@ <*> arbitraryReducedMaybe n -- v1alpha1MatchResourcesObjectSelector :: Maybe V1LabelSelector <*> arbitraryReducedMaybe n -- v1alpha1MatchResourcesResourceRules :: Maybe [V1alpha1NamedRuleWithOperations] -instance Arbitrary V1alpha1MigrationCondition where- arbitrary = sized genV1alpha1MigrationCondition--genV1alpha1MigrationCondition :: Int -> Gen V1alpha1MigrationCondition-genV1alpha1MigrationCondition n =- V1alpha1MigrationCondition- <$> arbitraryReducedMaybe n -- v1alpha1MigrationConditionLastUpdateTime :: Maybe DateTime- <*> arbitraryReducedMaybe n -- v1alpha1MigrationConditionMessage :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1MigrationConditionReason :: Maybe Text- <*> arbitrary -- v1alpha1MigrationConditionStatus :: Text- <*> arbitrary -- v1alpha1MigrationConditionType :: Text- instance Arbitrary V1alpha1MutatingAdmissionPolicy where arbitrary = sized genV1alpha1MutatingAdmissionPolicy @@ -6344,57 +6357,23 @@ <*> arbitraryReducedMaybe n -- v1alpha1ParamRefParameterNotFoundAction :: Maybe Text <*> arbitraryReducedMaybe n -- v1alpha1ParamRefSelector :: Maybe V1LabelSelector -instance Arbitrary V1alpha1PodCertificateRequest where- arbitrary = sized genV1alpha1PodCertificateRequest--genV1alpha1PodCertificateRequest :: Int -> Gen V1alpha1PodCertificateRequest-genV1alpha1PodCertificateRequest n =- V1alpha1PodCertificateRequest- <$> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestApiVersion :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestKind :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestMetadata :: Maybe V1ObjectMeta- <*> arbitraryReduced n -- v1alpha1PodCertificateRequestSpec :: V1alpha1PodCertificateRequestSpec- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestStatus :: Maybe V1alpha1PodCertificateRequestStatus- -instance Arbitrary V1alpha1PodCertificateRequestList where- arbitrary = sized genV1alpha1PodCertificateRequestList--genV1alpha1PodCertificateRequestList :: Int -> Gen V1alpha1PodCertificateRequestList-genV1alpha1PodCertificateRequestList n =- V1alpha1PodCertificateRequestList- <$> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestListApiVersion :: Maybe Text- <*> arbitraryReduced n -- v1alpha1PodCertificateRequestListItems :: [V1alpha1PodCertificateRequest]- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestListKind :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestListMetadata :: Maybe V1ListMeta- -instance Arbitrary V1alpha1PodCertificateRequestSpec where- arbitrary = sized genV1alpha1PodCertificateRequestSpec+instance Arbitrary V1alpha1PodGroup where+ arbitrary = sized genV1alpha1PodGroup -genV1alpha1PodCertificateRequestSpec :: Int -> Gen V1alpha1PodCertificateRequestSpec-genV1alpha1PodCertificateRequestSpec n =- V1alpha1PodCertificateRequestSpec- <$> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestSpecMaxExpirationSeconds :: Maybe Int- <*> arbitrary -- v1alpha1PodCertificateRequestSpecNodeName :: Text- <*> arbitrary -- v1alpha1PodCertificateRequestSpecNodeUid :: Text- <*> arbitraryReduced n -- v1alpha1PodCertificateRequestSpecPkixPublicKey :: ByteArray- <*> arbitrary -- v1alpha1PodCertificateRequestSpecPodName :: Text- <*> arbitrary -- v1alpha1PodCertificateRequestSpecPodUid :: Text- <*> arbitraryReduced n -- v1alpha1PodCertificateRequestSpecProofOfPossession :: ByteArray- <*> arbitrary -- v1alpha1PodCertificateRequestSpecServiceAccountName :: Text- <*> arbitrary -- v1alpha1PodCertificateRequestSpecServiceAccountUid :: Text- <*> arbitrary -- v1alpha1PodCertificateRequestSpecSignerName :: Text+genV1alpha1PodGroup :: Int -> Gen V1alpha1PodGroup+genV1alpha1PodGroup n =+ V1alpha1PodGroup+ <$> arbitrary -- v1alpha1PodGroupName :: Text+ <*> arbitraryReduced n -- v1alpha1PodGroupPolicy :: V1alpha1PodGroupPolicy -instance Arbitrary V1alpha1PodCertificateRequestStatus where- arbitrary = sized genV1alpha1PodCertificateRequestStatus+instance Arbitrary V1alpha1PodGroupPolicy where+ arbitrary = sized genV1alpha1PodGroupPolicy -genV1alpha1PodCertificateRequestStatus :: Int -> Gen V1alpha1PodCertificateRequestStatus-genV1alpha1PodCertificateRequestStatus n =- V1alpha1PodCertificateRequestStatus- <$> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestStatusBeginRefreshAt :: Maybe DateTime- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestStatusCertificateChain :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestStatusConditions :: Maybe [V1Condition]- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestStatusNotAfter :: Maybe DateTime- <*> arbitraryReducedMaybe n -- v1alpha1PodCertificateRequestStatusNotBefore :: Maybe DateTime+genV1alpha1PodGroupPolicy :: Int -> Gen V1alpha1PodGroupPolicy+genV1alpha1PodGroupPolicy n =+ V1alpha1PodGroupPolicy+ <$> arbitraryReducedMaybeValue n -- v1alpha1PodGroupPolicyBasic :: Maybe A.Value+ <*> arbitraryReducedMaybe n -- v1alpha1PodGroupPolicyGang :: Maybe V1alpha1GangSchedulingPolicy instance Arbitrary V1alpha1ServerStorageVersion where arbitrary = sized genV1alpha1ServerStorageVersion@@ -6443,47 +6422,6 @@ <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionListKind :: Maybe Text <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionListMetadata :: Maybe V1ListMeta -instance Arbitrary V1alpha1StorageVersionMigration where- arbitrary = sized genV1alpha1StorageVersionMigration--genV1alpha1StorageVersionMigration :: Int -> Gen V1alpha1StorageVersionMigration-genV1alpha1StorageVersionMigration n =- V1alpha1StorageVersionMigration- <$> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationApiVersion :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationKind :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationMetadata :: Maybe V1ObjectMeta- <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationSpec :: Maybe V1alpha1StorageVersionMigrationSpec- <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationStatus :: Maybe V1alpha1StorageVersionMigrationStatus- -instance Arbitrary V1alpha1StorageVersionMigrationList where- arbitrary = sized genV1alpha1StorageVersionMigrationList--genV1alpha1StorageVersionMigrationList :: Int -> Gen V1alpha1StorageVersionMigrationList-genV1alpha1StorageVersionMigrationList n =- V1alpha1StorageVersionMigrationList- <$> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationListApiVersion :: Maybe Text- <*> arbitraryReduced n -- v1alpha1StorageVersionMigrationListItems :: [V1alpha1StorageVersionMigration]- <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationListKind :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationListMetadata :: Maybe V1ListMeta- -instance Arbitrary V1alpha1StorageVersionMigrationSpec where- arbitrary = sized genV1alpha1StorageVersionMigrationSpec--genV1alpha1StorageVersionMigrationSpec :: Int -> Gen V1alpha1StorageVersionMigrationSpec-genV1alpha1StorageVersionMigrationSpec n =- V1alpha1StorageVersionMigrationSpec- <$> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationSpecContinueToken :: Maybe Text- <*> arbitraryReduced n -- v1alpha1StorageVersionMigrationSpecResource :: V1alpha1GroupVersionResource- -instance Arbitrary V1alpha1StorageVersionMigrationStatus where- arbitrary = sized genV1alpha1StorageVersionMigrationStatus--genV1alpha1StorageVersionMigrationStatus :: Int -> Gen V1alpha1StorageVersionMigrationStatus-genV1alpha1StorageVersionMigrationStatus n =- V1alpha1StorageVersionMigrationStatus- <$> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationStatusConditions :: Maybe [V1alpha1MigrationCondition]- <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionMigrationStatusResourceVersion :: Maybe Text- instance Arbitrary V1alpha1StorageVersionStatus where arbitrary = sized genV1alpha1StorageVersionStatus @@ -6494,6 +6432,16 @@ <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionStatusConditions :: Maybe [V1alpha1StorageVersionCondition] <*> arbitraryReducedMaybe n -- v1alpha1StorageVersionStatusStorageVersions :: Maybe [V1alpha1ServerStorageVersion] +instance Arbitrary V1alpha1TypedLocalObjectReference where+ arbitrary = sized genV1alpha1TypedLocalObjectReference++genV1alpha1TypedLocalObjectReference :: Int -> Gen V1alpha1TypedLocalObjectReference+genV1alpha1TypedLocalObjectReference n =+ V1alpha1TypedLocalObjectReference+ <$> arbitraryReducedMaybe n -- v1alpha1TypedLocalObjectReferenceApiGroup :: Maybe Text+ <*> arbitrary -- v1alpha1TypedLocalObjectReferenceKind :: Text+ <*> arbitrary -- v1alpha1TypedLocalObjectReferenceName :: Text+ instance Arbitrary V1alpha1Variable where arbitrary = sized genV1alpha1Variable @@ -6503,29 +6451,37 @@ <$> arbitrary -- v1alpha1VariableExpression :: Text <*> arbitrary -- v1alpha1VariableName :: Text -instance Arbitrary V1alpha1VolumeAttributesClass where- arbitrary = sized genV1alpha1VolumeAttributesClass+instance Arbitrary V1alpha1Workload where+ arbitrary = sized genV1alpha1Workload -genV1alpha1VolumeAttributesClass :: Int -> Gen V1alpha1VolumeAttributesClass-genV1alpha1VolumeAttributesClass n =- V1alpha1VolumeAttributesClass- <$> arbitraryReducedMaybe n -- v1alpha1VolumeAttributesClassApiVersion :: Maybe Text- <*> arbitrary -- v1alpha1VolumeAttributesClassDriverName :: Text- <*> arbitraryReducedMaybe n -- v1alpha1VolumeAttributesClassKind :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1VolumeAttributesClassMetadata :: Maybe V1ObjectMeta- <*> arbitraryReducedMaybe n -- v1alpha1VolumeAttributesClassParameters :: Maybe (Map.Map String Text)+genV1alpha1Workload :: Int -> Gen V1alpha1Workload+genV1alpha1Workload n =+ V1alpha1Workload+ <$> arbitraryReducedMaybe n -- v1alpha1WorkloadApiVersion :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1alpha1WorkloadKind :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1alpha1WorkloadMetadata :: Maybe V1ObjectMeta+ <*> arbitraryReduced n -- v1alpha1WorkloadSpec :: V1alpha1WorkloadSpec -instance Arbitrary V1alpha1VolumeAttributesClassList where- arbitrary = sized genV1alpha1VolumeAttributesClassList+instance Arbitrary V1alpha1WorkloadList where+ arbitrary = sized genV1alpha1WorkloadList -genV1alpha1VolumeAttributesClassList :: Int -> Gen V1alpha1VolumeAttributesClassList-genV1alpha1VolumeAttributesClassList n =- V1alpha1VolumeAttributesClassList- <$> arbitraryReducedMaybe n -- v1alpha1VolumeAttributesClassListApiVersion :: Maybe Text- <*> arbitraryReduced n -- v1alpha1VolumeAttributesClassListItems :: [V1alpha1VolumeAttributesClass]- <*> arbitraryReducedMaybe n -- v1alpha1VolumeAttributesClassListKind :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha1VolumeAttributesClassListMetadata :: Maybe V1ListMeta+genV1alpha1WorkloadList :: Int -> Gen V1alpha1WorkloadList+genV1alpha1WorkloadList n =+ V1alpha1WorkloadList+ <$> arbitraryReducedMaybe n -- v1alpha1WorkloadListApiVersion :: Maybe Text+ <*> arbitraryReduced n -- v1alpha1WorkloadListItems :: [V1alpha1Workload]+ <*> arbitraryReducedMaybe n -- v1alpha1WorkloadListKind :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1alpha1WorkloadListMetadata :: Maybe V1ListMeta +instance Arbitrary V1alpha1WorkloadSpec where+ arbitrary = sized genV1alpha1WorkloadSpec++genV1alpha1WorkloadSpec :: Int -> Gen V1alpha1WorkloadSpec+genV1alpha1WorkloadSpec n =+ V1alpha1WorkloadSpec+ <$> arbitraryReducedMaybe n -- v1alpha1WorkloadSpecControllerRef :: Maybe V1alpha1TypedLocalObjectReference+ <*> arbitraryReduced n -- v1alpha1WorkloadSpecPodGroups :: [V1alpha1PodGroup]+ instance Arbitrary V1alpha2LeaseCandidate where arbitrary = sized genV1alpha2LeaseCandidate @@ -6561,22 +6517,6 @@ <*> arbitraryReducedMaybe n -- v1alpha2LeaseCandidateSpecRenewTime :: Maybe DateTime <*> arbitrary -- v1alpha2LeaseCandidateSpecStrategy :: Text -instance Arbitrary V1alpha3CELDeviceSelector where- arbitrary = sized genV1alpha3CELDeviceSelector--genV1alpha3CELDeviceSelector :: Int -> Gen V1alpha3CELDeviceSelector-genV1alpha3CELDeviceSelector n =- V1alpha3CELDeviceSelector- <$> arbitrary -- v1alpha3CELDeviceSelectorExpression :: Text- -instance Arbitrary V1alpha3DeviceSelector where- arbitrary = sized genV1alpha3DeviceSelector--genV1alpha3DeviceSelector :: Int -> Gen V1alpha3DeviceSelector-genV1alpha3DeviceSelector n =- V1alpha3DeviceSelector- <$> arbitraryReducedMaybe n -- v1alpha3DeviceSelectorCel :: Maybe V1alpha3CELDeviceSelector- instance Arbitrary V1alpha3DeviceTaint where arbitrary = sized genV1alpha3DeviceTaint @@ -6598,6 +6538,7 @@ <*> arbitraryReducedMaybe n -- v1alpha3DeviceTaintRuleKind :: Maybe Text <*> arbitraryReducedMaybe n -- v1alpha3DeviceTaintRuleMetadata :: Maybe V1ObjectMeta <*> arbitraryReduced n -- v1alpha3DeviceTaintRuleSpec :: V1alpha3DeviceTaintRuleSpec+ <*> arbitraryReducedMaybe n -- v1alpha3DeviceTaintRuleStatus :: Maybe V1alpha3DeviceTaintRuleStatus instance Arbitrary V1alpha3DeviceTaintRuleList where arbitrary = sized genV1alpha3DeviceTaintRuleList@@ -6619,6 +6560,14 @@ <$> arbitraryReducedMaybe n -- v1alpha3DeviceTaintRuleSpecDeviceSelector :: Maybe V1alpha3DeviceTaintSelector <*> arbitraryReduced n -- v1alpha3DeviceTaintRuleSpecTaint :: V1alpha3DeviceTaint +instance Arbitrary V1alpha3DeviceTaintRuleStatus where+ arbitrary = sized genV1alpha3DeviceTaintRuleStatus++genV1alpha3DeviceTaintRuleStatus :: Int -> Gen V1alpha3DeviceTaintRuleStatus+genV1alpha3DeviceTaintRuleStatus n =+ V1alpha3DeviceTaintRuleStatus+ <$> arbitraryReducedMaybe n -- v1alpha3DeviceTaintRuleStatusConditions :: Maybe [V1Condition]+ instance Arbitrary V1alpha3DeviceTaintSelector where arbitrary = sized genV1alpha3DeviceTaintSelector @@ -6626,10 +6575,8 @@ genV1alpha3DeviceTaintSelector n = V1alpha3DeviceTaintSelector <$> arbitraryReducedMaybe n -- v1alpha3DeviceTaintSelectorDevice :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha3DeviceTaintSelectorDeviceClassName :: Maybe Text <*> arbitraryReducedMaybe n -- v1alpha3DeviceTaintSelectorDriver :: Maybe Text <*> arbitraryReducedMaybe n -- v1alpha3DeviceTaintSelectorPool :: Maybe Text- <*> arbitraryReducedMaybe n -- v1alpha3DeviceTaintSelectorSelectors :: Maybe [V1alpha3DeviceSelector] instance Arbitrary V1beta1AllocatedDeviceStatus where arbitrary = sized genV1beta1AllocatedDeviceStatus@@ -7204,6 +7151,59 @@ <*> arbitraryReducedMaybe n -- v1beta1ParentReferenceNamespace :: Maybe Text <*> arbitrary -- v1beta1ParentReferenceResource :: Text +instance Arbitrary V1beta1PodCertificateRequest where+ arbitrary = sized genV1beta1PodCertificateRequest++genV1beta1PodCertificateRequest :: Int -> Gen V1beta1PodCertificateRequest+genV1beta1PodCertificateRequest n =+ V1beta1PodCertificateRequest+ <$> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestApiVersion :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestKind :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestMetadata :: Maybe V1ObjectMeta+ <*> arbitraryReduced n -- v1beta1PodCertificateRequestSpec :: V1beta1PodCertificateRequestSpec+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestStatus :: Maybe V1beta1PodCertificateRequestStatus+ +instance Arbitrary V1beta1PodCertificateRequestList where+ arbitrary = sized genV1beta1PodCertificateRequestList++genV1beta1PodCertificateRequestList :: Int -> Gen V1beta1PodCertificateRequestList+genV1beta1PodCertificateRequestList n =+ V1beta1PodCertificateRequestList+ <$> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestListApiVersion :: Maybe Text+ <*> arbitraryReduced n -- v1beta1PodCertificateRequestListItems :: [V1beta1PodCertificateRequest]+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestListKind :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestListMetadata :: Maybe V1ListMeta+ +instance Arbitrary V1beta1PodCertificateRequestSpec where+ arbitrary = sized genV1beta1PodCertificateRequestSpec++genV1beta1PodCertificateRequestSpec :: Int -> Gen V1beta1PodCertificateRequestSpec+genV1beta1PodCertificateRequestSpec n =+ V1beta1PodCertificateRequestSpec+ <$> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestSpecMaxExpirationSeconds :: Maybe Int+ <*> arbitrary -- v1beta1PodCertificateRequestSpecNodeName :: Text+ <*> arbitrary -- v1beta1PodCertificateRequestSpecNodeUid :: Text+ <*> arbitraryReduced n -- v1beta1PodCertificateRequestSpecPkixPublicKey :: ByteArray+ <*> arbitrary -- v1beta1PodCertificateRequestSpecPodName :: Text+ <*> arbitrary -- v1beta1PodCertificateRequestSpecPodUid :: Text+ <*> arbitraryReduced n -- v1beta1PodCertificateRequestSpecProofOfPossession :: ByteArray+ <*> arbitrary -- v1beta1PodCertificateRequestSpecServiceAccountName :: Text+ <*> arbitrary -- v1beta1PodCertificateRequestSpecServiceAccountUid :: Text+ <*> arbitrary -- v1beta1PodCertificateRequestSpecSignerName :: Text+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestSpecUnverifiedUserAnnotations :: Maybe (Map.Map String Text)+ +instance Arbitrary V1beta1PodCertificateRequestStatus where+ arbitrary = sized genV1beta1PodCertificateRequestStatus++genV1beta1PodCertificateRequestStatus :: Int -> Gen V1beta1PodCertificateRequestStatus+genV1beta1PodCertificateRequestStatus n =+ V1beta1PodCertificateRequestStatus+ <$> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestStatusBeginRefreshAt :: Maybe DateTime+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestStatusCertificateChain :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestStatusConditions :: Maybe [V1Condition]+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestStatusNotAfter :: Maybe DateTime+ <*> arbitraryReducedMaybe n -- v1beta1PodCertificateRequestStatusNotBefore :: Maybe DateTime+ instance Arbitrary V1beta1ResourceClaim where arbitrary = sized genV1beta1ResourceClaim @@ -7372,6 +7372,46 @@ genV1beta1ServiceCIDRStatus n = V1beta1ServiceCIDRStatus <$> arbitraryReducedMaybe n -- v1beta1ServiceCIDRStatusConditions :: Maybe [V1Condition]+ +instance Arbitrary V1beta1StorageVersionMigration where+ arbitrary = sized genV1beta1StorageVersionMigration++genV1beta1StorageVersionMigration :: Int -> Gen V1beta1StorageVersionMigration+genV1beta1StorageVersionMigration n =+ V1beta1StorageVersionMigration+ <$> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationApiVersion :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationKind :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationMetadata :: Maybe V1ObjectMeta+ <*> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationSpec :: Maybe V1beta1StorageVersionMigrationSpec+ <*> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationStatus :: Maybe V1beta1StorageVersionMigrationStatus+ +instance Arbitrary V1beta1StorageVersionMigrationList where+ arbitrary = sized genV1beta1StorageVersionMigrationList++genV1beta1StorageVersionMigrationList :: Int -> Gen V1beta1StorageVersionMigrationList+genV1beta1StorageVersionMigrationList n =+ V1beta1StorageVersionMigrationList+ <$> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationListApiVersion :: Maybe Text+ <*> arbitraryReduced n -- v1beta1StorageVersionMigrationListItems :: [V1beta1StorageVersionMigration]+ <*> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationListKind :: Maybe Text+ <*> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationListMetadata :: Maybe V1ListMeta+ +instance Arbitrary V1beta1StorageVersionMigrationSpec where+ arbitrary = sized genV1beta1StorageVersionMigrationSpec++genV1beta1StorageVersionMigrationSpec :: Int -> Gen V1beta1StorageVersionMigrationSpec+genV1beta1StorageVersionMigrationSpec n =+ V1beta1StorageVersionMigrationSpec+ <$> arbitraryReduced n -- v1beta1StorageVersionMigrationSpecResource :: V1GroupResource+ +instance Arbitrary V1beta1StorageVersionMigrationStatus where+ arbitrary = sized genV1beta1StorageVersionMigrationStatus++genV1beta1StorageVersionMigrationStatus :: Int -> Gen V1beta1StorageVersionMigrationStatus+genV1beta1StorageVersionMigrationStatus n =+ V1beta1StorageVersionMigrationStatus+ <$> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationStatusConditions :: Maybe [V1Condition]+ <*> arbitraryReducedMaybe n -- v1beta1StorageVersionMigrationStatusResourceVersion :: Maybe Text instance Arbitrary V1beta1Variable where arbitrary = sized genV1beta1Variable
tests/Test.hs view
@@ -217,6 +217,7 @@ propMimeEq MimeJSON (Proxy :: Proxy V1GitRepoVolumeSource) propMimeEq MimeJSON (Proxy :: Proxy V1GlusterfsPersistentVolumeSource) propMimeEq MimeJSON (Proxy :: Proxy V1GlusterfsVolumeSource)+ propMimeEq MimeJSON (Proxy :: Proxy V1GroupResource) propMimeEq MimeJSON (Proxy :: Proxy V1GroupSubject) propMimeEq MimeJSON (Proxy :: Proxy V1GroupVersionForDiscovery) propMimeEq MimeJSON (Proxy :: Proxy V1HTTPGetAction)@@ -553,15 +554,15 @@ propMimeEq MimeJSON (Proxy :: Proxy V1WebhookConversion) propMimeEq MimeJSON (Proxy :: Proxy V1WeightedPodAffinityTerm) propMimeEq MimeJSON (Proxy :: Proxy V1WindowsSecurityContextOptions)+ propMimeEq MimeJSON (Proxy :: Proxy V1WorkloadReference) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1ApplyConfiguration) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1ClusterTrustBundle) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1ClusterTrustBundleList) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1ClusterTrustBundleSpec)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1GroupVersionResource)+ propMimeEq MimeJSON (Proxy :: Proxy V1alpha1GangSchedulingPolicy) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1JSONPatch) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1MatchCondition) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1MatchResources)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1MigrationCondition) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1MutatingAdmissionPolicy) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1MutatingAdmissionPolicyBinding) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1MutatingAdmissionPolicyBindingList)@@ -572,31 +573,26 @@ propMimeEq MimeJSON (Proxy :: Proxy V1alpha1NamedRuleWithOperations) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1ParamKind) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1ParamRef)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1PodCertificateRequest)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1PodCertificateRequestList)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1PodCertificateRequestSpec)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1PodCertificateRequestStatus)+ propMimeEq MimeJSON (Proxy :: Proxy V1alpha1PodGroup)+ propMimeEq MimeJSON (Proxy :: Proxy V1alpha1PodGroupPolicy) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1ServerStorageVersion) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1StorageVersion) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1StorageVersionCondition) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1StorageVersionList)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1StorageVersionMigration)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1StorageVersionMigrationList)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1StorageVersionMigrationSpec)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1StorageVersionMigrationStatus) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1StorageVersionStatus)+ propMimeEq MimeJSON (Proxy :: Proxy V1alpha1TypedLocalObjectReference) propMimeEq MimeJSON (Proxy :: Proxy V1alpha1Variable)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1VolumeAttributesClass)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha1VolumeAttributesClassList)+ propMimeEq MimeJSON (Proxy :: Proxy V1alpha1Workload)+ propMimeEq MimeJSON (Proxy :: Proxy V1alpha1WorkloadList)+ propMimeEq MimeJSON (Proxy :: Proxy V1alpha1WorkloadSpec) propMimeEq MimeJSON (Proxy :: Proxy V1alpha2LeaseCandidate) propMimeEq MimeJSON (Proxy :: Proxy V1alpha2LeaseCandidateList) propMimeEq MimeJSON (Proxy :: Proxy V1alpha2LeaseCandidateSpec)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha3CELDeviceSelector)- propMimeEq MimeJSON (Proxy :: Proxy V1alpha3DeviceSelector) propMimeEq MimeJSON (Proxy :: Proxy V1alpha3DeviceTaint) propMimeEq MimeJSON (Proxy :: Proxy V1alpha3DeviceTaintRule) propMimeEq MimeJSON (Proxy :: Proxy V1alpha3DeviceTaintRuleList) propMimeEq MimeJSON (Proxy :: Proxy V1alpha3DeviceTaintRuleSpec)+ propMimeEq MimeJSON (Proxy :: Proxy V1alpha3DeviceTaintRuleStatus) propMimeEq MimeJSON (Proxy :: Proxy V1alpha3DeviceTaintSelector) propMimeEq MimeJSON (Proxy :: Proxy V1beta1AllocatedDeviceStatus) propMimeEq MimeJSON (Proxy :: Proxy V1beta1AllocationResult)@@ -652,6 +648,10 @@ propMimeEq MimeJSON (Proxy :: Proxy V1beta1ParamKind) propMimeEq MimeJSON (Proxy :: Proxy V1beta1ParamRef) propMimeEq MimeJSON (Proxy :: Proxy V1beta1ParentReference)+ propMimeEq MimeJSON (Proxy :: Proxy V1beta1PodCertificateRequest)+ propMimeEq MimeJSON (Proxy :: Proxy V1beta1PodCertificateRequestList)+ propMimeEq MimeJSON (Proxy :: Proxy V1beta1PodCertificateRequestSpec)+ propMimeEq MimeJSON (Proxy :: Proxy V1beta1PodCertificateRequestStatus) propMimeEq MimeJSON (Proxy :: Proxy V1beta1ResourceClaim) propMimeEq MimeJSON (Proxy :: Proxy V1beta1ResourceClaimConsumerReference) propMimeEq MimeJSON (Proxy :: Proxy V1beta1ResourceClaimList)@@ -668,6 +668,10 @@ propMimeEq MimeJSON (Proxy :: Proxy V1beta1ServiceCIDRList) propMimeEq MimeJSON (Proxy :: Proxy V1beta1ServiceCIDRSpec) propMimeEq MimeJSON (Proxy :: Proxy V1beta1ServiceCIDRStatus)+ propMimeEq MimeJSON (Proxy :: Proxy V1beta1StorageVersionMigration)+ propMimeEq MimeJSON (Proxy :: Proxy V1beta1StorageVersionMigrationList)+ propMimeEq MimeJSON (Proxy :: Proxy V1beta1StorageVersionMigrationSpec)+ propMimeEq MimeJSON (Proxy :: Proxy V1beta1StorageVersionMigrationStatus) propMimeEq MimeJSON (Proxy :: Proxy V1beta1Variable) propMimeEq MimeJSON (Proxy :: Proxy V1beta1VolumeAttributesClass) propMimeEq MimeJSON (Proxy :: Proxy V1beta1VolumeAttributesClassList)