content: {-
     Kubernetes
  
     No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  
     OpenAPI Version: 3.0.1
     Kubernetes API version: release-1.25
     Generated by OpenAPI Generator (https://openapi-generator.tech)
  -}
  
  {-|
  Module : Kubernetes.OpenAPI.API.FlowcontrolApiserverV1beta2
  -}
  
  {-# 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.FlowcontrolApiserverV1beta2 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
  
  
  -- ** FlowcontrolApiserverV1beta2
  
  -- *** createFlowSchema
  
  -- | @POST \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas@
  -- 
  -- create a FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  createFlowSchema
    :: (Consumes CreateFlowSchema contentType, MimeRender contentType V1beta2FlowSchema)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> V1beta2FlowSchema -- ^ "body"
    -> KubernetesRequest CreateFlowSchema contentType V1beta2FlowSchema accept
  createFlowSchema _  _ body =
    _mkRequest "POST" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data CreateFlowSchema 
  instance HasBodyParam CreateFlowSchema V1beta2FlowSchema 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam CreateFlowSchema 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 CreateFlowSchema 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 CreateFlowSchema 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 CreateFlowSchema FieldValidation where
    applyOptionalParam req (FieldValidation xs) =
      req `addQuery` toQuery ("fieldValidation", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes CreateFlowSchema mtype
  
  -- | @application/json@
  instance Produces CreateFlowSchema MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces CreateFlowSchema MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces CreateFlowSchema MimeYaml
  
  
  -- *** createPriorityLevelConfiguration
  
  -- | @POST \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations@
  -- 
  -- create a PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  createPriorityLevelConfiguration
    :: (Consumes CreatePriorityLevelConfiguration contentType, MimeRender contentType V1beta2PriorityLevelConfiguration)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> V1beta2PriorityLevelConfiguration -- ^ "body"
    -> KubernetesRequest CreatePriorityLevelConfiguration contentType V1beta2PriorityLevelConfiguration accept
  createPriorityLevelConfiguration _  _ body =
    _mkRequest "POST" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data CreatePriorityLevelConfiguration 
  instance HasBodyParam CreatePriorityLevelConfiguration V1beta2PriorityLevelConfiguration 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam CreatePriorityLevelConfiguration 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 CreatePriorityLevelConfiguration 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 CreatePriorityLevelConfiguration 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 CreatePriorityLevelConfiguration FieldValidation where
    applyOptionalParam req (FieldValidation xs) =
      req `addQuery` toQuery ("fieldValidation", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes CreatePriorityLevelConfiguration mtype
  
  -- | @application/json@
  instance Produces CreatePriorityLevelConfiguration MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces CreatePriorityLevelConfiguration MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces CreatePriorityLevelConfiguration MimeYaml
  
  
  -- *** deleteCollectionFlowSchema
  
  -- | @DELETE \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas@
  -- 
  -- delete collection of FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  deleteCollectionFlowSchema
    :: (Consumes DeleteCollectionFlowSchema contentType)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> KubernetesRequest DeleteCollectionFlowSchema contentType V1Status accept
  deleteCollectionFlowSchema _  _ =
    _mkRequest "DELETE" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data DeleteCollectionFlowSchema 
  instance HasBodyParam DeleteCollectionFlowSchema V1DeleteOptions 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema GracePeriodSeconds where
    applyOptionalParam req (GracePeriodSeconds xs) =
      req `addQuery` toQuery ("gracePeriodSeconds", Just xs)
  
  -- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.
  instance HasOptionalParam DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema 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 DeleteCollectionFlowSchema ResourceVersionMatch where
    applyOptionalParam req (ResourceVersionMatch xs) =
      req `addQuery` toQuery ("resourceVersionMatch", 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 DeleteCollectionFlowSchema TimeoutSeconds where
    applyOptionalParam req (TimeoutSeconds xs) =
      req `addQuery` toQuery ("timeoutSeconds", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes DeleteCollectionFlowSchema mtype
  
  -- | @application/json@
  instance Produces DeleteCollectionFlowSchema MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces DeleteCollectionFlowSchema MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces DeleteCollectionFlowSchema MimeYaml
  
  
  -- *** deleteCollectionPriorityLevelConfiguration
  
  -- | @DELETE \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations@
  -- 
  -- delete collection of PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  deleteCollectionPriorityLevelConfiguration
    :: (Consumes DeleteCollectionPriorityLevelConfiguration contentType)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> KubernetesRequest DeleteCollectionPriorityLevelConfiguration contentType V1Status accept
  deleteCollectionPriorityLevelConfiguration _  _ =
    _mkRequest "DELETE" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data DeleteCollectionPriorityLevelConfiguration 
  instance HasBodyParam DeleteCollectionPriorityLevelConfiguration V1DeleteOptions 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration GracePeriodSeconds where
    applyOptionalParam req (GracePeriodSeconds xs) =
      req `addQuery` toQuery ("gracePeriodSeconds", Just xs)
  
  -- | /Optional Param/ "labelSelector" - A selector to restrict the list of returned objects by their labels. Defaults to everything.
  instance HasOptionalParam DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration 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 DeleteCollectionPriorityLevelConfiguration ResourceVersionMatch where
    applyOptionalParam req (ResourceVersionMatch xs) =
      req `addQuery` toQuery ("resourceVersionMatch", 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 DeleteCollectionPriorityLevelConfiguration TimeoutSeconds where
    applyOptionalParam req (TimeoutSeconds xs) =
      req `addQuery` toQuery ("timeoutSeconds", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes DeleteCollectionPriorityLevelConfiguration mtype
  
  -- | @application/json@
  instance Produces DeleteCollectionPriorityLevelConfiguration MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces DeleteCollectionPriorityLevelConfiguration MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces DeleteCollectionPriorityLevelConfiguration MimeYaml
  
  
  -- *** deleteFlowSchema
  
  -- | @DELETE \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas\/{name}@
  -- 
  -- delete a FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  deleteFlowSchema
    :: (Consumes DeleteFlowSchema contentType)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> Name -- ^ "name" -  name of the FlowSchema
    -> KubernetesRequest DeleteFlowSchema contentType V1Status accept
  deleteFlowSchema _  _ (Name name) =
    _mkRequest "DELETE" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/",toPath name]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data DeleteFlowSchema 
  instance HasBodyParam DeleteFlowSchema V1DeleteOptions 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam DeleteFlowSchema 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 DeleteFlowSchema 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 DeleteFlowSchema GracePeriodSeconds where
    applyOptionalParam req (GracePeriodSeconds xs) =
      req `addQuery` toQuery ("gracePeriodSeconds", 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 DeleteFlowSchema 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 DeleteFlowSchema PropagationPolicy where
    applyOptionalParam req (PropagationPolicy xs) =
      req `addQuery` toQuery ("propagationPolicy", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes DeleteFlowSchema mtype
  
  -- | @application/json@
  instance Produces DeleteFlowSchema MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces DeleteFlowSchema MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces DeleteFlowSchema MimeYaml
  
  
  -- *** deletePriorityLevelConfiguration
  
  -- | @DELETE \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations\/{name}@
  -- 
  -- delete a PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  deletePriorityLevelConfiguration
    :: (Consumes DeletePriorityLevelConfiguration contentType)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> Name -- ^ "name" -  name of the PriorityLevelConfiguration
    -> KubernetesRequest DeletePriorityLevelConfiguration contentType V1Status accept
  deletePriorityLevelConfiguration _  _ (Name name) =
    _mkRequest "DELETE" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/",toPath name]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data DeletePriorityLevelConfiguration 
  instance HasBodyParam DeletePriorityLevelConfiguration V1DeleteOptions 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam DeletePriorityLevelConfiguration 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 DeletePriorityLevelConfiguration 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 DeletePriorityLevelConfiguration GracePeriodSeconds where
    applyOptionalParam req (GracePeriodSeconds xs) =
      req `addQuery` toQuery ("gracePeriodSeconds", 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 DeletePriorityLevelConfiguration 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 DeletePriorityLevelConfiguration PropagationPolicy where
    applyOptionalParam req (PropagationPolicy xs) =
      req `addQuery` toQuery ("propagationPolicy", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes DeletePriorityLevelConfiguration mtype
  
  -- | @application/json@
  instance Produces DeletePriorityLevelConfiguration MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces DeletePriorityLevelConfiguration MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces DeletePriorityLevelConfiguration MimeYaml
  
  
  -- *** getAPIResources
  
  -- | @GET \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/@
  -- 
  -- get available resources
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  getAPIResources
    :: Accept accept -- ^ request accept ('MimeType')
    -> KubernetesRequest GetAPIResources MimeNoContent V1APIResourceList accept
  getAPIResources  _ =
    _mkRequest "GET" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data GetAPIResources  
  -- | @application/json@
  instance Produces GetAPIResources MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces GetAPIResources MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces GetAPIResources MimeYaml
  
  
  -- *** listFlowSchema
  
  -- | @GET \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas@
  -- 
  -- list or watch objects of kind FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  listFlowSchema
    :: Accept accept -- ^ request accept ('MimeType')
    -> KubernetesRequest ListFlowSchema MimeNoContent V1beta2FlowSchemaList accept
  listFlowSchema  _ =
    _mkRequest "GET" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data ListFlowSchema  
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ListFlowSchema 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 ListFlowSchema 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 ListFlowSchema 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 ListFlowSchema 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 ListFlowSchema 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 ListFlowSchema 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 ListFlowSchema 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 ListFlowSchema ResourceVersionMatch where
    applyOptionalParam req (ResourceVersionMatch xs) =
      req `addQuery` toQuery ("resourceVersionMatch", 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 ListFlowSchema 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 ListFlowSchema Watch where
    applyOptionalParam req (Watch xs) =
      req `addQuery` toQuery ("watch", Just xs)
  -- | @application/json@
  instance Produces ListFlowSchema MimeJSON
  -- | @application/json;stream=watch@
  instance Produces ListFlowSchema MimeJsonstreamwatch
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ListFlowSchema MimeVndKubernetesProtobuf
  -- | @application/vnd.kubernetes.protobuf;stream=watch@
  instance Produces ListFlowSchema MimeVndKubernetesProtobufstreamwatch
  -- | @application/yaml@
  instance Produces ListFlowSchema MimeYaml
  
  
  -- *** listPriorityLevelConfiguration
  
  -- | @GET \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations@
  -- 
  -- list or watch objects of kind PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  listPriorityLevelConfiguration
    :: Accept accept -- ^ request accept ('MimeType')
    -> KubernetesRequest ListPriorityLevelConfiguration MimeNoContent V1beta2PriorityLevelConfigurationList accept
  listPriorityLevelConfiguration  _ =
    _mkRequest "GET" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data ListPriorityLevelConfiguration  
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ListPriorityLevelConfiguration 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 ListPriorityLevelConfiguration 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 ListPriorityLevelConfiguration 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 ListPriorityLevelConfiguration 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 ListPriorityLevelConfiguration 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 ListPriorityLevelConfiguration 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 ListPriorityLevelConfiguration 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 ListPriorityLevelConfiguration ResourceVersionMatch where
    applyOptionalParam req (ResourceVersionMatch xs) =
      req `addQuery` toQuery ("resourceVersionMatch", 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 ListPriorityLevelConfiguration 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 ListPriorityLevelConfiguration Watch where
    applyOptionalParam req (Watch xs) =
      req `addQuery` toQuery ("watch", Just xs)
  -- | @application/json@
  instance Produces ListPriorityLevelConfiguration MimeJSON
  -- | @application/json;stream=watch@
  instance Produces ListPriorityLevelConfiguration MimeJsonstreamwatch
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ListPriorityLevelConfiguration MimeVndKubernetesProtobuf
  -- | @application/vnd.kubernetes.protobuf;stream=watch@
  instance Produces ListPriorityLevelConfiguration MimeVndKubernetesProtobufstreamwatch
  -- | @application/yaml@
  instance Produces ListPriorityLevelConfiguration MimeYaml
  
  
  -- *** patchFlowSchema
  
  -- | @PATCH \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas\/{name}@
  -- 
  -- partially update the specified FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  patchFlowSchema
    :: (Consumes PatchFlowSchema contentType, MimeRender contentType Body)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> Body -- ^ "body"
    -> Name -- ^ "name" -  name of the FlowSchema
    -> KubernetesRequest PatchFlowSchema contentType V1beta2FlowSchema accept
  patchFlowSchema _  _ body (Name name) =
    _mkRequest "PATCH" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/",toPath name]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data PatchFlowSchema 
  instance HasBodyParam PatchFlowSchema Body 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam PatchFlowSchema 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 PatchFlowSchema 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 PatchFlowSchema 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 PatchFlowSchema 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 PatchFlowSchema Force where
    applyOptionalParam req (Force xs) =
      req `addQuery` toQuery ("force", Just xs)
  
  -- | @application/apply-patch+yaml@
  instance Consumes PatchFlowSchema MimeApplyPatchyaml
  -- | @application/json-patch+json@
  instance Consumes PatchFlowSchema MimeJsonPatchjson
  -- | @application/merge-patch+json@
  instance Consumes PatchFlowSchema MimeMergePatchjson
  -- | @application/strategic-merge-patch+json@
  instance Consumes PatchFlowSchema MimeStrategicMergePatchjson
  
  -- | @application/json@
  instance Produces PatchFlowSchema MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces PatchFlowSchema MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces PatchFlowSchema MimeYaml
  
  
  -- *** patchFlowSchemaStatus
  
  -- | @PATCH \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas\/{name}\/status@
  -- 
  -- partially update status of the specified FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  patchFlowSchemaStatus
    :: (Consumes PatchFlowSchemaStatus contentType, MimeRender contentType Body)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> Body -- ^ "body"
    -> Name -- ^ "name" -  name of the FlowSchema
    -> KubernetesRequest PatchFlowSchemaStatus contentType V1beta2FlowSchema accept
  patchFlowSchemaStatus _  _ body (Name name) =
    _mkRequest "PATCH" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/",toPath name,"/status"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data PatchFlowSchemaStatus 
  instance HasBodyParam PatchFlowSchemaStatus Body 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam PatchFlowSchemaStatus 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 PatchFlowSchemaStatus 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 PatchFlowSchemaStatus 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 PatchFlowSchemaStatus 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 PatchFlowSchemaStatus Force where
    applyOptionalParam req (Force xs) =
      req `addQuery` toQuery ("force", Just xs)
  
  -- | @application/apply-patch+yaml@
  instance Consumes PatchFlowSchemaStatus MimeApplyPatchyaml
  -- | @application/json-patch+json@
  instance Consumes PatchFlowSchemaStatus MimeJsonPatchjson
  -- | @application/merge-patch+json@
  instance Consumes PatchFlowSchemaStatus MimeMergePatchjson
  -- | @application/strategic-merge-patch+json@
  instance Consumes PatchFlowSchemaStatus MimeStrategicMergePatchjson
  
  -- | @application/json@
  instance Produces PatchFlowSchemaStatus MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces PatchFlowSchemaStatus MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces PatchFlowSchemaStatus MimeYaml
  
  
  -- *** patchPriorityLevelConfiguration
  
  -- | @PATCH \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations\/{name}@
  -- 
  -- partially update the specified PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  patchPriorityLevelConfiguration
    :: (Consumes PatchPriorityLevelConfiguration contentType, MimeRender contentType Body)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> Body -- ^ "body"
    -> Name -- ^ "name" -  name of the PriorityLevelConfiguration
    -> KubernetesRequest PatchPriorityLevelConfiguration contentType V1beta2PriorityLevelConfiguration accept
  patchPriorityLevelConfiguration _  _ body (Name name) =
    _mkRequest "PATCH" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/",toPath name]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data PatchPriorityLevelConfiguration 
  instance HasBodyParam PatchPriorityLevelConfiguration Body 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam PatchPriorityLevelConfiguration 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 PatchPriorityLevelConfiguration 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 PatchPriorityLevelConfiguration 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 PatchPriorityLevelConfiguration 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 PatchPriorityLevelConfiguration Force where
    applyOptionalParam req (Force xs) =
      req `addQuery` toQuery ("force", Just xs)
  
  -- | @application/apply-patch+yaml@
  instance Consumes PatchPriorityLevelConfiguration MimeApplyPatchyaml
  -- | @application/json-patch+json@
  instance Consumes PatchPriorityLevelConfiguration MimeJsonPatchjson
  -- | @application/merge-patch+json@
  instance Consumes PatchPriorityLevelConfiguration MimeMergePatchjson
  -- | @application/strategic-merge-patch+json@
  instance Consumes PatchPriorityLevelConfiguration MimeStrategicMergePatchjson
  
  -- | @application/json@
  instance Produces PatchPriorityLevelConfiguration MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces PatchPriorityLevelConfiguration MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces PatchPriorityLevelConfiguration MimeYaml
  
  
  -- *** patchPriorityLevelConfigurationStatus
  
  -- | @PATCH \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations\/{name}\/status@
  -- 
  -- partially update status of the specified PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  patchPriorityLevelConfigurationStatus
    :: (Consumes PatchPriorityLevelConfigurationStatus contentType, MimeRender contentType Body)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> Body -- ^ "body"
    -> Name -- ^ "name" -  name of the PriorityLevelConfiguration
    -> KubernetesRequest PatchPriorityLevelConfigurationStatus contentType V1beta2PriorityLevelConfiguration accept
  patchPriorityLevelConfigurationStatus _  _ body (Name name) =
    _mkRequest "PATCH" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/",toPath name,"/status"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data PatchPriorityLevelConfigurationStatus 
  instance HasBodyParam PatchPriorityLevelConfigurationStatus Body 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam PatchPriorityLevelConfigurationStatus 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 PatchPriorityLevelConfigurationStatus 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 PatchPriorityLevelConfigurationStatus 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 PatchPriorityLevelConfigurationStatus 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 PatchPriorityLevelConfigurationStatus Force where
    applyOptionalParam req (Force xs) =
      req `addQuery` toQuery ("force", Just xs)
  
  -- | @application/apply-patch+yaml@
  instance Consumes PatchPriorityLevelConfigurationStatus MimeApplyPatchyaml
  -- | @application/json-patch+json@
  instance Consumes PatchPriorityLevelConfigurationStatus MimeJsonPatchjson
  -- | @application/merge-patch+json@
  instance Consumes PatchPriorityLevelConfigurationStatus MimeMergePatchjson
  -- | @application/strategic-merge-patch+json@
  instance Consumes PatchPriorityLevelConfigurationStatus MimeStrategicMergePatchjson
  
  -- | @application/json@
  instance Produces PatchPriorityLevelConfigurationStatus MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces PatchPriorityLevelConfigurationStatus MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces PatchPriorityLevelConfigurationStatus MimeYaml
  
  
  -- *** readFlowSchema
  
  -- | @GET \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas\/{name}@
  -- 
  -- read the specified FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  readFlowSchema
    :: Accept accept -- ^ request accept ('MimeType')
    -> Name -- ^ "name" -  name of the FlowSchema
    -> KubernetesRequest ReadFlowSchema MimeNoContent V1beta2FlowSchema accept
  readFlowSchema  _ (Name name) =
    _mkRequest "GET" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/",toPath name]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data ReadFlowSchema  
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ReadFlowSchema Pretty where
    applyOptionalParam req (Pretty xs) =
      req `addQuery` toQuery ("pretty", Just xs)
  -- | @application/json@
  instance Produces ReadFlowSchema MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ReadFlowSchema MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces ReadFlowSchema MimeYaml
  
  
  -- *** readFlowSchemaStatus
  
  -- | @GET \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas\/{name}\/status@
  -- 
  -- read status of the specified FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  readFlowSchemaStatus
    :: Accept accept -- ^ request accept ('MimeType')
    -> Name -- ^ "name" -  name of the FlowSchema
    -> KubernetesRequest ReadFlowSchemaStatus MimeNoContent V1beta2FlowSchema accept
  readFlowSchemaStatus  _ (Name name) =
    _mkRequest "GET" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/",toPath name,"/status"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data ReadFlowSchemaStatus  
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ReadFlowSchemaStatus Pretty where
    applyOptionalParam req (Pretty xs) =
      req `addQuery` toQuery ("pretty", Just xs)
  -- | @application/json@
  instance Produces ReadFlowSchemaStatus MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ReadFlowSchemaStatus MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces ReadFlowSchemaStatus MimeYaml
  
  
  -- *** readPriorityLevelConfiguration
  
  -- | @GET \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations\/{name}@
  -- 
  -- read the specified PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  readPriorityLevelConfiguration
    :: Accept accept -- ^ request accept ('MimeType')
    -> Name -- ^ "name" -  name of the PriorityLevelConfiguration
    -> KubernetesRequest ReadPriorityLevelConfiguration MimeNoContent V1beta2PriorityLevelConfiguration accept
  readPriorityLevelConfiguration  _ (Name name) =
    _mkRequest "GET" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/",toPath name]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data ReadPriorityLevelConfiguration  
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ReadPriorityLevelConfiguration Pretty where
    applyOptionalParam req (Pretty xs) =
      req `addQuery` toQuery ("pretty", Just xs)
  -- | @application/json@
  instance Produces ReadPriorityLevelConfiguration MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ReadPriorityLevelConfiguration MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces ReadPriorityLevelConfiguration MimeYaml
  
  
  -- *** readPriorityLevelConfigurationStatus
  
  -- | @GET \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations\/{name}\/status@
  -- 
  -- read status of the specified PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  readPriorityLevelConfigurationStatus
    :: Accept accept -- ^ request accept ('MimeType')
    -> Name -- ^ "name" -  name of the PriorityLevelConfiguration
    -> KubernetesRequest ReadPriorityLevelConfigurationStatus MimeNoContent V1beta2PriorityLevelConfiguration accept
  readPriorityLevelConfigurationStatus  _ (Name name) =
    _mkRequest "GET" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/",toPath name,"/status"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
  
  data ReadPriorityLevelConfigurationStatus  
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ReadPriorityLevelConfigurationStatus Pretty where
    applyOptionalParam req (Pretty xs) =
      req `addQuery` toQuery ("pretty", Just xs)
  -- | @application/json@
  instance Produces ReadPriorityLevelConfigurationStatus MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ReadPriorityLevelConfigurationStatus MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces ReadPriorityLevelConfigurationStatus MimeYaml
  
  
  -- *** replaceFlowSchema
  
  -- | @PUT \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas\/{name}@
  -- 
  -- replace the specified FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  replaceFlowSchema
    :: (Consumes ReplaceFlowSchema contentType, MimeRender contentType V1beta2FlowSchema)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> V1beta2FlowSchema -- ^ "body"
    -> Name -- ^ "name" -  name of the FlowSchema
    -> KubernetesRequest ReplaceFlowSchema contentType V1beta2FlowSchema accept
  replaceFlowSchema _  _ body (Name name) =
    _mkRequest "PUT" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/",toPath name]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data ReplaceFlowSchema 
  instance HasBodyParam ReplaceFlowSchema V1beta2FlowSchema 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ReplaceFlowSchema 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 ReplaceFlowSchema 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 ReplaceFlowSchema 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 ReplaceFlowSchema FieldValidation where
    applyOptionalParam req (FieldValidation xs) =
      req `addQuery` toQuery ("fieldValidation", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes ReplaceFlowSchema mtype
  
  -- | @application/json@
  instance Produces ReplaceFlowSchema MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ReplaceFlowSchema MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces ReplaceFlowSchema MimeYaml
  
  
  -- *** replaceFlowSchemaStatus
  
  -- | @PUT \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/flowschemas\/{name}\/status@
  -- 
  -- replace status of the specified FlowSchema
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  replaceFlowSchemaStatus
    :: (Consumes ReplaceFlowSchemaStatus contentType, MimeRender contentType V1beta2FlowSchema)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> V1beta2FlowSchema -- ^ "body"
    -> Name -- ^ "name" -  name of the FlowSchema
    -> KubernetesRequest ReplaceFlowSchemaStatus contentType V1beta2FlowSchema accept
  replaceFlowSchemaStatus _  _ body (Name name) =
    _mkRequest "PUT" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/",toPath name,"/status"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data ReplaceFlowSchemaStatus 
  instance HasBodyParam ReplaceFlowSchemaStatus V1beta2FlowSchema 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ReplaceFlowSchemaStatus 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 ReplaceFlowSchemaStatus 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 ReplaceFlowSchemaStatus 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 ReplaceFlowSchemaStatus FieldValidation where
    applyOptionalParam req (FieldValidation xs) =
      req `addQuery` toQuery ("fieldValidation", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes ReplaceFlowSchemaStatus mtype
  
  -- | @application/json@
  instance Produces ReplaceFlowSchemaStatus MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ReplaceFlowSchemaStatus MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces ReplaceFlowSchemaStatus MimeYaml
  
  
  -- *** replacePriorityLevelConfiguration
  
  -- | @PUT \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations\/{name}@
  -- 
  -- replace the specified PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  replacePriorityLevelConfiguration
    :: (Consumes ReplacePriorityLevelConfiguration contentType, MimeRender contentType V1beta2PriorityLevelConfiguration)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> V1beta2PriorityLevelConfiguration -- ^ "body"
    -> Name -- ^ "name" -  name of the PriorityLevelConfiguration
    -> KubernetesRequest ReplacePriorityLevelConfiguration contentType V1beta2PriorityLevelConfiguration accept
  replacePriorityLevelConfiguration _  _ body (Name name) =
    _mkRequest "PUT" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/",toPath name]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data ReplacePriorityLevelConfiguration 
  instance HasBodyParam ReplacePriorityLevelConfiguration V1beta2PriorityLevelConfiguration 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ReplacePriorityLevelConfiguration 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 ReplacePriorityLevelConfiguration 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 ReplacePriorityLevelConfiguration 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 ReplacePriorityLevelConfiguration FieldValidation where
    applyOptionalParam req (FieldValidation xs) =
      req `addQuery` toQuery ("fieldValidation", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes ReplacePriorityLevelConfiguration mtype
  
  -- | @application/json@
  instance Produces ReplacePriorityLevelConfiguration MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ReplacePriorityLevelConfiguration MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces ReplacePriorityLevelConfiguration MimeYaml
  
  
  -- *** replacePriorityLevelConfigurationStatus
  
  -- | @PUT \/apis\/flowcontrol.apiserver.k8s.io\/v1beta2\/prioritylevelconfigurations\/{name}\/status@
  -- 
  -- replace status of the specified PriorityLevelConfiguration
  -- 
  -- AuthMethod: 'AuthApiKeyBearerToken'
  -- 
  replacePriorityLevelConfigurationStatus
    :: (Consumes ReplacePriorityLevelConfigurationStatus contentType, MimeRender contentType V1beta2PriorityLevelConfiguration)
    => ContentType contentType -- ^ request content-type ('MimeType')
    -> Accept accept -- ^ request accept ('MimeType')
    -> V1beta2PriorityLevelConfiguration -- ^ "body"
    -> Name -- ^ "name" -  name of the PriorityLevelConfiguration
    -> KubernetesRequest ReplacePriorityLevelConfigurationStatus contentType V1beta2PriorityLevelConfiguration accept
  replacePriorityLevelConfigurationStatus _  _ body (Name name) =
    _mkRequest "PUT" ["/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/",toPath name,"/status"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyBearerToken)
      `setBodyParam` body
  
  data ReplacePriorityLevelConfigurationStatus 
  instance HasBodyParam ReplacePriorityLevelConfigurationStatus V1beta2PriorityLevelConfiguration 
  
  -- | /Optional Param/ "pretty" - If 'true', then the output is pretty printed.
  instance HasOptionalParam ReplacePriorityLevelConfigurationStatus 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 ReplacePriorityLevelConfigurationStatus 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 ReplacePriorityLevelConfigurationStatus 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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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 ReplacePriorityLevelConfigurationStatus FieldValidation where
    applyOptionalParam req (FieldValidation xs) =
      req `addQuery` toQuery ("fieldValidation", Just xs)
  
  -- | @*/*@
  instance MimeType mtype => Consumes ReplacePriorityLevelConfigurationStatus mtype
  
  -- | @application/json@
  instance Produces ReplacePriorityLevelConfigurationStatus MimeJSON
  -- | @application/vnd.kubernetes.protobuf@
  instance Produces ReplacePriorityLevelConfigurationStatus MimeVndKubernetesProtobuf
  -- | @application/yaml@
  instance Produces ReplacePriorityLevelConfigurationStatus MimeYaml
  
  