// <auto-generated>
// Code generated by Microsoft (R) AutoRest Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.
// </auto-generated>

namespace k8s
{
    using Models;
    using System.IO;
    using System.Threading;
    using System.Threading.Tasks;

    /// <summary>
    /// Extension methods for Kubernetes.
    /// </summary>
    public static partial class KubernetesExtensions
    {
            /// <summary>
            /// get service account issuer OpenID configuration, also known as the 'OIDC
            /// discovery doc'
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static string GetServiceAccountIssuerOpenIDConfiguration(this IKubernetes operations)
            {
                return operations.GetServiceAccountIssuerOpenIDConfigurationAsync().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get service account issuer OpenID configuration, also known as the 'OIDC
            /// discovery doc'
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<string> GetServiceAccountIssuerOpenIDConfigurationAsync(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetServiceAccountIssuerOpenIDConfigurationWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available API versions
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIVersions GetAPIVersions(this IKubernetes operations)
            {
                return operations.GetAPIVersionsAsync().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available API versions
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIVersions> GetAPIVersionsAsync(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIVersionsWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources(this IKubernetes operations)
            {
                return operations.GetAPIResourcesAsync().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResourcesAsync(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResourcesWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list objects of kind ComponentStatus
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1ComponentStatusList ListComponentStatus(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListComponentStatusAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list objects of kind ComponentStatus
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ComponentStatusList> ListComponentStatusAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListComponentStatusWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ComponentStatus
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ComponentStatus
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ComponentStatus ReadComponentStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadComponentStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ComponentStatus
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ComponentStatus
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ComponentStatus> ReadComponentStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadComponentStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1ConfigMapList ListConfigMapForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListConfigMapForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ConfigMapList> ListConfigMapForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListConfigMapForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1EndpointsList ListEndpointsForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListEndpointsForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EndpointsList> ListEndpointsForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListEndpointsForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static Corev1EventList ListEventForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListEventForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Corev1EventList> ListEventForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListEventForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1LimitRangeList ListLimitRangeForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListLimitRangeForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LimitRangeList> ListLimitRangeForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListLimitRangeForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1NamespaceList ListNamespace(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespaceAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1NamespaceList> ListNamespaceAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespaceWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Namespace CreateNamespace(this IKubernetes operations, V1Namespace body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespaceAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Namespace> CreateNamespaceAsync(this IKubernetes operations, V1Namespace body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespaceWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Binding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Binding CreateNamespacedBinding(this IKubernetes operations, V1Binding body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedBindingAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Binding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Binding> CreateNamespacedBindingAsync(this IKubernetes operations, V1Binding body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedBindingWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedConfigMap(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedConfigMapAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedConfigMapAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedConfigMapWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ConfigMapList ListNamespacedConfigMap(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedConfigMapAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ConfigMapList> ListNamespacedConfigMapAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedConfigMapWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ConfigMap CreateNamespacedConfigMap(this IKubernetes operations, V1ConfigMap body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedConfigMapAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ConfigMap> CreateNamespacedConfigMapAsync(this IKubernetes operations, V1ConfigMap body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedConfigMapWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ConfigMap
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedConfigMap(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedConfigMapAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ConfigMap
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedConfigMapAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedConfigMapWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ConfigMap
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ConfigMap ReadNamespacedConfigMap(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedConfigMapAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ConfigMap
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ConfigMap> ReadNamespacedConfigMapAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedConfigMapWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ConfigMap
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ConfigMap PatchNamespacedConfigMap(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedConfigMapAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ConfigMap
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ConfigMap> PatchNamespacedConfigMapAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedConfigMapWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ConfigMap
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ConfigMap ReplaceNamespacedConfigMap(this IKubernetes operations, V1ConfigMap body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedConfigMapAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ConfigMap
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ConfigMap
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ConfigMap> ReplaceNamespacedConfigMapAsync(this IKubernetes operations, V1ConfigMap body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedConfigMapWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedEndpoints(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedEndpointsAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedEndpointsAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedEndpointsWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EndpointsList ListNamespacedEndpoints(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedEndpointsAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EndpointsList> ListNamespacedEndpointsAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedEndpointsWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Endpoints CreateNamespacedEndpoints(this IKubernetes operations, V1Endpoints body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedEndpointsAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Endpoints> CreateNamespacedEndpointsAsync(this IKubernetes operations, V1Endpoints body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedEndpointsWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Endpoints
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedEndpoints(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedEndpointsAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Endpoints
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedEndpointsAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedEndpointsWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Endpoints
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Endpoints ReadNamespacedEndpoints(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedEndpointsAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Endpoints
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Endpoints> ReadNamespacedEndpointsAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedEndpointsWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Endpoints
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Endpoints PatchNamespacedEndpoints(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedEndpointsAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Endpoints
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Endpoints> PatchNamespacedEndpointsAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedEndpointsWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Endpoints
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Endpoints ReplaceNamespacedEndpoints(this IKubernetes operations, V1Endpoints body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedEndpointsAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Endpoints
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Endpoints
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Endpoints> ReplaceNamespacedEndpointsAsync(this IKubernetes operations, V1Endpoints body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedEndpointsWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedEvent(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedEventAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedEventAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedEventWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Corev1EventList ListNamespacedEvent(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedEventAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Corev1EventList> ListNamespacedEventAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedEventWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Corev1Event CreateNamespacedEvent(this IKubernetes operations, Corev1Event body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedEventAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Corev1Event> CreateNamespacedEventAsync(this IKubernetes operations, Corev1Event body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedEventWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedEvent(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedEventAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedEventAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedEventWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Corev1Event ReadNamespacedEvent(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedEventAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Corev1Event> ReadNamespacedEventAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedEventWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Corev1Event PatchNamespacedEvent(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedEventAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Corev1Event> PatchNamespacedEventAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedEventWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Corev1Event ReplaceNamespacedEvent(this IKubernetes operations, Corev1Event body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedEventAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Corev1Event> ReplaceNamespacedEventAsync(this IKubernetes operations, Corev1Event body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedEventWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedLimitRange(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedLimitRangeAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedLimitRangeAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedLimitRangeWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1LimitRangeList ListNamespacedLimitRange(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedLimitRangeAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LimitRangeList> ListNamespacedLimitRangeAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedLimitRangeWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1LimitRange CreateNamespacedLimitRange(this IKubernetes operations, V1LimitRange body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedLimitRangeAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LimitRange> CreateNamespacedLimitRangeAsync(this IKubernetes operations, V1LimitRange body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedLimitRangeWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the LimitRange
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedLimitRange(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedLimitRangeAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the LimitRange
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedLimitRangeAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedLimitRangeWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the LimitRange
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1LimitRange ReadNamespacedLimitRange(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedLimitRangeAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the LimitRange
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LimitRange> ReadNamespacedLimitRangeAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedLimitRangeWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the LimitRange
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1LimitRange PatchNamespacedLimitRange(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedLimitRangeAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the LimitRange
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LimitRange> PatchNamespacedLimitRangeAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedLimitRangeWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the LimitRange
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1LimitRange ReplaceNamespacedLimitRange(this IKubernetes operations, V1LimitRange body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedLimitRangeAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified LimitRange
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the LimitRange
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LimitRange> ReplaceNamespacedLimitRangeAsync(this IKubernetes operations, V1LimitRange body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedLimitRangeWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedPersistentVolumeClaim(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedPersistentVolumeClaimAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedPersistentVolumeClaimAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedPersistentVolumeClaimWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaimList ListNamespacedPersistentVolumeClaim(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedPersistentVolumeClaimAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaimList> ListNamespacedPersistentVolumeClaimAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedPersistentVolumeClaimWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaim CreateNamespacedPersistentVolumeClaim(this IKubernetes operations, V1PersistentVolumeClaim body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedPersistentVolumeClaimAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaim> CreateNamespacedPersistentVolumeClaimAsync(this IKubernetes operations, V1PersistentVolumeClaim body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedPersistentVolumeClaimWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaim DeleteNamespacedPersistentVolumeClaim(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedPersistentVolumeClaimAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaim> DeleteNamespacedPersistentVolumeClaimAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedPersistentVolumeClaimWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaim ReadNamespacedPersistentVolumeClaim(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPersistentVolumeClaimAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaim> ReadNamespacedPersistentVolumeClaimAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPersistentVolumeClaimWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaim PatchNamespacedPersistentVolumeClaim(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPersistentVolumeClaimAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaim> PatchNamespacedPersistentVolumeClaimAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPersistentVolumeClaimWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaim ReplaceNamespacedPersistentVolumeClaim(this IKubernetes operations, V1PersistentVolumeClaim body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPersistentVolumeClaimAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaim> ReplaceNamespacedPersistentVolumeClaimAsync(this IKubernetes operations, V1PersistentVolumeClaim body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPersistentVolumeClaimWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaim ReadNamespacedPersistentVolumeClaimStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPersistentVolumeClaimStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaim> ReadNamespacedPersistentVolumeClaimStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPersistentVolumeClaimStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaim PatchNamespacedPersistentVolumeClaimStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPersistentVolumeClaimStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaim> PatchNamespacedPersistentVolumeClaimStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPersistentVolumeClaimStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeClaim ReplaceNamespacedPersistentVolumeClaimStatus(this IKubernetes operations, V1PersistentVolumeClaim body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPersistentVolumeClaimStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolumeClaim
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaim> ReplaceNamespacedPersistentVolumeClaimStatusAsync(this IKubernetes operations, V1PersistentVolumeClaim body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPersistentVolumeClaimStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedPod(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedPodAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedPodAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedPodWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodList ListNamespacedPod(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedPodAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodList> ListNamespacedPodAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedPodWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Pod CreateNamespacedPod(this IKubernetes operations, V1Pod body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedPodAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Pod> CreateNamespacedPodAsync(this IKubernetes operations, V1Pod body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedPodWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Pod DeleteNamespacedPod(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedPodAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Pod> DeleteNamespacedPodAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedPodWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Pod ReadNamespacedPod(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPodAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Pod> ReadNamespacedPodAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPodWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Pod PatchNamespacedPod(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPodAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Pod> PatchNamespacedPodAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPodWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Pod ReplaceNamespacedPod(this IKubernetes operations, V1Pod body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPodAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Pod> ReplaceNamespacedPodAsync(this IKubernetes operations, V1Pod body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPodWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// connect GET requests to attach of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodAttachOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='container'>
            /// The container in which to execute the command. Defaults to only container
            /// if there is only one container in the pod.
            /// </param>
            /// <param name='stderr'>
            /// Stderr if true indicates that stderr is to be redirected for the attach
            /// call. Defaults to true.
            /// </param>
            /// <param name='stdin'>
            /// Stdin if true, redirects the standard input stream of the pod for this
            /// call. Defaults to false.
            /// </param>
            /// <param name='stdout'>
            /// Stdout if true indicates that stdout is to be redirected for the attach
            /// call. Defaults to true.
            /// </param>
            /// <param name='tty'>
            /// TTY if true indicates that a tty will be allocated for the attach call.
            /// This is passed through the container runtime so the tty is allocated on the
            /// worker node by the container runtime. Defaults to false.
            /// </param>
            public static Stream ConnectGetNamespacedPodAttach(this IKubernetes operations, string name, string namespaceParameter, string container = default(string), bool? stderr = default(bool?), bool? stdin = default(bool?), bool? stdout = default(bool?), bool? tty = default(bool?))
            {
                return operations.ConnectGetNamespacedPodAttachAsync(name, namespaceParameter, container, stderr, stdin, stdout, tty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to attach of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodAttachOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='container'>
            /// The container in which to execute the command. Defaults to only container
            /// if there is only one container in the pod.
            /// </param>
            /// <param name='stderr'>
            /// Stderr if true indicates that stderr is to be redirected for the attach
            /// call. Defaults to true.
            /// </param>
            /// <param name='stdin'>
            /// Stdin if true, redirects the standard input stream of the pod for this
            /// call. Defaults to false.
            /// </param>
            /// <param name='stdout'>
            /// Stdout if true indicates that stdout is to be redirected for the attach
            /// call. Defaults to true.
            /// </param>
            /// <param name='tty'>
            /// TTY if true indicates that a tty will be allocated for the attach call.
            /// This is passed through the container runtime so the tty is allocated on the
            /// worker node by the container runtime. Defaults to false.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNamespacedPodAttachAsync(this IKubernetes operations, string name, string namespaceParameter, string container = default(string), bool? stderr = default(bool?), bool? stdin = default(bool?), bool? stdout = default(bool?), bool? tty = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNamespacedPodAttachWithHttpMessagesAsync(name, namespaceParameter, container, stderr, stdin, stdout, tty, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to attach of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodAttachOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='container'>
            /// The container in which to execute the command. Defaults to only container
            /// if there is only one container in the pod.
            /// </param>
            /// <param name='stderr'>
            /// Stderr if true indicates that stderr is to be redirected for the attach
            /// call. Defaults to true.
            /// </param>
            /// <param name='stdin'>
            /// Stdin if true, redirects the standard input stream of the pod for this
            /// call. Defaults to false.
            /// </param>
            /// <param name='stdout'>
            /// Stdout if true indicates that stdout is to be redirected for the attach
            /// call. Defaults to true.
            /// </param>
            /// <param name='tty'>
            /// TTY if true indicates that a tty will be allocated for the attach call.
            /// This is passed through the container runtime so the tty is allocated on the
            /// worker node by the container runtime. Defaults to false.
            /// </param>
            public static Stream ConnectPostNamespacedPodAttach(this IKubernetes operations, string name, string namespaceParameter, string container = default(string), bool? stderr = default(bool?), bool? stdin = default(bool?), bool? stdout = default(bool?), bool? tty = default(bool?))
            {
                return operations.ConnectPostNamespacedPodAttachAsync(name, namespaceParameter, container, stderr, stdin, stdout, tty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to attach of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodAttachOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='container'>
            /// The container in which to execute the command. Defaults to only container
            /// if there is only one container in the pod.
            /// </param>
            /// <param name='stderr'>
            /// Stderr if true indicates that stderr is to be redirected for the attach
            /// call. Defaults to true.
            /// </param>
            /// <param name='stdin'>
            /// Stdin if true, redirects the standard input stream of the pod for this
            /// call. Defaults to false.
            /// </param>
            /// <param name='stdout'>
            /// Stdout if true indicates that stdout is to be redirected for the attach
            /// call. Defaults to true.
            /// </param>
            /// <param name='tty'>
            /// TTY if true indicates that a tty will be allocated for the attach call.
            /// This is passed through the container runtime so the tty is allocated on the
            /// worker node by the container runtime. Defaults to false.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNamespacedPodAttachAsync(this IKubernetes operations, string name, string namespaceParameter, string container = default(string), bool? stderr = default(bool?), bool? stdin = default(bool?), bool? stdout = default(bool?), bool? tty = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNamespacedPodAttachWithHttpMessagesAsync(name, namespaceParameter, container, stderr, stdin, stdout, tty, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// create binding of a Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Binding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Binding CreateNamespacedPodBinding(this IKubernetes operations, V1Binding body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedPodBindingAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create binding of a Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Binding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Binding> CreateNamespacedPodBindingAsync(this IKubernetes operations, V1Binding body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedPodBindingWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read ephemeralcontainers of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EphemeralContainers
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EphemeralContainers ReadNamespacedPodEphemeralcontainers(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPodEphemeralcontainersAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read ephemeralcontainers of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EphemeralContainers
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EphemeralContainers> ReadNamespacedPodEphemeralcontainersAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPodEphemeralcontainersWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update ephemeralcontainers of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EphemeralContainers
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EphemeralContainers PatchNamespacedPodEphemeralcontainers(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPodEphemeralcontainersAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update ephemeralcontainers of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EphemeralContainers
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EphemeralContainers> PatchNamespacedPodEphemeralcontainersAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPodEphemeralcontainersWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace ephemeralcontainers of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EphemeralContainers
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EphemeralContainers ReplaceNamespacedPodEphemeralcontainers(this IKubernetes operations, V1EphemeralContainers body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPodEphemeralcontainersAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace ephemeralcontainers of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EphemeralContainers
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EphemeralContainers> ReplaceNamespacedPodEphemeralcontainersAsync(this IKubernetes operations, V1EphemeralContainers body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPodEphemeralcontainersWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create eviction of a Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Eviction
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Eviction CreateNamespacedPodEviction(this IKubernetes operations, V1beta1Eviction body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedPodEvictionAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create eviction of a Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Eviction
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Eviction> CreateNamespacedPodEvictionAsync(this IKubernetes operations, V1beta1Eviction body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedPodEvictionWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// connect GET requests to exec of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodExecOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='command'>
            /// Command is the remote command to execute. argv array. Not executed within a
            /// shell.
            /// </param>
            /// <param name='container'>
            /// Container in which to execute the command. Defaults to only container if
            /// there is only one container in the pod.
            /// </param>
            /// <param name='stderr'>
            /// Redirect the standard error stream of the pod for this call. Defaults to
            /// true.
            /// </param>
            /// <param name='stdin'>
            /// Redirect the standard input stream of the pod for this call. Defaults to
            /// false.
            /// </param>
            /// <param name='stdout'>
            /// Redirect the standard output stream of the pod for this call. Defaults to
            /// true.
            /// </param>
            /// <param name='tty'>
            /// TTY if true indicates that a tty will be allocated for the exec call.
            /// Defaults to false.
            /// </param>
            public static Stream ConnectGetNamespacedPodExec(this IKubernetes operations, string name, string namespaceParameter, string command = default(string), string container = default(string), bool? stderr = default(bool?), bool? stdin = default(bool?), bool? stdout = default(bool?), bool? tty = default(bool?))
            {
                return operations.ConnectGetNamespacedPodExecAsync(name, namespaceParameter, command, container, stderr, stdin, stdout, tty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to exec of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodExecOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='command'>
            /// Command is the remote command to execute. argv array. Not executed within a
            /// shell.
            /// </param>
            /// <param name='container'>
            /// Container in which to execute the command. Defaults to only container if
            /// there is only one container in the pod.
            /// </param>
            /// <param name='stderr'>
            /// Redirect the standard error stream of the pod for this call. Defaults to
            /// true.
            /// </param>
            /// <param name='stdin'>
            /// Redirect the standard input stream of the pod for this call. Defaults to
            /// false.
            /// </param>
            /// <param name='stdout'>
            /// Redirect the standard output stream of the pod for this call. Defaults to
            /// true.
            /// </param>
            /// <param name='tty'>
            /// TTY if true indicates that a tty will be allocated for the exec call.
            /// Defaults to false.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNamespacedPodExecAsync(this IKubernetes operations, string name, string namespaceParameter, string command = default(string), string container = default(string), bool? stderr = default(bool?), bool? stdin = default(bool?), bool? stdout = default(bool?), bool? tty = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNamespacedPodExecWithHttpMessagesAsync(name, namespaceParameter, command, container, stderr, stdin, stdout, tty, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to exec of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodExecOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='command'>
            /// Command is the remote command to execute. argv array. Not executed within a
            /// shell.
            /// </param>
            /// <param name='container'>
            /// Container in which to execute the command. Defaults to only container if
            /// there is only one container in the pod.
            /// </param>
            /// <param name='stderr'>
            /// Redirect the standard error stream of the pod for this call. Defaults to
            /// true.
            /// </param>
            /// <param name='stdin'>
            /// Redirect the standard input stream of the pod for this call. Defaults to
            /// false.
            /// </param>
            /// <param name='stdout'>
            /// Redirect the standard output stream of the pod for this call. Defaults to
            /// true.
            /// </param>
            /// <param name='tty'>
            /// TTY if true indicates that a tty will be allocated for the exec call.
            /// Defaults to false.
            /// </param>
            public static Stream ConnectPostNamespacedPodExec(this IKubernetes operations, string name, string namespaceParameter, string command = default(string), string container = default(string), bool? stderr = default(bool?), bool? stdin = default(bool?), bool? stdout = default(bool?), bool? tty = default(bool?))
            {
                return operations.ConnectPostNamespacedPodExecAsync(name, namespaceParameter, command, container, stderr, stdin, stdout, tty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to exec of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodExecOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='command'>
            /// Command is the remote command to execute. argv array. Not executed within a
            /// shell.
            /// </param>
            /// <param name='container'>
            /// Container in which to execute the command. Defaults to only container if
            /// there is only one container in the pod.
            /// </param>
            /// <param name='stderr'>
            /// Redirect the standard error stream of the pod for this call. Defaults to
            /// true.
            /// </param>
            /// <param name='stdin'>
            /// Redirect the standard input stream of the pod for this call. Defaults to
            /// false.
            /// </param>
            /// <param name='stdout'>
            /// Redirect the standard output stream of the pod for this call. Defaults to
            /// true.
            /// </param>
            /// <param name='tty'>
            /// TTY if true indicates that a tty will be allocated for the exec call.
            /// Defaults to false.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNamespacedPodExecAsync(this IKubernetes operations, string name, string namespaceParameter, string command = default(string), string container = default(string), bool? stderr = default(bool?), bool? stdin = default(bool?), bool? stdout = default(bool?), bool? tty = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNamespacedPodExecWithHttpMessagesAsync(name, namespaceParameter, command, container, stderr, stdin, stdout, tty, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// read log of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='container'>
            /// The container for which to stream logs. Defaults to only container if there
            /// is one container in the pod.
            /// </param>
            /// <param name='follow'>
            /// Follow the log stream of the pod. Defaults to false.
            /// </param>
            /// <param name='insecureSkipTLSVerifyBackend'>
            /// insecureSkipTLSVerifyBackend indicates that the apiserver should not
            /// confirm the validity of the serving certificate of the backend it is
            /// connecting to.  This will make the HTTPS connection between the apiserver
            /// and the backend insecure. This means the apiserver cannot verify the log
            /// data it is receiving came from the real kubelet.  If the kubelet is
            /// configured to verify the apiserver's TLS credentials, it does not mean the
            /// connection to the real kubelet is vulnerable to a man in the middle attack
            /// (e.g. an attacker could not intercept the actual log data coming from the
            /// real kubelet).
            /// </param>
            /// <param name='limitBytes'>
            /// If set, the number of bytes to read from the server before terminating the
            /// log output. This may not display a complete final line of logging, and may
            /// return slightly more or slightly less than the specified limit.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='previous'>
            /// Return previous terminated container logs. Defaults to false.
            /// </param>
            /// <param name='sinceSeconds'>
            /// A relative time in seconds before the current time from which to show logs.
            /// If this value precedes the time a pod was started, only logs since the pod
            /// start will be returned. If this value is in the future, no logs will be
            /// returned. Only one of sinceSeconds or sinceTime may be specified.
            /// </param>
            /// <param name='tailLines'>
            /// If set, the number of lines from the end of the logs to show. If not
            /// specified, logs are shown from the creation of the container or
            /// sinceSeconds or sinceTime
            /// </param>
            /// <param name='timestamps'>
            /// If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every
            /// line of log output. Defaults to false.
            /// </param>
            public static Stream ReadNamespacedPodLog(this IKubernetes operations, string name, string namespaceParameter, string container = default(string), bool? follow = default(bool?), bool? insecureSkipTLSVerifyBackend = default(bool?), int? limitBytes = default(int?), string pretty = default(string), bool? previous = default(bool?), int? sinceSeconds = default(int?), int? tailLines = default(int?), bool? timestamps = default(bool?))
            {
                return operations.ReadNamespacedPodLogAsync(name, namespaceParameter, container, follow, insecureSkipTLSVerifyBackend, limitBytes, pretty, previous, sinceSeconds, tailLines, timestamps).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read log of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='container'>
            /// The container for which to stream logs. Defaults to only container if there
            /// is one container in the pod.
            /// </param>
            /// <param name='follow'>
            /// Follow the log stream of the pod. Defaults to false.
            /// </param>
            /// <param name='insecureSkipTLSVerifyBackend'>
            /// insecureSkipTLSVerifyBackend indicates that the apiserver should not
            /// confirm the validity of the serving certificate of the backend it is
            /// connecting to.  This will make the HTTPS connection between the apiserver
            /// and the backend insecure. This means the apiserver cannot verify the log
            /// data it is receiving came from the real kubelet.  If the kubelet is
            /// configured to verify the apiserver's TLS credentials, it does not mean the
            /// connection to the real kubelet is vulnerable to a man in the middle attack
            /// (e.g. an attacker could not intercept the actual log data coming from the
            /// real kubelet).
            /// </param>
            /// <param name='limitBytes'>
            /// If set, the number of bytes to read from the server before terminating the
            /// log output. This may not display a complete final line of logging, and may
            /// return slightly more or slightly less than the specified limit.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='previous'>
            /// Return previous terminated container logs. Defaults to false.
            /// </param>
            /// <param name='sinceSeconds'>
            /// A relative time in seconds before the current time from which to show logs.
            /// If this value precedes the time a pod was started, only logs since the pod
            /// start will be returned. If this value is in the future, no logs will be
            /// returned. Only one of sinceSeconds or sinceTime may be specified.
            /// </param>
            /// <param name='tailLines'>
            /// If set, the number of lines from the end of the logs to show. If not
            /// specified, logs are shown from the creation of the container or
            /// sinceSeconds or sinceTime
            /// </param>
            /// <param name='timestamps'>
            /// If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every
            /// line of log output. Defaults to false.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ReadNamespacedPodLogAsync(this IKubernetes operations, string name, string namespaceParameter, string container = default(string), bool? follow = default(bool?), bool? insecureSkipTLSVerifyBackend = default(bool?), int? limitBytes = default(int?), string pretty = default(string), bool? previous = default(bool?), int? sinceSeconds = default(int?), int? tailLines = default(int?), bool? timestamps = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ReadNamespacedPodLogWithHttpMessagesAsync(name, namespaceParameter, container, follow, insecureSkipTLSVerifyBackend, limitBytes, pretty, previous, sinceSeconds, tailLines, timestamps, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect GET requests to portforward of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodPortForwardOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='ports'>
            /// List of ports to forward Required when using WebSockets
            /// </param>
            public static Stream ConnectGetNamespacedPodPortforward(this IKubernetes operations, string name, string namespaceParameter, int? ports = default(int?))
            {
                return operations.ConnectGetNamespacedPodPortforwardAsync(name, namespaceParameter, ports).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to portforward of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodPortForwardOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='ports'>
            /// List of ports to forward Required when using WebSockets
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNamespacedPodPortforwardAsync(this IKubernetes operations, string name, string namespaceParameter, int? ports = default(int?), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNamespacedPodPortforwardWithHttpMessagesAsync(name, namespaceParameter, ports, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to portforward of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodPortForwardOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='ports'>
            /// List of ports to forward Required when using WebSockets
            /// </param>
            public static Stream ConnectPostNamespacedPodPortforward(this IKubernetes operations, string name, string namespaceParameter, int? ports = default(int?))
            {
                return operations.ConnectPostNamespacedPodPortforwardAsync(name, namespaceParameter, ports).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to portforward of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodPortForwardOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='ports'>
            /// List of ports to forward Required when using WebSockets
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNamespacedPodPortforwardAsync(this IKubernetes operations, string name, string namespaceParameter, int? ports = default(int?), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNamespacedPodPortforwardWithHttpMessagesAsync(name, namespaceParameter, ports, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect DELETE requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectDeleteNamespacedPodProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectDeleteNamespacedPodProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect DELETE requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectDeleteNamespacedPodProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectDeleteNamespacedPodProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect GET requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectGetNamespacedPodProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectGetNamespacedPodProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNamespacedPodProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNamespacedPodProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect HEAD requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectHeadNamespacedPodProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectHeadNamespacedPodProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect HEAD requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectHeadNamespacedPodProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectHeadNamespacedPodProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PATCH requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectPatchNamespacedPodProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectPatchNamespacedPodProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PATCH requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPatchNamespacedPodProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPatchNamespacedPodProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectPostNamespacedPodProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectPostNamespacedPodProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNamespacedPodProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNamespacedPodProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PUT requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectPutNamespacedPodProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectPutNamespacedPodProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PUT requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPutNamespacedPodProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPutNamespacedPodProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect DELETE requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectDeleteNamespacedPodProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectDeleteNamespacedPodProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect DELETE requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectDeleteNamespacedPodProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectDeleteNamespacedPodProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect GET requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectGetNamespacedPodProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectGetNamespacedPodProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNamespacedPodProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNamespacedPodProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect HEAD requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectHeadNamespacedPodProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectHeadNamespacedPodProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect HEAD requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectHeadNamespacedPodProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectHeadNamespacedPodProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PATCH requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectPatchNamespacedPodProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectPatchNamespacedPodProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PATCH requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPatchNamespacedPodProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPatchNamespacedPodProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectPostNamespacedPodProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectPostNamespacedPodProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNamespacedPodProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNamespacedPodProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PUT requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            public static Stream ConnectPutNamespacedPodProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectPutNamespacedPodProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PUT requests to proxy of Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to pod.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPutNamespacedPodProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPutNamespacedPodProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// read status of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Pod ReadNamespacedPodStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPodStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Pod> ReadNamespacedPodStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPodStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Pod PatchNamespacedPodStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPodStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Pod> PatchNamespacedPodStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPodStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Pod ReplaceNamespacedPodStatus(this IKubernetes operations, V1Pod body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPodStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Pod
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Pod> ReplaceNamespacedPodStatusAsync(this IKubernetes operations, V1Pod body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPodStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedPodTemplate(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedPodTemplateAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedPodTemplateAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedPodTemplateWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodTemplateList ListNamespacedPodTemplate(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedPodTemplateAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodTemplateList> ListNamespacedPodTemplateAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedPodTemplateWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodTemplate CreateNamespacedPodTemplate(this IKubernetes operations, V1PodTemplate body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedPodTemplateAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodTemplate> CreateNamespacedPodTemplateAsync(this IKubernetes operations, V1PodTemplate body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedPodTemplateWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodTemplate
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodTemplate DeleteNamespacedPodTemplate(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedPodTemplateAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodTemplate
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodTemplate> DeleteNamespacedPodTemplateAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedPodTemplateWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodTemplate
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodTemplate ReadNamespacedPodTemplate(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPodTemplateAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodTemplate
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodTemplate> ReadNamespacedPodTemplateAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPodTemplateWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodTemplate
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodTemplate PatchNamespacedPodTemplate(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPodTemplateAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodTemplate
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodTemplate> PatchNamespacedPodTemplateAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPodTemplateWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodTemplate
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodTemplate ReplaceNamespacedPodTemplate(this IKubernetes operations, V1PodTemplate body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPodTemplateAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodTemplate
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodTemplate> ReplaceNamespacedPodTemplateAsync(this IKubernetes operations, V1PodTemplate body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPodTemplateWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedReplicationController(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedReplicationControllerAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedReplicationControllerAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedReplicationControllerWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicationControllerList ListNamespacedReplicationController(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedReplicationControllerAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationControllerList> ListNamespacedReplicationControllerAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedReplicationControllerWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicationController CreateNamespacedReplicationController(this IKubernetes operations, V1ReplicationController body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedReplicationControllerAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationController> CreateNamespacedReplicationControllerAsync(this IKubernetes operations, V1ReplicationController body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedReplicationControllerWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedReplicationController(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedReplicationControllerAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedReplicationControllerAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedReplicationControllerWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicationController ReadNamespacedReplicationController(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedReplicationControllerAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationController> ReadNamespacedReplicationControllerAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedReplicationControllerWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicationController PatchNamespacedReplicationController(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedReplicationControllerAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationController> PatchNamespacedReplicationControllerAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedReplicationControllerWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicationController ReplaceNamespacedReplicationController(this IKubernetes operations, V1ReplicationController body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedReplicationControllerAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationController> ReplaceNamespacedReplicationControllerAsync(this IKubernetes operations, V1ReplicationController body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedReplicationControllerWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read scale of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale ReadNamespacedReplicationControllerScale(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedReplicationControllerScaleAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read scale of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> ReadNamespacedReplicationControllerScaleAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedReplicationControllerScaleWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update scale of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale PatchNamespacedReplicationControllerScale(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedReplicationControllerScaleAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update scale of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> PatchNamespacedReplicationControllerScaleAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedReplicationControllerScaleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace scale of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale ReplaceNamespacedReplicationControllerScale(this IKubernetes operations, V1Scale body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedReplicationControllerScaleAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace scale of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> ReplaceNamespacedReplicationControllerScaleAsync(this IKubernetes operations, V1Scale body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedReplicationControllerScaleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicationController ReadNamespacedReplicationControllerStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedReplicationControllerStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationController> ReadNamespacedReplicationControllerStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedReplicationControllerStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicationController PatchNamespacedReplicationControllerStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedReplicationControllerStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationController> PatchNamespacedReplicationControllerStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedReplicationControllerStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicationController ReplaceNamespacedReplicationControllerStatus(this IKubernetes operations, V1ReplicationController body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedReplicationControllerStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicationController
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationController> ReplaceNamespacedReplicationControllerStatusAsync(this IKubernetes operations, V1ReplicationController body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedReplicationControllerStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedResourceQuota(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedResourceQuotaAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedResourceQuotaAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedResourceQuotaWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuotaList ListNamespacedResourceQuota(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedResourceQuotaAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuotaList> ListNamespacedResourceQuotaAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedResourceQuotaWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuota CreateNamespacedResourceQuota(this IKubernetes operations, V1ResourceQuota body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedResourceQuotaAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuota> CreateNamespacedResourceQuotaAsync(this IKubernetes operations, V1ResourceQuota body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedResourceQuotaWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuota DeleteNamespacedResourceQuota(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedResourceQuotaAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuota> DeleteNamespacedResourceQuotaAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedResourceQuotaWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuota ReadNamespacedResourceQuota(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedResourceQuotaAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuota> ReadNamespacedResourceQuotaAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedResourceQuotaWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuota PatchNamespacedResourceQuota(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedResourceQuotaAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuota> PatchNamespacedResourceQuotaAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedResourceQuotaWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuota ReplaceNamespacedResourceQuota(this IKubernetes operations, V1ResourceQuota body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedResourceQuotaAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuota> ReplaceNamespacedResourceQuotaAsync(this IKubernetes operations, V1ResourceQuota body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedResourceQuotaWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuota ReadNamespacedResourceQuotaStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedResourceQuotaStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuota> ReadNamespacedResourceQuotaStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedResourceQuotaStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuota PatchNamespacedResourceQuotaStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedResourceQuotaStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuota> PatchNamespacedResourceQuotaStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedResourceQuotaStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ResourceQuota ReplaceNamespacedResourceQuotaStatus(this IKubernetes operations, V1ResourceQuota body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedResourceQuotaStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ResourceQuota
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuota> ReplaceNamespacedResourceQuotaStatusAsync(this IKubernetes operations, V1ResourceQuota body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedResourceQuotaStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedSecret(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedSecretAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedSecretAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedSecretWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1SecretList ListNamespacedSecret(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedSecretAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1SecretList> ListNamespacedSecretAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedSecretWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Secret CreateNamespacedSecret(this IKubernetes operations, V1Secret body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedSecretAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Secret> CreateNamespacedSecretAsync(this IKubernetes operations, V1Secret body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedSecretWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Secret
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedSecret(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedSecretAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Secret
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedSecretAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedSecretWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Secret
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Secret ReadNamespacedSecret(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedSecretAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Secret
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Secret> ReadNamespacedSecretAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedSecretWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Secret
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Secret PatchNamespacedSecret(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedSecretAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Secret
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Secret> PatchNamespacedSecretAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedSecretWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Secret
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Secret ReplaceNamespacedSecret(this IKubernetes operations, V1Secret body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedSecretAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Secret
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Secret> ReplaceNamespacedSecretAsync(this IKubernetes operations, V1Secret body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedSecretWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedServiceAccount(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedServiceAccountAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedServiceAccountAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedServiceAccountWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ServiceAccountList ListNamespacedServiceAccount(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedServiceAccountAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceAccountList> ListNamespacedServiceAccountAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedServiceAccountWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ServiceAccount CreateNamespacedServiceAccount(this IKubernetes operations, V1ServiceAccount body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedServiceAccountAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceAccount> CreateNamespacedServiceAccountAsync(this IKubernetes operations, V1ServiceAccount body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedServiceAccountWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceAccount
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ServiceAccount DeleteNamespacedServiceAccount(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedServiceAccountAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceAccount
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceAccount> DeleteNamespacedServiceAccountAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedServiceAccountWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceAccount
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ServiceAccount ReadNamespacedServiceAccount(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedServiceAccountAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceAccount
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceAccount> ReadNamespacedServiceAccountAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedServiceAccountWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ServiceAccount
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ServiceAccount PatchNamespacedServiceAccount(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedServiceAccountAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ServiceAccount
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceAccount> PatchNamespacedServiceAccountAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedServiceAccountWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ServiceAccount
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ServiceAccount ReplaceNamespacedServiceAccount(this IKubernetes operations, V1ServiceAccount body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedServiceAccountAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ServiceAccount
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceAccount> ReplaceNamespacedServiceAccountAsync(this IKubernetes operations, V1ServiceAccount body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedServiceAccountWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create token of a ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the TokenRequest
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Authenticationv1TokenRequest CreateNamespacedServiceAccountToken(this IKubernetes operations, Authenticationv1TokenRequest body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedServiceAccountTokenAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create token of a ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the TokenRequest
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Authenticationv1TokenRequest> CreateNamespacedServiceAccountTokenAsync(this IKubernetes operations, Authenticationv1TokenRequest body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedServiceAccountTokenWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ServiceList ListNamespacedService(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedServiceAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceList> ListNamespacedServiceAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedServiceWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Service CreateNamespacedService(this IKubernetes operations, V1Service body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedServiceAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Service> CreateNamespacedServiceAsync(this IKubernetes operations, V1Service body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedServiceWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedService(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedServiceAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedServiceAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedServiceWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Service ReadNamespacedService(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedServiceAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Service> ReadNamespacedServiceAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedServiceWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Service PatchNamespacedService(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedServiceAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Service> PatchNamespacedServiceAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedServiceWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Service ReplaceNamespacedService(this IKubernetes operations, V1Service body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedServiceAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Service> ReplaceNamespacedServiceAsync(this IKubernetes operations, V1Service body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedServiceWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// connect DELETE requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectDeleteNamespacedServiceProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectDeleteNamespacedServiceProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect DELETE requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectDeleteNamespacedServiceProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectDeleteNamespacedServiceProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect GET requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectGetNamespacedServiceProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectGetNamespacedServiceProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNamespacedServiceProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNamespacedServiceProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect HEAD requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectHeadNamespacedServiceProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectHeadNamespacedServiceProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect HEAD requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectHeadNamespacedServiceProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectHeadNamespacedServiceProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PATCH requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectPatchNamespacedServiceProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectPatchNamespacedServiceProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PATCH requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPatchNamespacedServiceProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPatchNamespacedServiceProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectPostNamespacedServiceProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectPostNamespacedServiceProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNamespacedServiceProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNamespacedServiceProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PUT requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectPutNamespacedServiceProxy(this IKubernetes operations, string name, string namespaceParameter, string path = default(string))
            {
                return operations.ConnectPutNamespacedServiceProxyAsync(name, namespaceParameter, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PUT requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPutNamespacedServiceProxyAsync(this IKubernetes operations, string name, string namespaceParameter, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPutNamespacedServiceProxyWithHttpMessagesAsync(name, namespaceParameter, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect DELETE requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectDeleteNamespacedServiceProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectDeleteNamespacedServiceProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect DELETE requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectDeleteNamespacedServiceProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectDeleteNamespacedServiceProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect GET requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectGetNamespacedServiceProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectGetNamespacedServiceProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNamespacedServiceProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNamespacedServiceProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect HEAD requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectHeadNamespacedServiceProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectHeadNamespacedServiceProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect HEAD requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectHeadNamespacedServiceProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectHeadNamespacedServiceProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PATCH requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectPatchNamespacedServiceProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectPatchNamespacedServiceProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PATCH requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPatchNamespacedServiceProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPatchNamespacedServiceProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectPostNamespacedServiceProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectPostNamespacedServiceProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNamespacedServiceProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNamespacedServiceProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PUT requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            public static Stream ConnectPutNamespacedServiceProxyWithPath(this IKubernetes operations, string name, string namespaceParameter, string path, string path1)
            {
                return operations.ConnectPutNamespacedServiceProxyWithPathAsync(name, namespaceParameter, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PUT requests to proxy of Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ServiceProxyOptions
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the part of URLs that include service endpoints, suffixes, and
            /// parameters to use for the current proxy request to service. For example,
            /// the whole request URL is
            /// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
            /// Path is _search?q=user:kimchy.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPutNamespacedServiceProxyWithPathAsync(this IKubernetes operations, string name, string namespaceParameter, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPutNamespacedServiceProxyWithPathWithHttpMessagesAsync(name, namespaceParameter, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// read status of the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Service ReadNamespacedServiceStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedServiceStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Service> ReadNamespacedServiceStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedServiceStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Service PatchNamespacedServiceStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedServiceStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Service> PatchNamespacedServiceStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedServiceStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Service ReplaceNamespacedServiceStatus(this IKubernetes operations, V1Service body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedServiceStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Service
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Service> ReplaceNamespacedServiceStatusAsync(this IKubernetes operations, V1Service body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedServiceStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespace(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespaceAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespaceAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespaceWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Namespace ReadNamespace(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadNamespaceAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Namespace> ReadNamespaceAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespaceWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Namespace PatchNamespace(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespaceAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Namespace> PatchNamespaceAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespaceWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Namespace ReplaceNamespace(this IKubernetes operations, V1Namespace body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespaceAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Namespace> ReplaceNamespaceAsync(this IKubernetes operations, V1Namespace body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespaceWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace finalize of the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Namespace ReplaceNamespaceFinalize(this IKubernetes operations, V1Namespace body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespaceFinalizeAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace finalize of the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Namespace> ReplaceNamespaceFinalizeAsync(this IKubernetes operations, V1Namespace body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespaceFinalizeWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Namespace ReadNamespaceStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadNamespaceStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Namespace> ReadNamespaceStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespaceStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Namespace PatchNamespaceStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespaceStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Namespace> PatchNamespaceStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespaceStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Namespace ReplaceNamespaceStatus(this IKubernetes operations, V1Namespace body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespaceStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Namespace
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Namespace
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Namespace> ReplaceNamespaceStatusAsync(this IKubernetes operations, V1Namespace body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespaceStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNode(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNodeAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNodeAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNodeWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1NodeList ListNode(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNodeAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1NodeList> ListNodeAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNodeWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Node CreateNode(this IKubernetes operations, V1Node body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNodeAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Node> CreateNodeAsync(this IKubernetes operations, V1Node body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNodeWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNode(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNodeAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNodeAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNodeWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Node ReadNode(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadNodeAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Node> ReadNodeAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNodeWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Node PatchNode(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNodeAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Node> PatchNodeAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNodeWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Node ReplaceNode(this IKubernetes operations, V1Node body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNodeAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Node> ReplaceNodeAsync(this IKubernetes operations, V1Node body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNodeWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// connect DELETE requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectDeleteNodeProxy(this IKubernetes operations, string name, string path = default(string))
            {
                return operations.ConnectDeleteNodeProxyAsync(name, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect DELETE requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectDeleteNodeProxyAsync(this IKubernetes operations, string name, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectDeleteNodeProxyWithHttpMessagesAsync(name, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect GET requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectGetNodeProxy(this IKubernetes operations, string name, string path = default(string))
            {
                return operations.ConnectGetNodeProxyAsync(name, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNodeProxyAsync(this IKubernetes operations, string name, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNodeProxyWithHttpMessagesAsync(name, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect HEAD requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectHeadNodeProxy(this IKubernetes operations, string name, string path = default(string))
            {
                return operations.ConnectHeadNodeProxyAsync(name, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect HEAD requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectHeadNodeProxyAsync(this IKubernetes operations, string name, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectHeadNodeProxyWithHttpMessagesAsync(name, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PATCH requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectPatchNodeProxy(this IKubernetes operations, string name, string path = default(string))
            {
                return operations.ConnectPatchNodeProxyAsync(name, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PATCH requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPatchNodeProxyAsync(this IKubernetes operations, string name, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPatchNodeProxyWithHttpMessagesAsync(name, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectPostNodeProxy(this IKubernetes operations, string name, string path = default(string))
            {
                return operations.ConnectPostNodeProxyAsync(name, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNodeProxyAsync(this IKubernetes operations, string name, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNodeProxyWithHttpMessagesAsync(name, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PUT requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectPutNodeProxy(this IKubernetes operations, string name, string path = default(string))
            {
                return operations.ConnectPutNodeProxyAsync(name, path).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PUT requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPutNodeProxyAsync(this IKubernetes operations, string name, string path = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPutNodeProxyWithHttpMessagesAsync(name, path, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect DELETE requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectDeleteNodeProxyWithPath(this IKubernetes operations, string name, string path, string path1)
            {
                return operations.ConnectDeleteNodeProxyWithPathAsync(name, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect DELETE requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectDeleteNodeProxyWithPathAsync(this IKubernetes operations, string name, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectDeleteNodeProxyWithPathWithHttpMessagesAsync(name, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect GET requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectGetNodeProxyWithPath(this IKubernetes operations, string name, string path, string path1)
            {
                return operations.ConnectGetNodeProxyWithPathAsync(name, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect GET requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectGetNodeProxyWithPathAsync(this IKubernetes operations, string name, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectGetNodeProxyWithPathWithHttpMessagesAsync(name, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect HEAD requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectHeadNodeProxyWithPath(this IKubernetes operations, string name, string path, string path1)
            {
                return operations.ConnectHeadNodeProxyWithPathAsync(name, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect HEAD requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectHeadNodeProxyWithPathAsync(this IKubernetes operations, string name, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectHeadNodeProxyWithPathWithHttpMessagesAsync(name, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PATCH requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectPatchNodeProxyWithPath(this IKubernetes operations, string name, string path, string path1)
            {
                return operations.ConnectPatchNodeProxyWithPathAsync(name, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PATCH requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPatchNodeProxyWithPathAsync(this IKubernetes operations, string name, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPatchNodeProxyWithPathWithHttpMessagesAsync(name, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect POST requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectPostNodeProxyWithPath(this IKubernetes operations, string name, string path, string path1)
            {
                return operations.ConnectPostNodeProxyWithPathAsync(name, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect POST requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPostNodeProxyWithPathAsync(this IKubernetes operations, string name, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPostNodeProxyWithPathWithHttpMessagesAsync(name, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// connect PUT requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            public static Stream ConnectPutNodeProxyWithPath(this IKubernetes operations, string name, string path, string path1)
            {
                return operations.ConnectPutNodeProxyWithPathAsync(name, path, path1).GetAwaiter().GetResult();
            }

            /// <summary>
            /// connect PUT requests to proxy of Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NodeProxyOptions
            /// </param>
            /// <param name='path'>
            /// path to the resource
            /// </param>
            /// <param name='path1'>
            /// Path is the URL path to use for the current proxy request to node.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Stream> ConnectPutNodeProxyWithPathAsync(this IKubernetes operations, string name, string path, string path1, CancellationToken cancellationToken = default(CancellationToken))
            {
                var _result = await operations.ConnectPutNodeProxyWithPathWithHttpMessagesAsync(name, path, path1, null, cancellationToken).ConfigureAwait(false);
                _result.Request.Dispose();
                return _result.Body;
            }

            /// <summary>
            /// read status of the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Node ReadNodeStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadNodeStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Node> ReadNodeStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNodeStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Node PatchNodeStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNodeStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Node> PatchNodeStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNodeStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Node ReplaceNodeStatus(this IKubernetes operations, V1Node body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNodeStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Node
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Node
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Node> ReplaceNodeStatusAsync(this IKubernetes operations, V1Node body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNodeStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1PersistentVolumeClaimList ListPersistentVolumeClaimForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListPersistentVolumeClaimForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PersistentVolumeClaim
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeClaimList> ListPersistentVolumeClaimForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPersistentVolumeClaimForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionPersistentVolume(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionPersistentVolumeAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionPersistentVolumeAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionPersistentVolumeWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolumeList ListPersistentVolume(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListPersistentVolumeAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolumeList> ListPersistentVolumeAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPersistentVolumeWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolume CreatePersistentVolume(this IKubernetes operations, V1PersistentVolume body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreatePersistentVolumeAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolume> CreatePersistentVolumeAsync(this IKubernetes operations, V1PersistentVolume body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreatePersistentVolumeWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolume DeletePersistentVolume(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeletePersistentVolumeAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolume> DeletePersistentVolumeAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeletePersistentVolumeWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolume ReadPersistentVolume(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadPersistentVolumeAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolume> ReadPersistentVolumeAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadPersistentVolumeWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolume PatchPersistentVolume(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchPersistentVolumeAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolume> PatchPersistentVolumeAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchPersistentVolumeWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolume ReplacePersistentVolume(this IKubernetes operations, V1PersistentVolume body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplacePersistentVolumeAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolume> ReplacePersistentVolumeAsync(this IKubernetes operations, V1PersistentVolume body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplacePersistentVolumeWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolume ReadPersistentVolumeStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadPersistentVolumeStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolume> ReadPersistentVolumeStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadPersistentVolumeStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolume PatchPersistentVolumeStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchPersistentVolumeStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolume> PatchPersistentVolumeStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchPersistentVolumeStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PersistentVolume ReplacePersistentVolumeStatus(this IKubernetes operations, V1PersistentVolume body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplacePersistentVolumeStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified PersistentVolume
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PersistentVolume
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PersistentVolume> ReplacePersistentVolumeStatusAsync(this IKubernetes operations, V1PersistentVolume body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplacePersistentVolumeStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1PodList ListPodForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListPodForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Pod
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodList> ListPodForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPodForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1PodTemplateList ListPodTemplateForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListPodTemplateForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PodTemplate
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodTemplateList> ListPodTemplateForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPodTemplateForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1ReplicationControllerList ListReplicationControllerForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListReplicationControllerForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ReplicationController
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicationControllerList> ListReplicationControllerForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListReplicationControllerForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1ResourceQuotaList ListResourceQuotaForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListResourceQuotaForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ResourceQuota
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ResourceQuotaList> ListResourceQuotaForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListResourceQuotaForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1SecretList ListSecretForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListSecretForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Secret
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1SecretList> ListSecretForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListSecretForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1ServiceAccountList ListServiceAccountForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListServiceAccountForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ServiceAccount
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceAccountList> ListServiceAccountForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListServiceAccountForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1ServiceList ListServiceForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListServiceForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Service
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ServiceList> ListServiceForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListServiceForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available API versions
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroupList GetAPIVersions1(this IKubernetes operations)
            {
                return operations.GetAPIVersions1Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available API versions
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroupList> GetAPIVersions1Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIVersions1WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup(this IKubernetes operations)
            {
                return operations.GetAPIGroupAsync().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroupAsync(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroupWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources1(this IKubernetes operations)
            {
                return operations.GetAPIResources1Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources1Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources1WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionMutatingWebhookConfiguration(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionMutatingWebhookConfigurationAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionMutatingWebhookConfigurationAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionMutatingWebhookConfigurationWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1MutatingWebhookConfigurationList ListMutatingWebhookConfiguration(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListMutatingWebhookConfigurationAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1MutatingWebhookConfigurationList> ListMutatingWebhookConfigurationAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListMutatingWebhookConfigurationWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1MutatingWebhookConfiguration CreateMutatingWebhookConfiguration(this IKubernetes operations, V1MutatingWebhookConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateMutatingWebhookConfigurationAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1MutatingWebhookConfiguration> CreateMutatingWebhookConfigurationAsync(this IKubernetes operations, V1MutatingWebhookConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateMutatingWebhookConfigurationWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteMutatingWebhookConfiguration(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteMutatingWebhookConfigurationAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteMutatingWebhookConfigurationAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteMutatingWebhookConfigurationWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1MutatingWebhookConfiguration ReadMutatingWebhookConfiguration(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadMutatingWebhookConfigurationAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1MutatingWebhookConfiguration> ReadMutatingWebhookConfigurationAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadMutatingWebhookConfigurationWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1MutatingWebhookConfiguration PatchMutatingWebhookConfiguration(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchMutatingWebhookConfigurationAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1MutatingWebhookConfiguration> PatchMutatingWebhookConfigurationAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchMutatingWebhookConfigurationWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1MutatingWebhookConfiguration ReplaceMutatingWebhookConfiguration(this IKubernetes operations, V1MutatingWebhookConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceMutatingWebhookConfigurationAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1MutatingWebhookConfiguration> ReplaceMutatingWebhookConfigurationAsync(this IKubernetes operations, V1MutatingWebhookConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceMutatingWebhookConfigurationWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionValidatingWebhookConfiguration(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionValidatingWebhookConfigurationAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionValidatingWebhookConfigurationAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionValidatingWebhookConfigurationWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ValidatingWebhookConfigurationList ListValidatingWebhookConfiguration(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListValidatingWebhookConfigurationAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ValidatingWebhookConfigurationList> ListValidatingWebhookConfigurationAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListValidatingWebhookConfigurationWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ValidatingWebhookConfiguration CreateValidatingWebhookConfiguration(this IKubernetes operations, V1ValidatingWebhookConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateValidatingWebhookConfigurationAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ValidatingWebhookConfiguration> CreateValidatingWebhookConfigurationAsync(this IKubernetes operations, V1ValidatingWebhookConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateValidatingWebhookConfigurationWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteValidatingWebhookConfiguration(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteValidatingWebhookConfigurationAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteValidatingWebhookConfigurationAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteValidatingWebhookConfigurationWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ValidatingWebhookConfiguration ReadValidatingWebhookConfiguration(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadValidatingWebhookConfigurationAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ValidatingWebhookConfiguration> ReadValidatingWebhookConfigurationAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadValidatingWebhookConfigurationWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ValidatingWebhookConfiguration PatchValidatingWebhookConfiguration(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchValidatingWebhookConfigurationAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ValidatingWebhookConfiguration> PatchValidatingWebhookConfigurationAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchValidatingWebhookConfigurationWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ValidatingWebhookConfiguration ReplaceValidatingWebhookConfiguration(this IKubernetes operations, V1ValidatingWebhookConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceValidatingWebhookConfigurationAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ValidatingWebhookConfiguration> ReplaceValidatingWebhookConfigurationAsync(this IKubernetes operations, V1ValidatingWebhookConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceValidatingWebhookConfigurationWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources2(this IKubernetes operations)
            {
                return operations.GetAPIResources2Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources2Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources2WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionMutatingWebhookConfiguration1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionMutatingWebhookConfiguration1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionMutatingWebhookConfiguration1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionMutatingWebhookConfiguration1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1MutatingWebhookConfigurationList ListMutatingWebhookConfiguration1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListMutatingWebhookConfiguration1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1MutatingWebhookConfigurationList> ListMutatingWebhookConfiguration1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListMutatingWebhookConfiguration1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1MutatingWebhookConfiguration CreateMutatingWebhookConfiguration1(this IKubernetes operations, V1beta1MutatingWebhookConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateMutatingWebhookConfiguration1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1MutatingWebhookConfiguration> CreateMutatingWebhookConfiguration1Async(this IKubernetes operations, V1beta1MutatingWebhookConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateMutatingWebhookConfiguration1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteMutatingWebhookConfiguration1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteMutatingWebhookConfiguration1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteMutatingWebhookConfiguration1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteMutatingWebhookConfiguration1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1MutatingWebhookConfiguration ReadMutatingWebhookConfiguration1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadMutatingWebhookConfiguration1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1MutatingWebhookConfiguration> ReadMutatingWebhookConfiguration1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadMutatingWebhookConfiguration1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1MutatingWebhookConfiguration PatchMutatingWebhookConfiguration1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchMutatingWebhookConfiguration1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1MutatingWebhookConfiguration> PatchMutatingWebhookConfiguration1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchMutatingWebhookConfiguration1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1MutatingWebhookConfiguration ReplaceMutatingWebhookConfiguration1(this IKubernetes operations, V1beta1MutatingWebhookConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceMutatingWebhookConfiguration1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified MutatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the MutatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1MutatingWebhookConfiguration> ReplaceMutatingWebhookConfiguration1Async(this IKubernetes operations, V1beta1MutatingWebhookConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceMutatingWebhookConfiguration1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionValidatingWebhookConfiguration1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionValidatingWebhookConfiguration1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionValidatingWebhookConfiguration1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionValidatingWebhookConfiguration1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ValidatingWebhookConfigurationList ListValidatingWebhookConfiguration1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListValidatingWebhookConfiguration1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ValidatingWebhookConfigurationList> ListValidatingWebhookConfiguration1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListValidatingWebhookConfiguration1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ValidatingWebhookConfiguration CreateValidatingWebhookConfiguration1(this IKubernetes operations, V1beta1ValidatingWebhookConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateValidatingWebhookConfiguration1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ValidatingWebhookConfiguration> CreateValidatingWebhookConfiguration1Async(this IKubernetes operations, V1beta1ValidatingWebhookConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateValidatingWebhookConfiguration1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteValidatingWebhookConfiguration1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteValidatingWebhookConfiguration1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteValidatingWebhookConfiguration1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteValidatingWebhookConfiguration1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ValidatingWebhookConfiguration ReadValidatingWebhookConfiguration1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadValidatingWebhookConfiguration1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ValidatingWebhookConfiguration> ReadValidatingWebhookConfiguration1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadValidatingWebhookConfiguration1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ValidatingWebhookConfiguration PatchValidatingWebhookConfiguration1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchValidatingWebhookConfiguration1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ValidatingWebhookConfiguration> PatchValidatingWebhookConfiguration1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchValidatingWebhookConfiguration1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ValidatingWebhookConfiguration ReplaceValidatingWebhookConfiguration1(this IKubernetes operations, V1beta1ValidatingWebhookConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceValidatingWebhookConfiguration1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ValidatingWebhookConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ValidatingWebhookConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ValidatingWebhookConfiguration> ReplaceValidatingWebhookConfiguration1Async(this IKubernetes operations, V1beta1ValidatingWebhookConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceValidatingWebhookConfiguration1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup1(this IKubernetes operations)
            {
                return operations.GetAPIGroup1Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup1Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup1WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources3(this IKubernetes operations)
            {
                return operations.GetAPIResources3Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources3Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources3WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionCustomResourceDefinition(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionCustomResourceDefinitionAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionCustomResourceDefinitionAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionCustomResourceDefinitionWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CustomResourceDefinitionList ListCustomResourceDefinition(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListCustomResourceDefinitionAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CustomResourceDefinitionList> ListCustomResourceDefinitionAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCustomResourceDefinitionWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CustomResourceDefinition CreateCustomResourceDefinition(this IKubernetes operations, V1CustomResourceDefinition body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateCustomResourceDefinitionAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CustomResourceDefinition> CreateCustomResourceDefinitionAsync(this IKubernetes operations, V1CustomResourceDefinition body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateCustomResourceDefinitionWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCustomResourceDefinition(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteCustomResourceDefinitionAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCustomResourceDefinitionAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCustomResourceDefinitionWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CustomResourceDefinition ReadCustomResourceDefinition(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCustomResourceDefinitionAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CustomResourceDefinition> ReadCustomResourceDefinitionAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCustomResourceDefinitionWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CustomResourceDefinition PatchCustomResourceDefinition(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCustomResourceDefinitionAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CustomResourceDefinition> PatchCustomResourceDefinitionAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCustomResourceDefinitionWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CustomResourceDefinition ReplaceCustomResourceDefinition(this IKubernetes operations, V1CustomResourceDefinition body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCustomResourceDefinitionAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CustomResourceDefinition> ReplaceCustomResourceDefinitionAsync(this IKubernetes operations, V1CustomResourceDefinition body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCustomResourceDefinitionWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CustomResourceDefinition ReadCustomResourceDefinitionStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCustomResourceDefinitionStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CustomResourceDefinition> ReadCustomResourceDefinitionStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCustomResourceDefinitionStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CustomResourceDefinition PatchCustomResourceDefinitionStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCustomResourceDefinitionStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CustomResourceDefinition> PatchCustomResourceDefinitionStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCustomResourceDefinitionStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CustomResourceDefinition ReplaceCustomResourceDefinitionStatus(this IKubernetes operations, V1CustomResourceDefinition body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCustomResourceDefinitionStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CustomResourceDefinition> ReplaceCustomResourceDefinitionStatusAsync(this IKubernetes operations, V1CustomResourceDefinition body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCustomResourceDefinitionStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources4(this IKubernetes operations)
            {
                return operations.GetAPIResources4Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources4Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources4WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionCustomResourceDefinition1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionCustomResourceDefinition1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionCustomResourceDefinition1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionCustomResourceDefinition1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CustomResourceDefinitionList ListCustomResourceDefinition1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListCustomResourceDefinition1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CustomResourceDefinitionList> ListCustomResourceDefinition1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCustomResourceDefinition1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CustomResourceDefinition CreateCustomResourceDefinition1(this IKubernetes operations, V1beta1CustomResourceDefinition body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateCustomResourceDefinition1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CustomResourceDefinition> CreateCustomResourceDefinition1Async(this IKubernetes operations, V1beta1CustomResourceDefinition body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateCustomResourceDefinition1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCustomResourceDefinition1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteCustomResourceDefinition1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCustomResourceDefinition1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCustomResourceDefinition1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CustomResourceDefinition ReadCustomResourceDefinition1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCustomResourceDefinition1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CustomResourceDefinition> ReadCustomResourceDefinition1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCustomResourceDefinition1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CustomResourceDefinition PatchCustomResourceDefinition1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCustomResourceDefinition1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CustomResourceDefinition> PatchCustomResourceDefinition1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCustomResourceDefinition1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CustomResourceDefinition ReplaceCustomResourceDefinition1(this IKubernetes operations, V1beta1CustomResourceDefinition body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCustomResourceDefinition1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CustomResourceDefinition> ReplaceCustomResourceDefinition1Async(this IKubernetes operations, V1beta1CustomResourceDefinition body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCustomResourceDefinition1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CustomResourceDefinition ReadCustomResourceDefinitionStatus1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCustomResourceDefinitionStatus1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CustomResourceDefinition> ReadCustomResourceDefinitionStatus1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCustomResourceDefinitionStatus1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CustomResourceDefinition PatchCustomResourceDefinitionStatus1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCustomResourceDefinitionStatus1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CustomResourceDefinition> PatchCustomResourceDefinitionStatus1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCustomResourceDefinitionStatus1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CustomResourceDefinition ReplaceCustomResourceDefinitionStatus1(this IKubernetes operations, V1beta1CustomResourceDefinition body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCustomResourceDefinitionStatus1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified CustomResourceDefinition
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CustomResourceDefinition
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CustomResourceDefinition> ReplaceCustomResourceDefinitionStatus1Async(this IKubernetes operations, V1beta1CustomResourceDefinition body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCustomResourceDefinitionStatus1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup2(this IKubernetes operations)
            {
                return operations.GetAPIGroup2Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup2Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup2WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources5(this IKubernetes operations)
            {
                return operations.GetAPIResources5Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources5Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources5WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionAPIService(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionAPIServiceAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionAPIServiceAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionAPIServiceWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1APIServiceList ListAPIService(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListAPIServiceAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIServiceList> ListAPIServiceAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListAPIServiceWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1APIService CreateAPIService(this IKubernetes operations, V1APIService body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateAPIServiceAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIService> CreateAPIServiceAsync(this IKubernetes operations, V1APIService body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateAPIServiceWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteAPIService(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteAPIServiceAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteAPIServiceAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteAPIServiceWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1APIService ReadAPIService(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadAPIServiceAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIService> ReadAPIServiceAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadAPIServiceWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1APIService PatchAPIService(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchAPIServiceAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIService> PatchAPIServiceAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchAPIServiceWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1APIService ReplaceAPIService(this IKubernetes operations, V1APIService body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceAPIServiceAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIService> ReplaceAPIServiceAsync(this IKubernetes operations, V1APIService body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceAPIServiceWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1APIService ReadAPIServiceStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadAPIServiceStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIService> ReadAPIServiceStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadAPIServiceStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1APIService PatchAPIServiceStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchAPIServiceStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIService> PatchAPIServiceStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchAPIServiceStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1APIService ReplaceAPIServiceStatus(this IKubernetes operations, V1APIService body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceAPIServiceStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIService> ReplaceAPIServiceStatusAsync(this IKubernetes operations, V1APIService body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceAPIServiceStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources6(this IKubernetes operations)
            {
                return operations.GetAPIResources6Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources6Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources6WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionAPIService1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionAPIService1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionAPIService1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionAPIService1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1APIServiceList ListAPIService1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListAPIService1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1APIServiceList> ListAPIService1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListAPIService1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1APIService CreateAPIService1(this IKubernetes operations, V1beta1APIService body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateAPIService1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1APIService> CreateAPIService1Async(this IKubernetes operations, V1beta1APIService body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateAPIService1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteAPIService1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteAPIService1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteAPIService1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteAPIService1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1APIService ReadAPIService1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadAPIService1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1APIService> ReadAPIService1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadAPIService1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1APIService PatchAPIService1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchAPIService1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1APIService> PatchAPIService1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchAPIService1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1APIService ReplaceAPIService1(this IKubernetes operations, V1beta1APIService body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceAPIService1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1APIService> ReplaceAPIService1Async(this IKubernetes operations, V1beta1APIService body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceAPIService1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1APIService ReadAPIServiceStatus1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadAPIServiceStatus1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1APIService> ReadAPIServiceStatus1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadAPIServiceStatus1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1APIService PatchAPIServiceStatus1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchAPIServiceStatus1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1APIService> PatchAPIServiceStatus1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchAPIServiceStatus1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1APIService ReplaceAPIServiceStatus1(this IKubernetes operations, V1beta1APIService body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceAPIServiceStatus1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified APIService
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the APIService
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1APIService> ReplaceAPIServiceStatus1Async(this IKubernetes operations, V1beta1APIService body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceAPIServiceStatus1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup3(this IKubernetes operations)
            {
                return operations.GetAPIGroup3Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup3Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup3WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources7(this IKubernetes operations)
            {
                return operations.GetAPIResources7Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources7Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources7WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1ControllerRevisionList ListControllerRevisionForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListControllerRevisionForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ControllerRevisionList> ListControllerRevisionForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListControllerRevisionForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1DaemonSetList ListDaemonSetForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListDaemonSetForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSetList> ListDaemonSetForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListDaemonSetForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1DeploymentList ListDeploymentForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListDeploymentForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DeploymentList> ListDeploymentForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListDeploymentForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedControllerRevision(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedControllerRevisionAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedControllerRevisionAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedControllerRevisionWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ControllerRevisionList ListNamespacedControllerRevision(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedControllerRevisionAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ControllerRevisionList> ListNamespacedControllerRevisionAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedControllerRevisionWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ControllerRevision CreateNamespacedControllerRevision(this IKubernetes operations, V1ControllerRevision body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedControllerRevisionAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ControllerRevision> CreateNamespacedControllerRevisionAsync(this IKubernetes operations, V1ControllerRevision body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedControllerRevisionWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ControllerRevision
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedControllerRevision(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedControllerRevisionAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ControllerRevision
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedControllerRevisionAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedControllerRevisionWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ControllerRevision
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ControllerRevision ReadNamespacedControllerRevision(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedControllerRevisionAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ControllerRevision
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ControllerRevision> ReadNamespacedControllerRevisionAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedControllerRevisionWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ControllerRevision
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ControllerRevision PatchNamespacedControllerRevision(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedControllerRevisionAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ControllerRevision
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ControllerRevision> PatchNamespacedControllerRevisionAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedControllerRevisionWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ControllerRevision
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ControllerRevision ReplaceNamespacedControllerRevision(this IKubernetes operations, V1ControllerRevision body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedControllerRevisionAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ControllerRevision
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ControllerRevision
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ControllerRevision> ReplaceNamespacedControllerRevisionAsync(this IKubernetes operations, V1ControllerRevision body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedControllerRevisionWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedDaemonSet(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedDaemonSetAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedDaemonSetAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedDaemonSetWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DaemonSetList ListNamespacedDaemonSet(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedDaemonSetAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSetList> ListNamespacedDaemonSetAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedDaemonSetWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DaemonSet CreateNamespacedDaemonSet(this IKubernetes operations, V1DaemonSet body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedDaemonSetAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSet> CreateNamespacedDaemonSetAsync(this IKubernetes operations, V1DaemonSet body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedDaemonSetWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedDaemonSet(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedDaemonSetAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedDaemonSetAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedDaemonSetWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DaemonSet ReadNamespacedDaemonSet(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedDaemonSetAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSet> ReadNamespacedDaemonSetAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedDaemonSetWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DaemonSet PatchNamespacedDaemonSet(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedDaemonSetAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSet> PatchNamespacedDaemonSetAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedDaemonSetWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DaemonSet ReplaceNamespacedDaemonSet(this IKubernetes operations, V1DaemonSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedDaemonSetAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSet> ReplaceNamespacedDaemonSetAsync(this IKubernetes operations, V1DaemonSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedDaemonSetWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DaemonSet ReadNamespacedDaemonSetStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedDaemonSetStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSet> ReadNamespacedDaemonSetStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedDaemonSetStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DaemonSet PatchNamespacedDaemonSetStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedDaemonSetStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSet> PatchNamespacedDaemonSetStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedDaemonSetStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DaemonSet ReplaceNamespacedDaemonSetStatus(this IKubernetes operations, V1DaemonSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedDaemonSetStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified DaemonSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the DaemonSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DaemonSet> ReplaceNamespacedDaemonSetStatusAsync(this IKubernetes operations, V1DaemonSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedDaemonSetStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedDeployment(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedDeploymentAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedDeploymentAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedDeploymentWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1DeploymentList ListNamespacedDeployment(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedDeploymentAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1DeploymentList> ListNamespacedDeploymentAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedDeploymentWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Deployment CreateNamespacedDeployment(this IKubernetes operations, V1Deployment body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedDeploymentAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Deployment> CreateNamespacedDeploymentAsync(this IKubernetes operations, V1Deployment body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedDeploymentWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedDeployment(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedDeploymentAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedDeploymentAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedDeploymentWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Deployment ReadNamespacedDeployment(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedDeploymentAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Deployment> ReadNamespacedDeploymentAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedDeploymentWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Deployment PatchNamespacedDeployment(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedDeploymentAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Deployment> PatchNamespacedDeploymentAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedDeploymentWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Deployment ReplaceNamespacedDeployment(this IKubernetes operations, V1Deployment body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedDeploymentAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Deployment> ReplaceNamespacedDeploymentAsync(this IKubernetes operations, V1Deployment body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedDeploymentWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read scale of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale ReadNamespacedDeploymentScale(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedDeploymentScaleAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read scale of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> ReadNamespacedDeploymentScaleAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedDeploymentScaleWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update scale of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale PatchNamespacedDeploymentScale(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedDeploymentScaleAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update scale of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> PatchNamespacedDeploymentScaleAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedDeploymentScaleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace scale of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale ReplaceNamespacedDeploymentScale(this IKubernetes operations, V1Scale body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedDeploymentScaleAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace scale of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> ReplaceNamespacedDeploymentScaleAsync(this IKubernetes operations, V1Scale body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedDeploymentScaleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Deployment ReadNamespacedDeploymentStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedDeploymentStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Deployment> ReadNamespacedDeploymentStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedDeploymentStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Deployment PatchNamespacedDeploymentStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedDeploymentStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Deployment> PatchNamespacedDeploymentStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedDeploymentStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Deployment ReplaceNamespacedDeploymentStatus(this IKubernetes operations, V1Deployment body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedDeploymentStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Deployment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Deployment
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Deployment> ReplaceNamespacedDeploymentStatusAsync(this IKubernetes operations, V1Deployment body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedDeploymentStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedReplicaSet(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedReplicaSetAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedReplicaSetAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedReplicaSetWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicaSetList ListNamespacedReplicaSet(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedReplicaSetAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSetList> ListNamespacedReplicaSetAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedReplicaSetWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicaSet CreateNamespacedReplicaSet(this IKubernetes operations, V1ReplicaSet body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedReplicaSetAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSet> CreateNamespacedReplicaSetAsync(this IKubernetes operations, V1ReplicaSet body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedReplicaSetWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedReplicaSet(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedReplicaSetAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedReplicaSetAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedReplicaSetWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicaSet ReadNamespacedReplicaSet(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedReplicaSetAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSet> ReadNamespacedReplicaSetAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedReplicaSetWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicaSet PatchNamespacedReplicaSet(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedReplicaSetAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSet> PatchNamespacedReplicaSetAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedReplicaSetWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicaSet ReplaceNamespacedReplicaSet(this IKubernetes operations, V1ReplicaSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedReplicaSetAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSet> ReplaceNamespacedReplicaSetAsync(this IKubernetes operations, V1ReplicaSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedReplicaSetWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read scale of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale ReadNamespacedReplicaSetScale(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedReplicaSetScaleAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read scale of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> ReadNamespacedReplicaSetScaleAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedReplicaSetScaleWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update scale of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale PatchNamespacedReplicaSetScale(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedReplicaSetScaleAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update scale of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> PatchNamespacedReplicaSetScaleAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedReplicaSetScaleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace scale of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale ReplaceNamespacedReplicaSetScale(this IKubernetes operations, V1Scale body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedReplicaSetScaleAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace scale of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> ReplaceNamespacedReplicaSetScaleAsync(this IKubernetes operations, V1Scale body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedReplicaSetScaleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicaSet ReadNamespacedReplicaSetStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedReplicaSetStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSet> ReadNamespacedReplicaSetStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedReplicaSetStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicaSet PatchNamespacedReplicaSetStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedReplicaSetStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSet> PatchNamespacedReplicaSetStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedReplicaSetStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ReplicaSet ReplaceNamespacedReplicaSetStatus(this IKubernetes operations, V1ReplicaSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedReplicaSetStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ReplicaSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSet> ReplaceNamespacedReplicaSetStatusAsync(this IKubernetes operations, V1ReplicaSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedReplicaSetStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedStatefulSet(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedStatefulSetAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedStatefulSetAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedStatefulSetWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StatefulSetList ListNamespacedStatefulSet(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedStatefulSetAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSetList> ListNamespacedStatefulSetAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedStatefulSetWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StatefulSet CreateNamespacedStatefulSet(this IKubernetes operations, V1StatefulSet body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedStatefulSetAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSet> CreateNamespacedStatefulSetAsync(this IKubernetes operations, V1StatefulSet body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedStatefulSetWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedStatefulSet(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedStatefulSetAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedStatefulSetAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedStatefulSetWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StatefulSet ReadNamespacedStatefulSet(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedStatefulSetAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSet> ReadNamespacedStatefulSetAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedStatefulSetWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StatefulSet PatchNamespacedStatefulSet(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedStatefulSetAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSet> PatchNamespacedStatefulSetAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedStatefulSetWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StatefulSet ReplaceNamespacedStatefulSet(this IKubernetes operations, V1StatefulSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedStatefulSetAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSet> ReplaceNamespacedStatefulSetAsync(this IKubernetes operations, V1StatefulSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedStatefulSetWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read scale of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale ReadNamespacedStatefulSetScale(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedStatefulSetScaleAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read scale of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> ReadNamespacedStatefulSetScaleAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedStatefulSetScaleWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update scale of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale PatchNamespacedStatefulSetScale(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedStatefulSetScaleAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update scale of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> PatchNamespacedStatefulSetScaleAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedStatefulSetScaleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace scale of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Scale ReplaceNamespacedStatefulSetScale(this IKubernetes operations, V1Scale body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedStatefulSetScaleAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace scale of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Scale
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Scale> ReplaceNamespacedStatefulSetScaleAsync(this IKubernetes operations, V1Scale body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedStatefulSetScaleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StatefulSet ReadNamespacedStatefulSetStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedStatefulSetStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSet> ReadNamespacedStatefulSetStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedStatefulSetStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StatefulSet PatchNamespacedStatefulSetStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedStatefulSetStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSet> PatchNamespacedStatefulSetStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedStatefulSetStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StatefulSet ReplaceNamespacedStatefulSetStatus(this IKubernetes operations, V1StatefulSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedStatefulSetStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StatefulSet
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSet> ReplaceNamespacedStatefulSetStatusAsync(this IKubernetes operations, V1StatefulSet body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedStatefulSetStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1ReplicaSetList ListReplicaSetForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListReplicaSetForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ReplicaSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ReplicaSetList> ListReplicaSetForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListReplicaSetForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1StatefulSetList ListStatefulSetForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListStatefulSetForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind StatefulSet
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StatefulSetList> ListStatefulSetForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListStatefulSetForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup4(this IKubernetes operations)
            {
                return operations.GetAPIGroup4Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup4Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup4WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources8(this IKubernetes operations)
            {
                return operations.GetAPIResources8Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources8Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources8WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a TokenReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1TokenReview CreateTokenReview(this IKubernetes operations, V1TokenReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateTokenReviewAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a TokenReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1TokenReview> CreateTokenReviewAsync(this IKubernetes operations, V1TokenReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateTokenReviewWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources9(this IKubernetes operations)
            {
                return operations.GetAPIResources9Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources9Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources9WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a TokenReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1TokenReview CreateTokenReview1(this IKubernetes operations, V1beta1TokenReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateTokenReview1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a TokenReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1TokenReview> CreateTokenReview1Async(this IKubernetes operations, V1beta1TokenReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateTokenReview1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup5(this IKubernetes operations)
            {
                return operations.GetAPIGroup5Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup5Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup5WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources10(this IKubernetes operations)
            {
                return operations.GetAPIResources10Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources10Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources10WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a LocalSubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1LocalSubjectAccessReview CreateNamespacedLocalSubjectAccessReview(this IKubernetes operations, V1LocalSubjectAccessReview body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedLocalSubjectAccessReviewAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a LocalSubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LocalSubjectAccessReview> CreateNamespacedLocalSubjectAccessReviewAsync(this IKubernetes operations, V1LocalSubjectAccessReview body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedLocalSubjectAccessReviewWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a SelfSubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1SelfSubjectAccessReview CreateSelfSubjectAccessReview(this IKubernetes operations, V1SelfSubjectAccessReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateSelfSubjectAccessReviewAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a SelfSubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1SelfSubjectAccessReview> CreateSelfSubjectAccessReviewAsync(this IKubernetes operations, V1SelfSubjectAccessReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateSelfSubjectAccessReviewWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a SelfSubjectRulesReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1SelfSubjectRulesReview CreateSelfSubjectRulesReview(this IKubernetes operations, V1SelfSubjectRulesReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateSelfSubjectRulesReviewAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a SelfSubjectRulesReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1SelfSubjectRulesReview> CreateSelfSubjectRulesReviewAsync(this IKubernetes operations, V1SelfSubjectRulesReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateSelfSubjectRulesReviewWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a SubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1SubjectAccessReview CreateSubjectAccessReview(this IKubernetes operations, V1SubjectAccessReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateSubjectAccessReviewAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a SubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1SubjectAccessReview> CreateSubjectAccessReviewAsync(this IKubernetes operations, V1SubjectAccessReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateSubjectAccessReviewWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources11(this IKubernetes operations)
            {
                return operations.GetAPIResources11Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources11Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources11WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a LocalSubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1LocalSubjectAccessReview CreateNamespacedLocalSubjectAccessReview1(this IKubernetes operations, V1beta1LocalSubjectAccessReview body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedLocalSubjectAccessReview1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a LocalSubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1LocalSubjectAccessReview> CreateNamespacedLocalSubjectAccessReview1Async(this IKubernetes operations, V1beta1LocalSubjectAccessReview body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedLocalSubjectAccessReview1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a SelfSubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1SelfSubjectAccessReview CreateSelfSubjectAccessReview1(this IKubernetes operations, V1beta1SelfSubjectAccessReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateSelfSubjectAccessReview1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a SelfSubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1SelfSubjectAccessReview> CreateSelfSubjectAccessReview1Async(this IKubernetes operations, V1beta1SelfSubjectAccessReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateSelfSubjectAccessReview1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a SelfSubjectRulesReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1SelfSubjectRulesReview CreateSelfSubjectRulesReview1(this IKubernetes operations, V1beta1SelfSubjectRulesReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateSelfSubjectRulesReview1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a SelfSubjectRulesReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1SelfSubjectRulesReview> CreateSelfSubjectRulesReview1Async(this IKubernetes operations, V1beta1SelfSubjectRulesReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateSelfSubjectRulesReview1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a SubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1SubjectAccessReview CreateSubjectAccessReview1(this IKubernetes operations, V1beta1SubjectAccessReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateSubjectAccessReview1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a SubjectAccessReview
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1SubjectAccessReview> CreateSubjectAccessReview1Async(this IKubernetes operations, V1beta1SubjectAccessReview body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateSubjectAccessReview1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup6(this IKubernetes operations)
            {
                return operations.GetAPIGroup6Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup6Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup6WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources12(this IKubernetes operations)
            {
                return operations.GetAPIResources12Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources12Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources12WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1HorizontalPodAutoscalerList ListHorizontalPodAutoscalerForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListHorizontalPodAutoscalerForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscalerList> ListHorizontalPodAutoscalerForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListHorizontalPodAutoscalerForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedHorizontalPodAutoscaler(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedHorizontalPodAutoscalerAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedHorizontalPodAutoscalerAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedHorizontalPodAutoscalerWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1HorizontalPodAutoscalerList ListNamespacedHorizontalPodAutoscaler(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedHorizontalPodAutoscalerAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscalerList> ListNamespacedHorizontalPodAutoscalerAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedHorizontalPodAutoscalerWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1HorizontalPodAutoscaler CreateNamespacedHorizontalPodAutoscaler(this IKubernetes operations, V1HorizontalPodAutoscaler body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedHorizontalPodAutoscalerAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscaler> CreateNamespacedHorizontalPodAutoscalerAsync(this IKubernetes operations, V1HorizontalPodAutoscaler body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedHorizontalPodAutoscalerWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedHorizontalPodAutoscaler(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedHorizontalPodAutoscalerAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedHorizontalPodAutoscalerAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedHorizontalPodAutoscalerWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1HorizontalPodAutoscaler ReadNamespacedHorizontalPodAutoscaler(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedHorizontalPodAutoscalerAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscaler> ReadNamespacedHorizontalPodAutoscalerAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedHorizontalPodAutoscalerWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1HorizontalPodAutoscaler PatchNamespacedHorizontalPodAutoscaler(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedHorizontalPodAutoscalerAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscaler> PatchNamespacedHorizontalPodAutoscalerAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedHorizontalPodAutoscalerWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1HorizontalPodAutoscaler ReplaceNamespacedHorizontalPodAutoscaler(this IKubernetes operations, V1HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedHorizontalPodAutoscalerAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscaler> ReplaceNamespacedHorizontalPodAutoscalerAsync(this IKubernetes operations, V1HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedHorizontalPodAutoscalerWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1HorizontalPodAutoscaler ReadNamespacedHorizontalPodAutoscalerStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedHorizontalPodAutoscalerStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscaler> ReadNamespacedHorizontalPodAutoscalerStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedHorizontalPodAutoscalerStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1HorizontalPodAutoscaler PatchNamespacedHorizontalPodAutoscalerStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedHorizontalPodAutoscalerStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscaler> PatchNamespacedHorizontalPodAutoscalerStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedHorizontalPodAutoscalerStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1HorizontalPodAutoscaler ReplaceNamespacedHorizontalPodAutoscalerStatus(this IKubernetes operations, V1HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedHorizontalPodAutoscalerStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1HorizontalPodAutoscaler> ReplaceNamespacedHorizontalPodAutoscalerStatusAsync(this IKubernetes operations, V1HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedHorizontalPodAutoscalerStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources13(this IKubernetes operations)
            {
                return operations.GetAPIResources13Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources13Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources13WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V2beta1HorizontalPodAutoscalerList ListHorizontalPodAutoscalerForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListHorizontalPodAutoscalerForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscalerList> ListHorizontalPodAutoscalerForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListHorizontalPodAutoscalerForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedHorizontalPodAutoscaler1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedHorizontalPodAutoscaler1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedHorizontalPodAutoscaler1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedHorizontalPodAutoscaler1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta1HorizontalPodAutoscalerList ListNamespacedHorizontalPodAutoscaler1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedHorizontalPodAutoscaler1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscalerList> ListNamespacedHorizontalPodAutoscaler1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedHorizontalPodAutoscaler1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta1HorizontalPodAutoscaler CreateNamespacedHorizontalPodAutoscaler1(this IKubernetes operations, V2beta1HorizontalPodAutoscaler body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedHorizontalPodAutoscaler1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscaler> CreateNamespacedHorizontalPodAutoscaler1Async(this IKubernetes operations, V2beta1HorizontalPodAutoscaler body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedHorizontalPodAutoscaler1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedHorizontalPodAutoscaler1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedHorizontalPodAutoscaler1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedHorizontalPodAutoscaler1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedHorizontalPodAutoscaler1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta1HorizontalPodAutoscaler ReadNamespacedHorizontalPodAutoscaler1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedHorizontalPodAutoscaler1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscaler> ReadNamespacedHorizontalPodAutoscaler1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedHorizontalPodAutoscaler1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta1HorizontalPodAutoscaler PatchNamespacedHorizontalPodAutoscaler1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedHorizontalPodAutoscaler1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscaler> PatchNamespacedHorizontalPodAutoscaler1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedHorizontalPodAutoscaler1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta1HorizontalPodAutoscaler ReplaceNamespacedHorizontalPodAutoscaler1(this IKubernetes operations, V2beta1HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedHorizontalPodAutoscaler1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscaler> ReplaceNamespacedHorizontalPodAutoscaler1Async(this IKubernetes operations, V2beta1HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedHorizontalPodAutoscaler1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta1HorizontalPodAutoscaler ReadNamespacedHorizontalPodAutoscalerStatus1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedHorizontalPodAutoscalerStatus1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscaler> ReadNamespacedHorizontalPodAutoscalerStatus1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedHorizontalPodAutoscalerStatus1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta1HorizontalPodAutoscaler PatchNamespacedHorizontalPodAutoscalerStatus1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedHorizontalPodAutoscalerStatus1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscaler> PatchNamespacedHorizontalPodAutoscalerStatus1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedHorizontalPodAutoscalerStatus1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta1HorizontalPodAutoscaler ReplaceNamespacedHorizontalPodAutoscalerStatus1(this IKubernetes operations, V2beta1HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedHorizontalPodAutoscalerStatus1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta1HorizontalPodAutoscaler> ReplaceNamespacedHorizontalPodAutoscalerStatus1Async(this IKubernetes operations, V2beta1HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedHorizontalPodAutoscalerStatus1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources14(this IKubernetes operations)
            {
                return operations.GetAPIResources14Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources14Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources14WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V2beta2HorizontalPodAutoscalerList ListHorizontalPodAutoscalerForAllNamespaces2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListHorizontalPodAutoscalerForAllNamespaces2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscalerList> ListHorizontalPodAutoscalerForAllNamespaces2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListHorizontalPodAutoscalerForAllNamespaces2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedHorizontalPodAutoscaler2(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedHorizontalPodAutoscaler2Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedHorizontalPodAutoscaler2Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedHorizontalPodAutoscaler2WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta2HorizontalPodAutoscalerList ListNamespacedHorizontalPodAutoscaler2(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedHorizontalPodAutoscaler2Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscalerList> ListNamespacedHorizontalPodAutoscaler2Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedHorizontalPodAutoscaler2WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta2HorizontalPodAutoscaler CreateNamespacedHorizontalPodAutoscaler2(this IKubernetes operations, V2beta2HorizontalPodAutoscaler body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedHorizontalPodAutoscaler2Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscaler> CreateNamespacedHorizontalPodAutoscaler2Async(this IKubernetes operations, V2beta2HorizontalPodAutoscaler body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedHorizontalPodAutoscaler2WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedHorizontalPodAutoscaler2(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedHorizontalPodAutoscaler2Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedHorizontalPodAutoscaler2Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedHorizontalPodAutoscaler2WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta2HorizontalPodAutoscaler ReadNamespacedHorizontalPodAutoscaler2(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedHorizontalPodAutoscaler2Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscaler> ReadNamespacedHorizontalPodAutoscaler2Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedHorizontalPodAutoscaler2WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta2HorizontalPodAutoscaler PatchNamespacedHorizontalPodAutoscaler2(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedHorizontalPodAutoscaler2Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscaler> PatchNamespacedHorizontalPodAutoscaler2Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedHorizontalPodAutoscaler2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta2HorizontalPodAutoscaler ReplaceNamespacedHorizontalPodAutoscaler2(this IKubernetes operations, V2beta2HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedHorizontalPodAutoscaler2Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscaler> ReplaceNamespacedHorizontalPodAutoscaler2Async(this IKubernetes operations, V2beta2HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedHorizontalPodAutoscaler2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta2HorizontalPodAutoscaler ReadNamespacedHorizontalPodAutoscalerStatus2(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedHorizontalPodAutoscalerStatus2Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscaler> ReadNamespacedHorizontalPodAutoscalerStatus2Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedHorizontalPodAutoscalerStatus2WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta2HorizontalPodAutoscaler PatchNamespacedHorizontalPodAutoscalerStatus2(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedHorizontalPodAutoscalerStatus2Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscaler> PatchNamespacedHorizontalPodAutoscalerStatus2Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedHorizontalPodAutoscalerStatus2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V2beta2HorizontalPodAutoscaler ReplaceNamespacedHorizontalPodAutoscalerStatus2(this IKubernetes operations, V2beta2HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedHorizontalPodAutoscalerStatus2Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified HorizontalPodAutoscaler
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the HorizontalPodAutoscaler
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V2beta2HorizontalPodAutoscaler> ReplaceNamespacedHorizontalPodAutoscalerStatus2Async(this IKubernetes operations, V2beta2HorizontalPodAutoscaler body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedHorizontalPodAutoscalerStatus2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup7(this IKubernetes operations)
            {
                return operations.GetAPIGroup7Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup7Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup7WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources15(this IKubernetes operations)
            {
                return operations.GetAPIResources15Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources15Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources15WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1CronJobList ListCronJobForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListCronJobForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJobList> ListCronJobForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCronJobForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1JobList ListJobForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListJobForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1JobList> ListJobForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListJobForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedCronJob(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedCronJobAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedCronJobAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedCronJobWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CronJobList ListNamespacedCronJob(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedCronJobAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJobList> ListNamespacedCronJobAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedCronJobWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CronJob CreateNamespacedCronJob(this IKubernetes operations, V1CronJob body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedCronJobAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJob> CreateNamespacedCronJobAsync(this IKubernetes operations, V1CronJob body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedCronJobWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedCronJob(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedCronJobAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedCronJobAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedCronJobWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CronJob ReadNamespacedCronJob(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedCronJobAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJob> ReadNamespacedCronJobAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedCronJobWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CronJob PatchNamespacedCronJob(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedCronJobAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJob> PatchNamespacedCronJobAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCronJobWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CronJob ReplaceNamespacedCronJob(this IKubernetes operations, V1CronJob body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedCronJobAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJob> ReplaceNamespacedCronJobAsync(this IKubernetes operations, V1CronJob body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCronJobWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CronJob ReadNamespacedCronJobStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedCronJobStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJob> ReadNamespacedCronJobStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedCronJobStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CronJob PatchNamespacedCronJobStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedCronJobStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJob> PatchNamespacedCronJobStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCronJobStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CronJob ReplaceNamespacedCronJobStatus(this IKubernetes operations, V1CronJob body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedCronJobStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CronJob> ReplaceNamespacedCronJobStatusAsync(this IKubernetes operations, V1CronJob body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCronJobStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedJob(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedJobAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedJobAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedJobWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1JobList ListNamespacedJob(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedJobAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1JobList> ListNamespacedJobAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedJobWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Job CreateNamespacedJob(this IKubernetes operations, V1Job body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedJobAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Job> CreateNamespacedJobAsync(this IKubernetes operations, V1Job body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedJobWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedJob(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedJobAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedJobAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedJobWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Job ReadNamespacedJob(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedJobAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Job> ReadNamespacedJobAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedJobWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Job PatchNamespacedJob(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedJobAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Job> PatchNamespacedJobAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedJobWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Job ReplaceNamespacedJob(this IKubernetes operations, V1Job body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedJobAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Job> ReplaceNamespacedJobAsync(this IKubernetes operations, V1Job body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedJobWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Job ReadNamespacedJobStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedJobStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Job> ReadNamespacedJobStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedJobStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Job PatchNamespacedJobStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedJobStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Job> PatchNamespacedJobStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedJobStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Job ReplaceNamespacedJobStatus(this IKubernetes operations, V1Job body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedJobStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Job
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Job
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Job> ReplaceNamespacedJobStatusAsync(this IKubernetes operations, V1Job body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedJobStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources16(this IKubernetes operations)
            {
                return operations.GetAPIResources16Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources16Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources16WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1beta1CronJobList ListCronJobForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListCronJobForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJobList> ListCronJobForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCronJobForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedCronJob1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedCronJob1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedCronJob1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedCronJob1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CronJobList ListNamespacedCronJob1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedCronJob1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJobList> ListNamespacedCronJob1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedCronJob1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CronJob CreateNamespacedCronJob1(this IKubernetes operations, V1beta1CronJob body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedCronJob1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJob> CreateNamespacedCronJob1Async(this IKubernetes operations, V1beta1CronJob body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedCronJob1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedCronJob1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedCronJob1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedCronJob1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedCronJob1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CronJob ReadNamespacedCronJob1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedCronJob1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJob> ReadNamespacedCronJob1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedCronJob1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CronJob PatchNamespacedCronJob1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedCronJob1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJob> PatchNamespacedCronJob1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCronJob1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CronJob ReplaceNamespacedCronJob1(this IKubernetes operations, V1beta1CronJob body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedCronJob1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJob> ReplaceNamespacedCronJob1Async(this IKubernetes operations, V1beta1CronJob body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCronJob1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CronJob ReadNamespacedCronJobStatus1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedCronJobStatus1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJob> ReadNamespacedCronJobStatus1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedCronJobStatus1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CronJob PatchNamespacedCronJobStatus1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedCronJobStatus1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJob> PatchNamespacedCronJobStatus1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCronJobStatus1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CronJob ReplaceNamespacedCronJobStatus1(this IKubernetes operations, V1beta1CronJob body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedCronJobStatus1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified CronJob
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CronJob
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CronJob> ReplaceNamespacedCronJobStatus1Async(this IKubernetes operations, V1beta1CronJob body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCronJobStatus1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup8(this IKubernetes operations)
            {
                return operations.GetAPIGroup8Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup8Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup8WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources17(this IKubernetes operations)
            {
                return operations.GetAPIResources17Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources17Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources17WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionCertificateSigningRequest(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionCertificateSigningRequestAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionCertificateSigningRequestAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionCertificateSigningRequestWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequestList ListCertificateSigningRequest(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListCertificateSigningRequestAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequestList> ListCertificateSigningRequestAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCertificateSigningRequestWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest CreateCertificateSigningRequest(this IKubernetes operations, V1CertificateSigningRequest body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateCertificateSigningRequestAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> CreateCertificateSigningRequestAsync(this IKubernetes operations, V1CertificateSigningRequest body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateCertificateSigningRequestWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCertificateSigningRequest(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteCertificateSigningRequestAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCertificateSigningRequestAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCertificateSigningRequestWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest ReadCertificateSigningRequest(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCertificateSigningRequestAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> ReadCertificateSigningRequestAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCertificateSigningRequestWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest PatchCertificateSigningRequest(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCertificateSigningRequestAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> PatchCertificateSigningRequestAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCertificateSigningRequestWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest ReplaceCertificateSigningRequest(this IKubernetes operations, V1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCertificateSigningRequestAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> ReplaceCertificateSigningRequestAsync(this IKubernetes operations, V1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCertificateSigningRequestWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest ReadCertificateSigningRequestApproval(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCertificateSigningRequestApprovalAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> ReadCertificateSigningRequestApprovalAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCertificateSigningRequestApprovalWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest PatchCertificateSigningRequestApproval(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCertificateSigningRequestApprovalAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> PatchCertificateSigningRequestApprovalAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCertificateSigningRequestApprovalWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest ReplaceCertificateSigningRequestApproval(this IKubernetes operations, V1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCertificateSigningRequestApprovalAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> ReplaceCertificateSigningRequestApprovalAsync(this IKubernetes operations, V1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCertificateSigningRequestApprovalWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest ReadCertificateSigningRequestStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCertificateSigningRequestStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> ReadCertificateSigningRequestStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCertificateSigningRequestStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest PatchCertificateSigningRequestStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCertificateSigningRequestStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> PatchCertificateSigningRequestStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCertificateSigningRequestStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CertificateSigningRequest ReplaceCertificateSigningRequestStatus(this IKubernetes operations, V1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCertificateSigningRequestStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CertificateSigningRequest> ReplaceCertificateSigningRequestStatusAsync(this IKubernetes operations, V1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCertificateSigningRequestStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources18(this IKubernetes operations)
            {
                return operations.GetAPIResources18Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources18Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources18WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionCertificateSigningRequest1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionCertificateSigningRequest1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionCertificateSigningRequest1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionCertificateSigningRequest1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequestList ListCertificateSigningRequest1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListCertificateSigningRequest1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequestList> ListCertificateSigningRequest1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCertificateSigningRequest1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest CreateCertificateSigningRequest1(this IKubernetes operations, V1beta1CertificateSigningRequest body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateCertificateSigningRequest1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> CreateCertificateSigningRequest1Async(this IKubernetes operations, V1beta1CertificateSigningRequest body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateCertificateSigningRequest1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCertificateSigningRequest1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteCertificateSigningRequest1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCertificateSigningRequest1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCertificateSigningRequest1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest ReadCertificateSigningRequest1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCertificateSigningRequest1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> ReadCertificateSigningRequest1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCertificateSigningRequest1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest PatchCertificateSigningRequest1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCertificateSigningRequest1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> PatchCertificateSigningRequest1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCertificateSigningRequest1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest ReplaceCertificateSigningRequest1(this IKubernetes operations, V1beta1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCertificateSigningRequest1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> ReplaceCertificateSigningRequest1Async(this IKubernetes operations, V1beta1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCertificateSigningRequest1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest ReadCertificateSigningRequestApproval1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCertificateSigningRequestApproval1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> ReadCertificateSigningRequestApproval1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCertificateSigningRequestApproval1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest PatchCertificateSigningRequestApproval1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCertificateSigningRequestApproval1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> PatchCertificateSigningRequestApproval1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCertificateSigningRequestApproval1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest ReplaceCertificateSigningRequestApproval1(this IKubernetes operations, V1beta1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCertificateSigningRequestApproval1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace approval of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> ReplaceCertificateSigningRequestApproval1Async(this IKubernetes operations, V1beta1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCertificateSigningRequestApproval1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest ReadCertificateSigningRequestStatus1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCertificateSigningRequestStatus1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> ReadCertificateSigningRequestStatus1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCertificateSigningRequestStatus1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest PatchCertificateSigningRequestStatus1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCertificateSigningRequestStatus1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> PatchCertificateSigningRequestStatus1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCertificateSigningRequestStatus1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CertificateSigningRequest ReplaceCertificateSigningRequestStatus1(this IKubernetes operations, V1beta1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCertificateSigningRequestStatus1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified CertificateSigningRequest
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CertificateSigningRequest
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CertificateSigningRequest> ReplaceCertificateSigningRequestStatus1Async(this IKubernetes operations, V1beta1CertificateSigningRequest body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCertificateSigningRequestStatus1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup9(this IKubernetes operations)
            {
                return operations.GetAPIGroup9Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup9Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup9WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources19(this IKubernetes operations)
            {
                return operations.GetAPIResources19Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources19Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources19WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1LeaseList ListLeaseForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListLeaseForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LeaseList> ListLeaseForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListLeaseForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedLease(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedLeaseAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedLeaseAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedLeaseWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1LeaseList ListNamespacedLease(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedLeaseAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1LeaseList> ListNamespacedLeaseAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedLeaseWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Lease CreateNamespacedLease(this IKubernetes operations, V1Lease body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedLeaseAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Lease> CreateNamespacedLeaseAsync(this IKubernetes operations, V1Lease body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedLeaseWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedLease(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedLeaseAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedLeaseAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedLeaseWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Lease ReadNamespacedLease(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedLeaseAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Lease> ReadNamespacedLeaseAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedLeaseWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Lease PatchNamespacedLease(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedLeaseAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Lease> PatchNamespacedLeaseAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedLeaseWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Lease ReplaceNamespacedLease(this IKubernetes operations, V1Lease body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedLeaseAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Lease> ReplaceNamespacedLeaseAsync(this IKubernetes operations, V1Lease body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedLeaseWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources20(this IKubernetes operations)
            {
                return operations.GetAPIResources20Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources20Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources20WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1beta1LeaseList ListLeaseForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListLeaseForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1LeaseList> ListLeaseForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListLeaseForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedLease1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedLease1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedLease1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedLease1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1LeaseList ListNamespacedLease1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedLease1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1LeaseList> ListNamespacedLease1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedLease1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Lease CreateNamespacedLease1(this IKubernetes operations, V1beta1Lease body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedLease1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Lease> CreateNamespacedLease1Async(this IKubernetes operations, V1beta1Lease body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedLease1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedLease1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedLease1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedLease1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedLease1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Lease ReadNamespacedLease1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedLease1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Lease> ReadNamespacedLease1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedLease1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Lease PatchNamespacedLease1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedLease1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Lease> PatchNamespacedLease1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedLease1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Lease ReplaceNamespacedLease1(this IKubernetes operations, V1beta1Lease body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedLease1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Lease
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Lease
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Lease> ReplaceNamespacedLease1Async(this IKubernetes operations, V1beta1Lease body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedLease1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup10(this IKubernetes operations)
            {
                return operations.GetAPIGroup10Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup10Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup10WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources21(this IKubernetes operations)
            {
                return operations.GetAPIResources21Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources21Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources21WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1EndpointSliceList ListEndpointSliceForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListEndpointSliceForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EndpointSliceList> ListEndpointSliceForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListEndpointSliceForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedEndpointSlice(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedEndpointSliceAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedEndpointSliceAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedEndpointSliceWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EndpointSliceList ListNamespacedEndpointSlice(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedEndpointSliceAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EndpointSliceList> ListNamespacedEndpointSliceAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedEndpointSliceWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EndpointSlice CreateNamespacedEndpointSlice(this IKubernetes operations, V1EndpointSlice body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedEndpointSliceAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EndpointSlice> CreateNamespacedEndpointSliceAsync(this IKubernetes operations, V1EndpointSlice body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedEndpointSliceWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedEndpointSlice(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedEndpointSliceAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedEndpointSliceAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedEndpointSliceWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EndpointSlice ReadNamespacedEndpointSlice(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedEndpointSliceAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EndpointSlice> ReadNamespacedEndpointSliceAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedEndpointSliceWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EndpointSlice PatchNamespacedEndpointSlice(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedEndpointSliceAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EndpointSlice> PatchNamespacedEndpointSliceAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedEndpointSliceWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1EndpointSlice ReplaceNamespacedEndpointSlice(this IKubernetes operations, V1EndpointSlice body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedEndpointSliceAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1EndpointSlice> ReplaceNamespacedEndpointSliceAsync(this IKubernetes operations, V1EndpointSlice body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedEndpointSliceWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources22(this IKubernetes operations)
            {
                return operations.GetAPIResources22Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources22Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources22WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1beta1EndpointSliceList ListEndpointSliceForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListEndpointSliceForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1EndpointSliceList> ListEndpointSliceForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListEndpointSliceForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedEndpointSlice1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedEndpointSlice1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedEndpointSlice1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedEndpointSlice1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1EndpointSliceList ListNamespacedEndpointSlice1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedEndpointSlice1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1EndpointSliceList> ListNamespacedEndpointSlice1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedEndpointSlice1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1EndpointSlice CreateNamespacedEndpointSlice1(this IKubernetes operations, V1beta1EndpointSlice body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedEndpointSlice1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1EndpointSlice> CreateNamespacedEndpointSlice1Async(this IKubernetes operations, V1beta1EndpointSlice body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedEndpointSlice1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedEndpointSlice1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedEndpointSlice1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedEndpointSlice1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedEndpointSlice1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1EndpointSlice ReadNamespacedEndpointSlice1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedEndpointSlice1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1EndpointSlice> ReadNamespacedEndpointSlice1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedEndpointSlice1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1EndpointSlice PatchNamespacedEndpointSlice1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedEndpointSlice1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1EndpointSlice> PatchNamespacedEndpointSlice1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedEndpointSlice1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1EndpointSlice ReplaceNamespacedEndpointSlice1(this IKubernetes operations, V1beta1EndpointSlice body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedEndpointSlice1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified EndpointSlice
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the EndpointSlice
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1EndpointSlice> ReplaceNamespacedEndpointSlice1Async(this IKubernetes operations, V1beta1EndpointSlice body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedEndpointSlice1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup11(this IKubernetes operations)
            {
                return operations.GetAPIGroup11Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup11Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup11WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources23(this IKubernetes operations)
            {
                return operations.GetAPIResources23Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources23Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources23WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static Eventsv1EventList ListEventForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListEventForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Eventsv1EventList> ListEventForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListEventForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedEvent1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedEvent1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedEvent1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedEvent1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Eventsv1EventList ListNamespacedEvent1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedEvent1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Eventsv1EventList> ListNamespacedEvent1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedEvent1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Eventsv1Event CreateNamespacedEvent1(this IKubernetes operations, Eventsv1Event body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedEvent1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Eventsv1Event> CreateNamespacedEvent1Async(this IKubernetes operations, Eventsv1Event body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedEvent1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedEvent1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedEvent1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedEvent1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedEvent1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Eventsv1Event ReadNamespacedEvent1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedEvent1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Eventsv1Event> ReadNamespacedEvent1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedEvent1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Eventsv1Event PatchNamespacedEvent1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedEvent1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Eventsv1Event> PatchNamespacedEvent1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedEvent1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Eventsv1Event ReplaceNamespacedEvent1(this IKubernetes operations, Eventsv1Event body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedEvent1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Eventsv1Event> ReplaceNamespacedEvent1Async(this IKubernetes operations, Eventsv1Event body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedEvent1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources24(this IKubernetes operations)
            {
                return operations.GetAPIResources24Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources24Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources24WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1beta1EventList ListEventForAllNamespaces2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListEventForAllNamespaces2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1EventList> ListEventForAllNamespaces2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListEventForAllNamespaces2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedEvent2(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedEvent2Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedEvent2Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedEvent2WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1EventList ListNamespacedEvent2(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedEvent2Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1EventList> ListNamespacedEvent2Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedEvent2WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Event CreateNamespacedEvent2(this IKubernetes operations, V1beta1Event body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedEvent2Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Event> CreateNamespacedEvent2Async(this IKubernetes operations, V1beta1Event body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedEvent2WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedEvent2(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedEvent2Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedEvent2Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedEvent2WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Event ReadNamespacedEvent2(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedEvent2Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Event> ReadNamespacedEvent2Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedEvent2WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Event PatchNamespacedEvent2(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedEvent2Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Event> PatchNamespacedEvent2Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedEvent2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Event ReplaceNamespacedEvent2(this IKubernetes operations, V1beta1Event body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedEvent2Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Event
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Event
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Event> ReplaceNamespacedEvent2Async(this IKubernetes operations, V1beta1Event body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedEvent2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup12(this IKubernetes operations)
            {
                return operations.GetAPIGroup12Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup12Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup12WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources25(this IKubernetes operations)
            {
                return operations.GetAPIResources25Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources25Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources25WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static Extensionsv1beta1IngressList ListIngressForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListIngressForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1IngressList> ListIngressForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListIngressForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedIngress(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedIngressAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedIngressAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedIngressWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Extensionsv1beta1IngressList ListNamespacedIngress(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedIngressAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1IngressList> ListNamespacedIngressAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedIngressWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Extensionsv1beta1Ingress CreateNamespacedIngress(this IKubernetes operations, Extensionsv1beta1Ingress body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedIngressAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1Ingress> CreateNamespacedIngressAsync(this IKubernetes operations, Extensionsv1beta1Ingress body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedIngressWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedIngress(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedIngressAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedIngressAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedIngressWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Extensionsv1beta1Ingress ReadNamespacedIngress(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedIngressAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1Ingress> ReadNamespacedIngressAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedIngressWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Extensionsv1beta1Ingress PatchNamespacedIngress(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedIngressAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1Ingress> PatchNamespacedIngressAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedIngressWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Extensionsv1beta1Ingress ReplaceNamespacedIngress(this IKubernetes operations, Extensionsv1beta1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedIngressAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1Ingress> ReplaceNamespacedIngressAsync(this IKubernetes operations, Extensionsv1beta1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedIngressWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Extensionsv1beta1Ingress ReadNamespacedIngressStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedIngressStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1Ingress> ReadNamespacedIngressStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedIngressStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Extensionsv1beta1Ingress PatchNamespacedIngressStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedIngressStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1Ingress> PatchNamespacedIngressStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedIngressStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Extensionsv1beta1Ingress ReplaceNamespacedIngressStatus(this IKubernetes operations, Extensionsv1beta1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedIngressStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Extensionsv1beta1Ingress> ReplaceNamespacedIngressStatusAsync(this IKubernetes operations, Extensionsv1beta1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedIngressStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup13(this IKubernetes operations)
            {
                return operations.GetAPIGroup13Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup13Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup13WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources26(this IKubernetes operations)
            {
                return operations.GetAPIResources26Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources26Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources26WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionFlowSchema(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionFlowSchemaAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionFlowSchemaAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionFlowSchemaWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1FlowSchemaList ListFlowSchema(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListFlowSchemaAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1FlowSchemaList> ListFlowSchemaAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListFlowSchemaWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1FlowSchema CreateFlowSchema(this IKubernetes operations, V1beta1FlowSchema body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateFlowSchemaAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1FlowSchema> CreateFlowSchemaAsync(this IKubernetes operations, V1beta1FlowSchema body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateFlowSchemaWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteFlowSchema(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteFlowSchemaAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteFlowSchemaAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteFlowSchemaWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1FlowSchema ReadFlowSchema(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadFlowSchemaAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1FlowSchema> ReadFlowSchemaAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadFlowSchemaWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1FlowSchema PatchFlowSchema(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchFlowSchemaAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1FlowSchema> PatchFlowSchemaAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchFlowSchemaWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1FlowSchema ReplaceFlowSchema(this IKubernetes operations, V1beta1FlowSchema body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceFlowSchemaAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1FlowSchema> ReplaceFlowSchemaAsync(this IKubernetes operations, V1beta1FlowSchema body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceFlowSchemaWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1FlowSchema ReadFlowSchemaStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadFlowSchemaStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1FlowSchema> ReadFlowSchemaStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadFlowSchemaStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1FlowSchema PatchFlowSchemaStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchFlowSchemaStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1FlowSchema> PatchFlowSchemaStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchFlowSchemaStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1FlowSchema ReplaceFlowSchemaStatus(this IKubernetes operations, V1beta1FlowSchema body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceFlowSchemaStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified FlowSchema
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the FlowSchema
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1FlowSchema> ReplaceFlowSchemaStatusAsync(this IKubernetes operations, V1beta1FlowSchema body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceFlowSchemaStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionPriorityLevelConfiguration(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionPriorityLevelConfigurationAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionPriorityLevelConfigurationAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionPriorityLevelConfigurationWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityLevelConfigurationList ListPriorityLevelConfiguration(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListPriorityLevelConfigurationAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityLevelConfigurationList> ListPriorityLevelConfigurationAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPriorityLevelConfigurationWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityLevelConfiguration CreatePriorityLevelConfiguration(this IKubernetes operations, V1beta1PriorityLevelConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreatePriorityLevelConfigurationAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityLevelConfiguration> CreatePriorityLevelConfigurationAsync(this IKubernetes operations, V1beta1PriorityLevelConfiguration body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreatePriorityLevelConfigurationWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeletePriorityLevelConfiguration(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeletePriorityLevelConfigurationAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeletePriorityLevelConfigurationAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeletePriorityLevelConfigurationWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityLevelConfiguration ReadPriorityLevelConfiguration(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadPriorityLevelConfigurationAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityLevelConfiguration> ReadPriorityLevelConfigurationAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadPriorityLevelConfigurationWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityLevelConfiguration PatchPriorityLevelConfiguration(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchPriorityLevelConfigurationAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityLevelConfiguration> PatchPriorityLevelConfigurationAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchPriorityLevelConfigurationWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityLevelConfiguration ReplacePriorityLevelConfiguration(this IKubernetes operations, V1beta1PriorityLevelConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplacePriorityLevelConfigurationAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityLevelConfiguration> ReplacePriorityLevelConfigurationAsync(this IKubernetes operations, V1beta1PriorityLevelConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplacePriorityLevelConfigurationWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityLevelConfiguration ReadPriorityLevelConfigurationStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadPriorityLevelConfigurationStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityLevelConfiguration> ReadPriorityLevelConfigurationStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadPriorityLevelConfigurationStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityLevelConfiguration PatchPriorityLevelConfigurationStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchPriorityLevelConfigurationStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityLevelConfiguration> PatchPriorityLevelConfigurationStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchPriorityLevelConfigurationStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityLevelConfiguration ReplacePriorityLevelConfigurationStatus(this IKubernetes operations, V1beta1PriorityLevelConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplacePriorityLevelConfigurationStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified PriorityLevelConfiguration
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityLevelConfiguration
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityLevelConfiguration> ReplacePriorityLevelConfigurationStatusAsync(this IKubernetes operations, V1beta1PriorityLevelConfiguration body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplacePriorityLevelConfigurationStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup14(this IKubernetes operations)
            {
                return operations.GetAPIGroup14Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup14Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup14WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources27(this IKubernetes operations)
            {
                return operations.GetAPIResources27Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources27Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources27WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionStorageVersion(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionStorageVersionAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionStorageVersionAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionStorageVersionWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1StorageVersionList ListStorageVersion(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListStorageVersionAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1StorageVersionList> ListStorageVersionAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListStorageVersionWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1StorageVersion CreateStorageVersion(this IKubernetes operations, V1alpha1StorageVersion body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateStorageVersionAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1StorageVersion> CreateStorageVersionAsync(this IKubernetes operations, V1alpha1StorageVersion body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateStorageVersionWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteStorageVersion(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteStorageVersionAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteStorageVersionAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteStorageVersionWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1StorageVersion ReadStorageVersion(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadStorageVersionAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1StorageVersion> ReadStorageVersionAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadStorageVersionWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1StorageVersion PatchStorageVersion(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchStorageVersionAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1StorageVersion> PatchStorageVersionAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchStorageVersionWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1StorageVersion ReplaceStorageVersion(this IKubernetes operations, V1alpha1StorageVersion body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceStorageVersionAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1StorageVersion> ReplaceStorageVersionAsync(this IKubernetes operations, V1alpha1StorageVersion body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceStorageVersionWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1StorageVersion ReadStorageVersionStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadStorageVersionStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1StorageVersion> ReadStorageVersionStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadStorageVersionStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1StorageVersion PatchStorageVersionStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchStorageVersionStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1StorageVersion> PatchStorageVersionStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchStorageVersionStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1StorageVersion ReplaceStorageVersionStatus(this IKubernetes operations, V1alpha1StorageVersion body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceStorageVersionStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified StorageVersion
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageVersion
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1StorageVersion> ReplaceStorageVersionStatusAsync(this IKubernetes operations, V1alpha1StorageVersion body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceStorageVersionStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup15(this IKubernetes operations)
            {
                return operations.GetAPIGroup15Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup15Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup15WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources28(this IKubernetes operations)
            {
                return operations.GetAPIResources28Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources28Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources28WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionIngressClass(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionIngressClassAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionIngressClassAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionIngressClassWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1IngressClassList ListIngressClass(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListIngressClassAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1IngressClassList> ListIngressClassAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListIngressClassWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1IngressClass CreateIngressClass(this IKubernetes operations, V1IngressClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateIngressClassAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1IngressClass> CreateIngressClassAsync(this IKubernetes operations, V1IngressClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateIngressClassWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteIngressClass(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteIngressClassAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteIngressClassAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteIngressClassWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1IngressClass ReadIngressClass(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadIngressClassAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1IngressClass> ReadIngressClassAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadIngressClassWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1IngressClass PatchIngressClass(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchIngressClassAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1IngressClass> PatchIngressClassAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchIngressClassWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1IngressClass ReplaceIngressClass(this IKubernetes operations, V1IngressClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceIngressClassAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1IngressClass> ReplaceIngressClassAsync(this IKubernetes operations, V1IngressClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceIngressClassWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1IngressList ListIngressForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListIngressForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1IngressList> ListIngressForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListIngressForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedIngress1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedIngress1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedIngress1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedIngress1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1IngressList ListNamespacedIngress1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedIngress1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1IngressList> ListNamespacedIngress1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedIngress1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Ingress CreateNamespacedIngress1(this IKubernetes operations, V1Ingress body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedIngress1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Ingress> CreateNamespacedIngress1Async(this IKubernetes operations, V1Ingress body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedIngress1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedIngress1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedIngress1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedIngress1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedIngress1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Ingress ReadNamespacedIngress1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedIngress1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Ingress> ReadNamespacedIngress1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedIngress1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Ingress PatchNamespacedIngress1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedIngress1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Ingress> PatchNamespacedIngress1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedIngress1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Ingress ReplaceNamespacedIngress1(this IKubernetes operations, V1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedIngress1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Ingress> ReplaceNamespacedIngress1Async(this IKubernetes operations, V1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedIngress1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Ingress ReadNamespacedIngressStatus1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedIngressStatus1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Ingress> ReadNamespacedIngressStatus1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedIngressStatus1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Ingress PatchNamespacedIngressStatus1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedIngressStatus1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Ingress> PatchNamespacedIngressStatus1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedIngressStatus1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Ingress ReplaceNamespacedIngressStatus1(this IKubernetes operations, V1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedIngressStatus1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Ingress> ReplaceNamespacedIngressStatus1Async(this IKubernetes operations, V1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedIngressStatus1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedNetworkPolicy(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedNetworkPolicyAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedNetworkPolicyAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedNetworkPolicyWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1NetworkPolicyList ListNamespacedNetworkPolicy(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedNetworkPolicyAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1NetworkPolicyList> ListNamespacedNetworkPolicyAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedNetworkPolicyWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1NetworkPolicy CreateNamespacedNetworkPolicy(this IKubernetes operations, V1NetworkPolicy body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedNetworkPolicyAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1NetworkPolicy> CreateNamespacedNetworkPolicyAsync(this IKubernetes operations, V1NetworkPolicy body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedNetworkPolicyWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NetworkPolicy
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedNetworkPolicy(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedNetworkPolicyAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NetworkPolicy
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedNetworkPolicyAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedNetworkPolicyWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NetworkPolicy
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1NetworkPolicy ReadNamespacedNetworkPolicy(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedNetworkPolicyAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the NetworkPolicy
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1NetworkPolicy> ReadNamespacedNetworkPolicyAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedNetworkPolicyWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the NetworkPolicy
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1NetworkPolicy PatchNamespacedNetworkPolicy(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedNetworkPolicyAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the NetworkPolicy
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1NetworkPolicy> PatchNamespacedNetworkPolicyAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedNetworkPolicyWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the NetworkPolicy
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1NetworkPolicy ReplaceNamespacedNetworkPolicy(this IKubernetes operations, V1NetworkPolicy body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedNetworkPolicyAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the NetworkPolicy
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1NetworkPolicy> ReplaceNamespacedNetworkPolicyAsync(this IKubernetes operations, V1NetworkPolicy body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedNetworkPolicyWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1NetworkPolicyList ListNetworkPolicyForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListNetworkPolicyForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind NetworkPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1NetworkPolicyList> ListNetworkPolicyForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNetworkPolicyForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources29(this IKubernetes operations)
            {
                return operations.GetAPIResources29Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources29Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources29WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionIngressClass1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionIngressClass1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionIngressClass1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionIngressClass1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1IngressClassList ListIngressClass1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListIngressClass1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1IngressClassList> ListIngressClass1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListIngressClass1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1IngressClass CreateIngressClass1(this IKubernetes operations, V1beta1IngressClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateIngressClass1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1IngressClass> CreateIngressClass1Async(this IKubernetes operations, V1beta1IngressClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateIngressClass1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteIngressClass1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteIngressClass1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteIngressClass1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteIngressClass1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1IngressClass ReadIngressClass1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadIngressClass1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1IngressClass> ReadIngressClass1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadIngressClass1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1IngressClass PatchIngressClass1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchIngressClass1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1IngressClass> PatchIngressClass1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchIngressClass1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1IngressClass ReplaceIngressClass1(this IKubernetes operations, V1beta1IngressClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceIngressClass1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified IngressClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the IngressClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1IngressClass> ReplaceIngressClass1Async(this IKubernetes operations, V1beta1IngressClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceIngressClass1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static Networkingv1beta1IngressList ListIngressForAllNamespaces2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListIngressForAllNamespaces2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1IngressList> ListIngressForAllNamespaces2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListIngressForAllNamespaces2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedIngress2(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedIngress2Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedIngress2Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedIngress2WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Networkingv1beta1IngressList ListNamespacedIngress2(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedIngress2Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1IngressList> ListNamespacedIngress2Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedIngress2WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Networkingv1beta1Ingress CreateNamespacedIngress2(this IKubernetes operations, Networkingv1beta1Ingress body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedIngress2Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1Ingress> CreateNamespacedIngress2Async(this IKubernetes operations, Networkingv1beta1Ingress body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedIngress2WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedIngress2(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedIngress2Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete an Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedIngress2Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedIngress2WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Networkingv1beta1Ingress ReadNamespacedIngress2(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedIngress2Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1Ingress> ReadNamespacedIngress2Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedIngress2WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Networkingv1beta1Ingress PatchNamespacedIngress2(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedIngress2Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1Ingress> PatchNamespacedIngress2Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedIngress2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Networkingv1beta1Ingress ReplaceNamespacedIngress2(this IKubernetes operations, Networkingv1beta1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedIngress2Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1Ingress> ReplaceNamespacedIngress2Async(this IKubernetes operations, Networkingv1beta1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedIngress2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Networkingv1beta1Ingress ReadNamespacedIngressStatus2(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedIngressStatus2Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1Ingress> ReadNamespacedIngressStatus2Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedIngressStatus2WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Networkingv1beta1Ingress PatchNamespacedIngressStatus2(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedIngressStatus2Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1Ingress> PatchNamespacedIngressStatus2Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedIngressStatus2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static Networkingv1beta1Ingress ReplaceNamespacedIngressStatus2(this IKubernetes operations, Networkingv1beta1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedIngressStatus2Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified Ingress
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Ingress
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<Networkingv1beta1Ingress> ReplaceNamespacedIngressStatus2Async(this IKubernetes operations, Networkingv1beta1Ingress body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedIngressStatus2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup16(this IKubernetes operations)
            {
                return operations.GetAPIGroup16Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup16Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup16WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources30(this IKubernetes operations)
            {
                return operations.GetAPIResources30Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources30Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources30WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionRuntimeClass(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionRuntimeClassAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionRuntimeClassAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionRuntimeClassWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RuntimeClassList ListRuntimeClass(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListRuntimeClassAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RuntimeClassList> ListRuntimeClassAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRuntimeClassWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RuntimeClass CreateRuntimeClass(this IKubernetes operations, V1RuntimeClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateRuntimeClassAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RuntimeClass> CreateRuntimeClassAsync(this IKubernetes operations, V1RuntimeClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateRuntimeClassWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteRuntimeClass(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteRuntimeClassAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteRuntimeClassAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteRuntimeClassWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RuntimeClass ReadRuntimeClass(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadRuntimeClassAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RuntimeClass> ReadRuntimeClassAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadRuntimeClassWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RuntimeClass PatchRuntimeClass(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchRuntimeClassAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RuntimeClass> PatchRuntimeClassAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchRuntimeClassWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RuntimeClass ReplaceRuntimeClass(this IKubernetes operations, V1RuntimeClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceRuntimeClassAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RuntimeClass> ReplaceRuntimeClassAsync(this IKubernetes operations, V1RuntimeClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceRuntimeClassWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources31(this IKubernetes operations)
            {
                return operations.GetAPIResources31Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources31Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources31WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionRuntimeClass1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionRuntimeClass1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionRuntimeClass1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionRuntimeClass1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RuntimeClassList ListRuntimeClass1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListRuntimeClass1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RuntimeClassList> ListRuntimeClass1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRuntimeClass1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RuntimeClass CreateRuntimeClass1(this IKubernetes operations, V1alpha1RuntimeClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateRuntimeClass1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RuntimeClass> CreateRuntimeClass1Async(this IKubernetes operations, V1alpha1RuntimeClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateRuntimeClass1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteRuntimeClass1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteRuntimeClass1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteRuntimeClass1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteRuntimeClass1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RuntimeClass ReadRuntimeClass1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadRuntimeClass1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RuntimeClass> ReadRuntimeClass1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadRuntimeClass1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RuntimeClass PatchRuntimeClass1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchRuntimeClass1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RuntimeClass> PatchRuntimeClass1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchRuntimeClass1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RuntimeClass ReplaceRuntimeClass1(this IKubernetes operations, V1alpha1RuntimeClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceRuntimeClass1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RuntimeClass> ReplaceRuntimeClass1Async(this IKubernetes operations, V1alpha1RuntimeClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceRuntimeClass1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources32(this IKubernetes operations)
            {
                return operations.GetAPIResources32Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources32Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources32WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionRuntimeClass2(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionRuntimeClass2Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionRuntimeClass2Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionRuntimeClass2WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RuntimeClassList ListRuntimeClass2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListRuntimeClass2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RuntimeClassList> ListRuntimeClass2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRuntimeClass2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RuntimeClass CreateRuntimeClass2(this IKubernetes operations, V1beta1RuntimeClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateRuntimeClass2Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RuntimeClass> CreateRuntimeClass2Async(this IKubernetes operations, V1beta1RuntimeClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateRuntimeClass2WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteRuntimeClass2(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteRuntimeClass2Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteRuntimeClass2Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteRuntimeClass2WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RuntimeClass ReadRuntimeClass2(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadRuntimeClass2Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RuntimeClass> ReadRuntimeClass2Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadRuntimeClass2WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RuntimeClass PatchRuntimeClass2(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchRuntimeClass2Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RuntimeClass> PatchRuntimeClass2Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchRuntimeClass2WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RuntimeClass ReplaceRuntimeClass2(this IKubernetes operations, V1beta1RuntimeClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceRuntimeClass2Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified RuntimeClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RuntimeClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RuntimeClass> ReplaceRuntimeClass2Async(this IKubernetes operations, V1beta1RuntimeClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceRuntimeClass2WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup17(this IKubernetes operations)
            {
                return operations.GetAPIGroup17Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup17Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup17WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources33(this IKubernetes operations)
            {
                return operations.GetAPIResources33Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources33Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources33WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedPodDisruptionBudget(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedPodDisruptionBudgetAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedPodDisruptionBudgetAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedPodDisruptionBudgetWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodDisruptionBudgetList ListNamespacedPodDisruptionBudget(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedPodDisruptionBudgetAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudgetList> ListNamespacedPodDisruptionBudgetAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedPodDisruptionBudgetWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodDisruptionBudget CreateNamespacedPodDisruptionBudget(this IKubernetes operations, V1PodDisruptionBudget body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedPodDisruptionBudgetAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudget> CreateNamespacedPodDisruptionBudgetAsync(this IKubernetes operations, V1PodDisruptionBudget body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedPodDisruptionBudgetWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedPodDisruptionBudget(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedPodDisruptionBudgetAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedPodDisruptionBudgetAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedPodDisruptionBudgetWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodDisruptionBudget ReadNamespacedPodDisruptionBudget(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPodDisruptionBudgetAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudget> ReadNamespacedPodDisruptionBudgetAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPodDisruptionBudgetWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodDisruptionBudget PatchNamespacedPodDisruptionBudget(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPodDisruptionBudgetAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudget> PatchNamespacedPodDisruptionBudgetAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPodDisruptionBudgetWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodDisruptionBudget ReplaceNamespacedPodDisruptionBudget(this IKubernetes operations, V1PodDisruptionBudget body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPodDisruptionBudgetAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudget> ReplaceNamespacedPodDisruptionBudgetAsync(this IKubernetes operations, V1PodDisruptionBudget body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPodDisruptionBudgetWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodDisruptionBudget ReadNamespacedPodDisruptionBudgetStatus(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPodDisruptionBudgetStatusAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudget> ReadNamespacedPodDisruptionBudgetStatusAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPodDisruptionBudgetStatusWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodDisruptionBudget PatchNamespacedPodDisruptionBudgetStatus(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPodDisruptionBudgetStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudget> PatchNamespacedPodDisruptionBudgetStatusAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPodDisruptionBudgetStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PodDisruptionBudget ReplaceNamespacedPodDisruptionBudgetStatus(this IKubernetes operations, V1PodDisruptionBudget body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPodDisruptionBudgetStatusAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudget> ReplaceNamespacedPodDisruptionBudgetStatusAsync(this IKubernetes operations, V1PodDisruptionBudget body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPodDisruptionBudgetStatusWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1PodDisruptionBudgetList ListPodDisruptionBudgetForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListPodDisruptionBudgetForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PodDisruptionBudgetList> ListPodDisruptionBudgetForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPodDisruptionBudgetForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources34(this IKubernetes operations)
            {
                return operations.GetAPIResources34Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources34Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources34WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedPodDisruptionBudget1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedPodDisruptionBudget1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedPodDisruptionBudget1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedPodDisruptionBudget1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodDisruptionBudgetList ListNamespacedPodDisruptionBudget1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedPodDisruptionBudget1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudgetList> ListNamespacedPodDisruptionBudget1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedPodDisruptionBudget1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodDisruptionBudget CreateNamespacedPodDisruptionBudget1(this IKubernetes operations, V1beta1PodDisruptionBudget body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedPodDisruptionBudget1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudget> CreateNamespacedPodDisruptionBudget1Async(this IKubernetes operations, V1beta1PodDisruptionBudget body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedPodDisruptionBudget1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedPodDisruptionBudget1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedPodDisruptionBudget1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedPodDisruptionBudget1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedPodDisruptionBudget1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodDisruptionBudget ReadNamespacedPodDisruptionBudget1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPodDisruptionBudget1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudget> ReadNamespacedPodDisruptionBudget1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPodDisruptionBudget1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodDisruptionBudget PatchNamespacedPodDisruptionBudget1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPodDisruptionBudget1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudget> PatchNamespacedPodDisruptionBudget1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPodDisruptionBudget1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodDisruptionBudget ReplaceNamespacedPodDisruptionBudget1(this IKubernetes operations, V1beta1PodDisruptionBudget body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPodDisruptionBudget1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudget> ReplaceNamespacedPodDisruptionBudget1Async(this IKubernetes operations, V1beta1PodDisruptionBudget body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPodDisruptionBudget1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodDisruptionBudget ReadNamespacedPodDisruptionBudgetStatus1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedPodDisruptionBudgetStatus1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudget> ReadNamespacedPodDisruptionBudgetStatus1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedPodDisruptionBudgetStatus1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodDisruptionBudget PatchNamespacedPodDisruptionBudgetStatus1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedPodDisruptionBudgetStatus1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudget> PatchNamespacedPodDisruptionBudgetStatus1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedPodDisruptionBudgetStatus1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodDisruptionBudget ReplaceNamespacedPodDisruptionBudgetStatus1(this IKubernetes operations, V1beta1PodDisruptionBudget body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedPodDisruptionBudgetStatus1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodDisruptionBudget
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudget> ReplaceNamespacedPodDisruptionBudgetStatus1Async(this IKubernetes operations, V1beta1PodDisruptionBudget body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedPodDisruptionBudgetStatus1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1beta1PodDisruptionBudgetList ListPodDisruptionBudgetForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListPodDisruptionBudgetForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PodDisruptionBudget
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodDisruptionBudgetList> ListPodDisruptionBudgetForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPodDisruptionBudgetForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionPodSecurityPolicy(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionPodSecurityPolicyAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionPodSecurityPolicyAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionPodSecurityPolicyWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodSecurityPolicyList ListPodSecurityPolicy(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListPodSecurityPolicyAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodSecurityPolicyList> ListPodSecurityPolicyAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPodSecurityPolicyWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodSecurityPolicy CreatePodSecurityPolicy(this IKubernetes operations, V1beta1PodSecurityPolicy body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreatePodSecurityPolicyAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodSecurityPolicy> CreatePodSecurityPolicyAsync(this IKubernetes operations, V1beta1PodSecurityPolicy body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreatePodSecurityPolicyWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodSecurityPolicy
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodSecurityPolicy DeletePodSecurityPolicy(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeletePodSecurityPolicyAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodSecurityPolicy
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodSecurityPolicy> DeletePodSecurityPolicyAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeletePodSecurityPolicyWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodSecurityPolicy
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodSecurityPolicy ReadPodSecurityPolicy(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadPodSecurityPolicyAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PodSecurityPolicy
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodSecurityPolicy> ReadPodSecurityPolicyAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadPodSecurityPolicyWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodSecurityPolicy
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodSecurityPolicy PatchPodSecurityPolicy(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchPodSecurityPolicyAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodSecurityPolicy
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodSecurityPolicy> PatchPodSecurityPolicyAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchPodSecurityPolicyWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodSecurityPolicy
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PodSecurityPolicy ReplacePodSecurityPolicy(this IKubernetes operations, V1beta1PodSecurityPolicy body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplacePodSecurityPolicyAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PodSecurityPolicy
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PodSecurityPolicy
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PodSecurityPolicy> ReplacePodSecurityPolicyAsync(this IKubernetes operations, V1beta1PodSecurityPolicy body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplacePodSecurityPolicyWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup18(this IKubernetes operations)
            {
                return operations.GetAPIGroup18Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup18Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup18WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources35(this IKubernetes operations)
            {
                return operations.GetAPIResources35Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources35Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources35WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionClusterRoleBinding(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionClusterRoleBindingAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionClusterRoleBindingAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionClusterRoleBindingWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRoleBindingList ListClusterRoleBinding(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListClusterRoleBindingAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRoleBindingList> ListClusterRoleBindingAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListClusterRoleBindingWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRoleBinding CreateClusterRoleBinding(this IKubernetes operations, V1ClusterRoleBinding body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateClusterRoleBindingAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRoleBinding> CreateClusterRoleBindingAsync(this IKubernetes operations, V1ClusterRoleBinding body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateClusterRoleBindingWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteClusterRoleBinding(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteClusterRoleBindingAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteClusterRoleBindingAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteClusterRoleBindingWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRoleBinding ReadClusterRoleBinding(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadClusterRoleBindingAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRoleBinding> ReadClusterRoleBindingAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadClusterRoleBindingWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRoleBinding PatchClusterRoleBinding(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchClusterRoleBindingAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRoleBinding> PatchClusterRoleBindingAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterRoleBindingWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRoleBinding ReplaceClusterRoleBinding(this IKubernetes operations, V1ClusterRoleBinding body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceClusterRoleBindingAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRoleBinding> ReplaceClusterRoleBindingAsync(this IKubernetes operations, V1ClusterRoleBinding body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterRoleBindingWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionClusterRole(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionClusterRoleAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionClusterRoleAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionClusterRoleWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRoleList ListClusterRole(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListClusterRoleAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRoleList> ListClusterRoleAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListClusterRoleWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRole CreateClusterRole(this IKubernetes operations, V1ClusterRole body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateClusterRoleAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRole> CreateClusterRoleAsync(this IKubernetes operations, V1ClusterRole body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateClusterRoleWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteClusterRole(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteClusterRoleAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteClusterRoleAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteClusterRoleWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRole ReadClusterRole(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadClusterRoleAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRole> ReadClusterRoleAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadClusterRoleWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRole PatchClusterRole(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchClusterRoleAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRole> PatchClusterRoleAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterRoleWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1ClusterRole ReplaceClusterRole(this IKubernetes operations, V1ClusterRole body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceClusterRoleAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1ClusterRole> ReplaceClusterRoleAsync(this IKubernetes operations, V1ClusterRole body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterRoleWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedRoleBinding(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedRoleBindingAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedRoleBindingAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedRoleBindingWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RoleBindingList ListNamespacedRoleBinding(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedRoleBindingAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RoleBindingList> ListNamespacedRoleBindingAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedRoleBindingWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RoleBinding CreateNamespacedRoleBinding(this IKubernetes operations, V1RoleBinding body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedRoleBindingAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RoleBinding> CreateNamespacedRoleBindingAsync(this IKubernetes operations, V1RoleBinding body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedRoleBindingWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedRoleBinding(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedRoleBindingAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedRoleBindingAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedRoleBindingWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RoleBinding ReadNamespacedRoleBinding(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedRoleBindingAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RoleBinding> ReadNamespacedRoleBindingAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedRoleBindingWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RoleBinding PatchNamespacedRoleBinding(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedRoleBindingAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RoleBinding> PatchNamespacedRoleBindingAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedRoleBindingWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RoleBinding ReplaceNamespacedRoleBinding(this IKubernetes operations, V1RoleBinding body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedRoleBindingAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RoleBinding> ReplaceNamespacedRoleBindingAsync(this IKubernetes operations, V1RoleBinding body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedRoleBindingWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedRole(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedRoleAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedRoleAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedRoleWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1RoleList ListNamespacedRole(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedRoleAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RoleList> ListNamespacedRoleAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedRoleWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Role CreateNamespacedRole(this IKubernetes operations, V1Role body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedRoleAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Role> CreateNamespacedRoleAsync(this IKubernetes operations, V1Role body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedRoleWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedRole(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedRoleAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedRoleAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedRoleWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Role ReadNamespacedRole(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedRoleAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Role> ReadNamespacedRoleAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedRoleWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Role PatchNamespacedRole(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedRoleAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Role> PatchNamespacedRoleAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedRoleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Role ReplaceNamespacedRole(this IKubernetes operations, V1Role body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedRoleAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Role> ReplaceNamespacedRoleAsync(this IKubernetes operations, V1Role body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedRoleWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1RoleBindingList ListRoleBindingForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListRoleBindingForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RoleBindingList> ListRoleBindingForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRoleBindingForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1RoleList ListRoleForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListRoleForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1RoleList> ListRoleForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRoleForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources36(this IKubernetes operations)
            {
                return operations.GetAPIResources36Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources36Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources36WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionClusterRoleBinding1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionClusterRoleBinding1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionClusterRoleBinding1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionClusterRoleBinding1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRoleBindingList ListClusterRoleBinding1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListClusterRoleBinding1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRoleBindingList> ListClusterRoleBinding1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListClusterRoleBinding1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRoleBinding CreateClusterRoleBinding1(this IKubernetes operations, V1alpha1ClusterRoleBinding body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateClusterRoleBinding1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRoleBinding> CreateClusterRoleBinding1Async(this IKubernetes operations, V1alpha1ClusterRoleBinding body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateClusterRoleBinding1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteClusterRoleBinding1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteClusterRoleBinding1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteClusterRoleBinding1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteClusterRoleBinding1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRoleBinding ReadClusterRoleBinding1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadClusterRoleBinding1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRoleBinding> ReadClusterRoleBinding1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadClusterRoleBinding1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRoleBinding PatchClusterRoleBinding1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchClusterRoleBinding1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRoleBinding> PatchClusterRoleBinding1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterRoleBinding1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRoleBinding ReplaceClusterRoleBinding1(this IKubernetes operations, V1alpha1ClusterRoleBinding body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceClusterRoleBinding1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRoleBinding> ReplaceClusterRoleBinding1Async(this IKubernetes operations, V1alpha1ClusterRoleBinding body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterRoleBinding1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionClusterRole1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionClusterRole1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionClusterRole1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionClusterRole1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRoleList ListClusterRole1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListClusterRole1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRoleList> ListClusterRole1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListClusterRole1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRole CreateClusterRole1(this IKubernetes operations, V1alpha1ClusterRole body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateClusterRole1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRole> CreateClusterRole1Async(this IKubernetes operations, V1alpha1ClusterRole body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateClusterRole1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteClusterRole1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteClusterRole1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteClusterRole1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteClusterRole1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRole ReadClusterRole1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadClusterRole1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRole> ReadClusterRole1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadClusterRole1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRole PatchClusterRole1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchClusterRole1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRole> PatchClusterRole1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterRole1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1ClusterRole ReplaceClusterRole1(this IKubernetes operations, V1alpha1ClusterRole body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceClusterRole1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1ClusterRole> ReplaceClusterRole1Async(this IKubernetes operations, V1alpha1ClusterRole body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterRole1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedRoleBinding1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedRoleBinding1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedRoleBinding1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedRoleBinding1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RoleBindingList ListNamespacedRoleBinding1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedRoleBinding1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RoleBindingList> ListNamespacedRoleBinding1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedRoleBinding1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RoleBinding CreateNamespacedRoleBinding1(this IKubernetes operations, V1alpha1RoleBinding body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedRoleBinding1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RoleBinding> CreateNamespacedRoleBinding1Async(this IKubernetes operations, V1alpha1RoleBinding body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedRoleBinding1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedRoleBinding1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedRoleBinding1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedRoleBinding1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedRoleBinding1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RoleBinding ReadNamespacedRoleBinding1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedRoleBinding1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RoleBinding> ReadNamespacedRoleBinding1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedRoleBinding1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RoleBinding PatchNamespacedRoleBinding1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedRoleBinding1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RoleBinding> PatchNamespacedRoleBinding1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedRoleBinding1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RoleBinding ReplaceNamespacedRoleBinding1(this IKubernetes operations, V1alpha1RoleBinding body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedRoleBinding1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RoleBinding> ReplaceNamespacedRoleBinding1Async(this IKubernetes operations, V1alpha1RoleBinding body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedRoleBinding1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedRole1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedRole1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedRole1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedRole1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1RoleList ListNamespacedRole1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedRole1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RoleList> ListNamespacedRole1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedRole1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1Role CreateNamespacedRole1(this IKubernetes operations, V1alpha1Role body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedRole1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1Role> CreateNamespacedRole1Async(this IKubernetes operations, V1alpha1Role body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedRole1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedRole1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedRole1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedRole1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedRole1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1Role ReadNamespacedRole1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedRole1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1Role> ReadNamespacedRole1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedRole1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1Role PatchNamespacedRole1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedRole1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1Role> PatchNamespacedRole1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedRole1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1Role ReplaceNamespacedRole1(this IKubernetes operations, V1alpha1Role body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedRole1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1Role> ReplaceNamespacedRole1Async(this IKubernetes operations, V1alpha1Role body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedRole1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1alpha1RoleBindingList ListRoleBindingForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListRoleBindingForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RoleBindingList> ListRoleBindingForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRoleBindingForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1alpha1RoleList ListRoleForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListRoleForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1RoleList> ListRoleForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRoleForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources37(this IKubernetes operations)
            {
                return operations.GetAPIResources37Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources37Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources37WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionClusterRoleBinding2(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionClusterRoleBinding2Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionClusterRoleBinding2Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionClusterRoleBinding2WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRoleBindingList ListClusterRoleBinding2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListClusterRoleBinding2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRoleBindingList> ListClusterRoleBinding2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListClusterRoleBinding2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRoleBinding CreateClusterRoleBinding2(this IKubernetes operations, V1beta1ClusterRoleBinding body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateClusterRoleBinding2Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRoleBinding> CreateClusterRoleBinding2Async(this IKubernetes operations, V1beta1ClusterRoleBinding body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateClusterRoleBinding2WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteClusterRoleBinding2(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteClusterRoleBinding2Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteClusterRoleBinding2Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteClusterRoleBinding2WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRoleBinding ReadClusterRoleBinding2(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadClusterRoleBinding2Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRoleBinding> ReadClusterRoleBinding2Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadClusterRoleBinding2WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRoleBinding PatchClusterRoleBinding2(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchClusterRoleBinding2Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRoleBinding> PatchClusterRoleBinding2Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterRoleBinding2WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRoleBinding ReplaceClusterRoleBinding2(this IKubernetes operations, V1beta1ClusterRoleBinding body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceClusterRoleBinding2Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ClusterRoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRoleBinding
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRoleBinding> ReplaceClusterRoleBinding2Async(this IKubernetes operations, V1beta1ClusterRoleBinding body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterRoleBinding2WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionClusterRole2(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionClusterRole2Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionClusterRole2Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionClusterRole2WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRoleList ListClusterRole2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListClusterRole2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRoleList> ListClusterRole2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListClusterRole2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRole CreateClusterRole2(this IKubernetes operations, V1beta1ClusterRole body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateClusterRole2Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRole> CreateClusterRole2Async(this IKubernetes operations, V1beta1ClusterRole body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateClusterRole2WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteClusterRole2(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteClusterRole2Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteClusterRole2Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteClusterRole2WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRole ReadClusterRole2(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadClusterRole2Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRole> ReadClusterRole2Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadClusterRole2WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRole PatchClusterRole2(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchClusterRole2Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRole> PatchClusterRole2Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterRole2WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1ClusterRole ReplaceClusterRole2(this IKubernetes operations, V1beta1ClusterRole body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceClusterRole2Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified ClusterRole
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the ClusterRole
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1ClusterRole> ReplaceClusterRole2Async(this IKubernetes operations, V1beta1ClusterRole body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterRole2WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedRoleBinding2(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedRoleBinding2Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedRoleBinding2Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedRoleBinding2WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RoleBindingList ListNamespacedRoleBinding2(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedRoleBinding2Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RoleBindingList> ListNamespacedRoleBinding2Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedRoleBinding2WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RoleBinding CreateNamespacedRoleBinding2(this IKubernetes operations, V1beta1RoleBinding body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedRoleBinding2Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RoleBinding> CreateNamespacedRoleBinding2Async(this IKubernetes operations, V1beta1RoleBinding body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedRoleBinding2WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedRoleBinding2(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedRoleBinding2Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedRoleBinding2Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedRoleBinding2WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RoleBinding ReadNamespacedRoleBinding2(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedRoleBinding2Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RoleBinding> ReadNamespacedRoleBinding2Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedRoleBinding2WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RoleBinding PatchNamespacedRoleBinding2(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedRoleBinding2Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RoleBinding> PatchNamespacedRoleBinding2Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedRoleBinding2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RoleBinding ReplaceNamespacedRoleBinding2(this IKubernetes operations, V1beta1RoleBinding body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedRoleBinding2Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the RoleBinding
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RoleBinding> ReplaceNamespacedRoleBinding2Async(this IKubernetes operations, V1beta1RoleBinding body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedRoleBinding2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedRole2(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedRole2Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedRole2Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedRole2WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1RoleList ListNamespacedRole2(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedRole2Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RoleList> ListNamespacedRole2Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedRole2WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Role CreateNamespacedRole2(this IKubernetes operations, V1beta1Role body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedRole2Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Role> CreateNamespacedRole2Async(this IKubernetes operations, V1beta1Role body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedRole2WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedRole2(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedRole2Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedRole2Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedRole2WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Role ReadNamespacedRole2(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedRole2Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Role> ReadNamespacedRole2Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedRole2WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Role PatchNamespacedRole2(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedRole2Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Role> PatchNamespacedRole2Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedRole2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1Role ReplaceNamespacedRole2(this IKubernetes operations, V1beta1Role body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedRole2Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the Role
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1Role> ReplaceNamespacedRole2Async(this IKubernetes operations, V1beta1Role body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedRole2WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1beta1RoleBindingList ListRoleBindingForAllNamespaces2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListRoleBindingForAllNamespaces2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind RoleBinding
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RoleBindingList> ListRoleBindingForAllNamespaces2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRoleBindingForAllNamespaces2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1beta1RoleList ListRoleForAllNamespaces2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListRoleForAllNamespaces2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind Role
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1RoleList> ListRoleForAllNamespaces2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListRoleForAllNamespaces2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup19(this IKubernetes operations)
            {
                return operations.GetAPIGroup19Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup19Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup19WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources38(this IKubernetes operations)
            {
                return operations.GetAPIResources38Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources38Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources38WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionPriorityClass(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionPriorityClassAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionPriorityClassAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionPriorityClassWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PriorityClassList ListPriorityClass(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListPriorityClassAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PriorityClassList> ListPriorityClassAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPriorityClassWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PriorityClass CreatePriorityClass(this IKubernetes operations, V1PriorityClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreatePriorityClassAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PriorityClass> CreatePriorityClassAsync(this IKubernetes operations, V1PriorityClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreatePriorityClassWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeletePriorityClass(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeletePriorityClassAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeletePriorityClassAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeletePriorityClassWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PriorityClass ReadPriorityClass(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadPriorityClassAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PriorityClass> ReadPriorityClassAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadPriorityClassWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PriorityClass PatchPriorityClass(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchPriorityClassAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PriorityClass> PatchPriorityClassAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchPriorityClassWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1PriorityClass ReplacePriorityClass(this IKubernetes operations, V1PriorityClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplacePriorityClassAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1PriorityClass> ReplacePriorityClassAsync(this IKubernetes operations, V1PriorityClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplacePriorityClassWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources39(this IKubernetes operations)
            {
                return operations.GetAPIResources39Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources39Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources39WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionPriorityClass1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionPriorityClass1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionPriorityClass1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionPriorityClass1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1PriorityClassList ListPriorityClass1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListPriorityClass1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1PriorityClassList> ListPriorityClass1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPriorityClass1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1PriorityClass CreatePriorityClass1(this IKubernetes operations, V1alpha1PriorityClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreatePriorityClass1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1PriorityClass> CreatePriorityClass1Async(this IKubernetes operations, V1alpha1PriorityClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreatePriorityClass1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeletePriorityClass1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeletePriorityClass1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeletePriorityClass1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeletePriorityClass1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1PriorityClass ReadPriorityClass1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadPriorityClass1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1PriorityClass> ReadPriorityClass1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadPriorityClass1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1PriorityClass PatchPriorityClass1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchPriorityClass1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1PriorityClass> PatchPriorityClass1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchPriorityClass1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1PriorityClass ReplacePriorityClass1(this IKubernetes operations, V1alpha1PriorityClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplacePriorityClass1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1PriorityClass> ReplacePriorityClass1Async(this IKubernetes operations, V1alpha1PriorityClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplacePriorityClass1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources40(this IKubernetes operations)
            {
                return operations.GetAPIResources40Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources40Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources40WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionPriorityClass2(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionPriorityClass2Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionPriorityClass2Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionPriorityClass2WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityClassList ListPriorityClass2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListPriorityClass2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityClassList> ListPriorityClass2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListPriorityClass2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityClass CreatePriorityClass2(this IKubernetes operations, V1beta1PriorityClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreatePriorityClass2Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityClass> CreatePriorityClass2Async(this IKubernetes operations, V1beta1PriorityClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreatePriorityClass2WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeletePriorityClass2(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeletePriorityClass2Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeletePriorityClass2Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeletePriorityClass2WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityClass ReadPriorityClass2(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadPriorityClass2Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityClass> ReadPriorityClass2Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadPriorityClass2WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityClass PatchPriorityClass2(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchPriorityClass2Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityClass> PatchPriorityClass2Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchPriorityClass2WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1PriorityClass ReplacePriorityClass2(this IKubernetes operations, V1beta1PriorityClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplacePriorityClass2Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified PriorityClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the PriorityClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1PriorityClass> ReplacePriorityClass2Async(this IKubernetes operations, V1beta1PriorityClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplacePriorityClass2WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIGroup GetAPIGroup20(this IKubernetes operations)
            {
                return operations.GetAPIGroup20Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get information of a group
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIGroup> GetAPIGroup20Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIGroup20WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources41(this IKubernetes operations)
            {
                return operations.GetAPIResources41Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources41Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources41WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionCSIDriver(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionCSIDriverAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionCSIDriverAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionCSIDriverWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSIDriverList ListCSIDriver(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListCSIDriverAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSIDriverList> ListCSIDriverAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCSIDriverWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSIDriver CreateCSIDriver(this IKubernetes operations, V1CSIDriver body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateCSIDriverAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSIDriver> CreateCSIDriverAsync(this IKubernetes operations, V1CSIDriver body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateCSIDriverWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSIDriver DeleteCSIDriver(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteCSIDriverAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSIDriver> DeleteCSIDriverAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCSIDriverWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSIDriver ReadCSIDriver(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCSIDriverAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSIDriver> ReadCSIDriverAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCSIDriverWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSIDriver PatchCSIDriver(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCSIDriverAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSIDriver> PatchCSIDriverAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCSIDriverWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSIDriver ReplaceCSIDriver(this IKubernetes operations, V1CSIDriver body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCSIDriverAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSIDriver> ReplaceCSIDriverAsync(this IKubernetes operations, V1CSIDriver body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCSIDriverWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionCSINode(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionCSINodeAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionCSINodeAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionCSINodeWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSINodeList ListCSINode(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListCSINodeAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSINodeList> ListCSINodeAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCSINodeWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSINode CreateCSINode(this IKubernetes operations, V1CSINode body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateCSINodeAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSINode> CreateCSINodeAsync(this IKubernetes operations, V1CSINode body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateCSINodeWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSINode DeleteCSINode(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteCSINodeAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSINode> DeleteCSINodeAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCSINodeWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSINode ReadCSINode(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCSINodeAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSINode> ReadCSINodeAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCSINodeWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSINode PatchCSINode(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCSINodeAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSINode> PatchCSINodeAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCSINodeWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1CSINode ReplaceCSINode(this IKubernetes operations, V1CSINode body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCSINodeAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1CSINode> ReplaceCSINodeAsync(this IKubernetes operations, V1CSINode body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCSINodeWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionStorageClass(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionStorageClassAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionStorageClassAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionStorageClassWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StorageClassList ListStorageClass(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListStorageClassAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StorageClassList> ListStorageClassAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListStorageClassWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StorageClass CreateStorageClass(this IKubernetes operations, V1StorageClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateStorageClassAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StorageClass> CreateStorageClassAsync(this IKubernetes operations, V1StorageClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateStorageClassWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StorageClass DeleteStorageClass(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteStorageClassAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StorageClass> DeleteStorageClassAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteStorageClassWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StorageClass ReadStorageClass(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadStorageClassAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StorageClass> ReadStorageClassAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadStorageClassWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StorageClass PatchStorageClass(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchStorageClassAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StorageClass> PatchStorageClassAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchStorageClassWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1StorageClass ReplaceStorageClass(this IKubernetes operations, V1StorageClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceStorageClassAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1StorageClass> ReplaceStorageClassAsync(this IKubernetes operations, V1StorageClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceStorageClassWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionVolumeAttachment(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionVolumeAttachmentAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionVolumeAttachmentAsync(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionVolumeAttachmentWithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachmentList ListVolumeAttachment(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListVolumeAttachmentAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachmentList> ListVolumeAttachmentAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListVolumeAttachmentWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachment CreateVolumeAttachment(this IKubernetes operations, V1VolumeAttachment body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateVolumeAttachmentAsync(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachment> CreateVolumeAttachmentAsync(this IKubernetes operations, V1VolumeAttachment body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateVolumeAttachmentWithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachment DeleteVolumeAttachment(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteVolumeAttachmentAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachment> DeleteVolumeAttachmentAsync(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteVolumeAttachmentWithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachment ReadVolumeAttachment(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadVolumeAttachmentAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachment> ReadVolumeAttachmentAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadVolumeAttachmentWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachment PatchVolumeAttachment(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchVolumeAttachmentAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachment> PatchVolumeAttachmentAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchVolumeAttachmentWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachment ReplaceVolumeAttachment(this IKubernetes operations, V1VolumeAttachment body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceVolumeAttachmentAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachment> ReplaceVolumeAttachmentAsync(this IKubernetes operations, V1VolumeAttachment body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceVolumeAttachmentWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachment ReadVolumeAttachmentStatus(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadVolumeAttachmentStatusAsync(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachment> ReadVolumeAttachmentStatusAsync(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadVolumeAttachmentStatusWithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachment PatchVolumeAttachmentStatus(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchVolumeAttachmentStatusAsync(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachment> PatchVolumeAttachmentStatusAsync(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchVolumeAttachmentStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1VolumeAttachment ReplaceVolumeAttachmentStatus(this IKubernetes operations, V1VolumeAttachment body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceVolumeAttachmentStatusAsync(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1VolumeAttachment> ReplaceVolumeAttachmentStatusAsync(this IKubernetes operations, V1VolumeAttachment body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceVolumeAttachmentStatusWithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources42(this IKubernetes operations)
            {
                return operations.GetAPIResources42Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources42Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources42WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1alpha1CSIStorageCapacityList ListCSIStorageCapacityForAllNamespaces(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListCSIStorageCapacityForAllNamespacesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1CSIStorageCapacityList> ListCSIStorageCapacityForAllNamespacesAsync(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCSIStorageCapacityForAllNamespacesWithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedCSIStorageCapacity(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedCSIStorageCapacityAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedCSIStorageCapacityAsync(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedCSIStorageCapacityWithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1CSIStorageCapacityList ListNamespacedCSIStorageCapacity(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedCSIStorageCapacityAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1CSIStorageCapacityList> ListNamespacedCSIStorageCapacityAsync(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedCSIStorageCapacityWithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1CSIStorageCapacity CreateNamespacedCSIStorageCapacity(this IKubernetes operations, V1alpha1CSIStorageCapacity body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedCSIStorageCapacityAsync(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1CSIStorageCapacity> CreateNamespacedCSIStorageCapacityAsync(this IKubernetes operations, V1alpha1CSIStorageCapacity body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedCSIStorageCapacityWithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedCSIStorageCapacity(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedCSIStorageCapacityAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedCSIStorageCapacityAsync(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedCSIStorageCapacityWithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1CSIStorageCapacity ReadNamespacedCSIStorageCapacity(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedCSIStorageCapacityAsync(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1CSIStorageCapacity> ReadNamespacedCSIStorageCapacityAsync(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedCSIStorageCapacityWithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1CSIStorageCapacity PatchNamespacedCSIStorageCapacity(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedCSIStorageCapacityAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1CSIStorageCapacity> PatchNamespacedCSIStorageCapacityAsync(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCSIStorageCapacityWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1CSIStorageCapacity ReplaceNamespacedCSIStorageCapacity(this IKubernetes operations, V1alpha1CSIStorageCapacity body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedCSIStorageCapacityAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1CSIStorageCapacity> ReplaceNamespacedCSIStorageCapacityAsync(this IKubernetes operations, V1alpha1CSIStorageCapacity body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCSIStorageCapacityWithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionVolumeAttachment1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionVolumeAttachment1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionVolumeAttachment1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionVolumeAttachment1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1VolumeAttachmentList ListVolumeAttachment1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListVolumeAttachment1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1VolumeAttachmentList> ListVolumeAttachment1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListVolumeAttachment1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1VolumeAttachment CreateVolumeAttachment1(this IKubernetes operations, V1alpha1VolumeAttachment body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateVolumeAttachment1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1VolumeAttachment> CreateVolumeAttachment1Async(this IKubernetes operations, V1alpha1VolumeAttachment body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateVolumeAttachment1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1VolumeAttachment DeleteVolumeAttachment1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteVolumeAttachment1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1VolumeAttachment> DeleteVolumeAttachment1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteVolumeAttachment1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1VolumeAttachment ReadVolumeAttachment1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadVolumeAttachment1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1VolumeAttachment> ReadVolumeAttachment1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadVolumeAttachment1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1VolumeAttachment PatchVolumeAttachment1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchVolumeAttachment1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1VolumeAttachment> PatchVolumeAttachment1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchVolumeAttachment1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1alpha1VolumeAttachment ReplaceVolumeAttachment1(this IKubernetes operations, V1alpha1VolumeAttachment body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceVolumeAttachment1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1alpha1VolumeAttachment> ReplaceVolumeAttachment1Async(this IKubernetes operations, V1alpha1VolumeAttachment body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceVolumeAttachment1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static V1APIResourceList GetAPIResources43(this IKubernetes operations)
            {
                return operations.GetAPIResources43Async().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get available resources
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1APIResourceList> GetAPIResources43Async(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetAPIResources43WithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionCSIDriver1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionCSIDriver1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionCSIDriver1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionCSIDriver1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIDriverList ListCSIDriver1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListCSIDriver1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIDriverList> ListCSIDriver1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCSIDriver1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIDriver CreateCSIDriver1(this IKubernetes operations, V1beta1CSIDriver body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateCSIDriver1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIDriver> CreateCSIDriver1Async(this IKubernetes operations, V1beta1CSIDriver body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateCSIDriver1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIDriver DeleteCSIDriver1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteCSIDriver1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIDriver> DeleteCSIDriver1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCSIDriver1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIDriver ReadCSIDriver1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCSIDriver1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIDriver> ReadCSIDriver1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCSIDriver1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIDriver PatchCSIDriver1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCSIDriver1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIDriver> PatchCSIDriver1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCSIDriver1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIDriver ReplaceCSIDriver1(this IKubernetes operations, V1beta1CSIDriver body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCSIDriver1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CSIDriver
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIDriver
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIDriver> ReplaceCSIDriver1Async(this IKubernetes operations, V1beta1CSIDriver body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCSIDriver1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionCSINode1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionCSINode1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionCSINode1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionCSINode1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSINodeList ListCSINode1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListCSINode1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSINodeList> ListCSINode1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCSINode1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSINode CreateCSINode1(this IKubernetes operations, V1beta1CSINode body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateCSINode1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSINode> CreateCSINode1Async(this IKubernetes operations, V1beta1CSINode body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateCSINode1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSINode DeleteCSINode1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteCSINode1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSINode> DeleteCSINode1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCSINode1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSINode ReadCSINode1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadCSINode1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSINode> ReadCSINode1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadCSINode1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSINode PatchCSINode1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchCSINode1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSINode> PatchCSINode1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchCSINode1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSINode ReplaceCSINode1(this IKubernetes operations, V1beta1CSINode body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceCSINode1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CSINode
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSINode
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSINode> ReplaceCSINode1Async(this IKubernetes operations, V1beta1CSINode body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceCSINode1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            public static V1beta1CSIStorageCapacityList ListCSIStorageCapacityForAllNamespaces1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?))
            {
                return operations.ListCSIStorageCapacityForAllNamespaces1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIStorageCapacityList> ListCSIStorageCapacityForAllNamespaces1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string pretty = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListCSIStorageCapacityForAllNamespaces1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionNamespacedCSIStorageCapacity1(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedCSIStorageCapacity1Async(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionNamespacedCSIStorageCapacity1Async(this IKubernetes operations, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedCSIStorageCapacity1WithHttpMessagesAsync(namespaceParameter, body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIStorageCapacityList ListNamespacedCSIStorageCapacity1(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedCSIStorageCapacity1Async(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIStorageCapacityList> ListNamespacedCSIStorageCapacity1Async(this IKubernetes operations, string namespaceParameter, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedCSIStorageCapacity1WithHttpMessagesAsync(namespaceParameter, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIStorageCapacity CreateNamespacedCSIStorageCapacity1(this IKubernetes operations, V1beta1CSIStorageCapacity body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedCSIStorageCapacity1Async(body, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIStorageCapacity> CreateNamespacedCSIStorageCapacity1Async(this IKubernetes operations, V1beta1CSIStorageCapacity body, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedCSIStorageCapacity1WithHttpMessagesAsync(body, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteNamespacedCSIStorageCapacity1(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteNamespacedCSIStorageCapacity1Async(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteNamespacedCSIStorageCapacity1Async(this IKubernetes operations, string name, string namespaceParameter, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedCSIStorageCapacity1WithHttpMessagesAsync(name, namespaceParameter, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIStorageCapacity ReadNamespacedCSIStorageCapacity1(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string))
            {
                return operations.ReadNamespacedCSIStorageCapacity1Async(name, namespaceParameter, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIStorageCapacity> ReadNamespacedCSIStorageCapacity1Async(this IKubernetes operations, string name, string namespaceParameter, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadNamespacedCSIStorageCapacity1WithHttpMessagesAsync(name, namespaceParameter, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIStorageCapacity PatchNamespacedCSIStorageCapacity1(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchNamespacedCSIStorageCapacity1Async(body, name, namespaceParameter, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIStorageCapacity> PatchNamespacedCSIStorageCapacity1Async(this IKubernetes operations, V1Patch body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCSIStorageCapacity1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1CSIStorageCapacity ReplaceNamespacedCSIStorageCapacity1(this IKubernetes operations, V1beta1CSIStorageCapacity body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceNamespacedCSIStorageCapacity1Async(body, name, namespaceParameter, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified CSIStorageCapacity
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the CSIStorageCapacity
            /// </param>
            /// <param name='namespaceParameter'>
            /// object name and auth scope, such as for teams and projects
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1CSIStorageCapacity> ReplaceNamespacedCSIStorageCapacity1Async(this IKubernetes operations, V1beta1CSIStorageCapacity body, string name, string namespaceParameter, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCSIStorageCapacity1WithHttpMessagesAsync(body, name, namespaceParameter, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionStorageClass1(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionStorageClass1Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionStorageClass1Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionStorageClass1WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1StorageClassList ListStorageClass1(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListStorageClass1Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1StorageClassList> ListStorageClass1Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListStorageClass1WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1StorageClass CreateStorageClass1(this IKubernetes operations, V1beta1StorageClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateStorageClass1Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1StorageClass> CreateStorageClass1Async(this IKubernetes operations, V1beta1StorageClass body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateStorageClass1WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1StorageClass DeleteStorageClass1(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteStorageClass1Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1StorageClass> DeleteStorageClass1Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteStorageClass1WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1StorageClass ReadStorageClass1(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadStorageClass1Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1StorageClass> ReadStorageClass1Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadStorageClass1WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1StorageClass PatchStorageClass1(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchStorageClass1Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1StorageClass> PatchStorageClass1Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchStorageClass1WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1StorageClass ReplaceStorageClass1(this IKubernetes operations, V1beta1StorageClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceStorageClass1Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified StorageClass
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the StorageClass
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1StorageClass> ReplaceStorageClass1Async(this IKubernetes operations, V1beta1StorageClass body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceStorageClass1WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete collection of VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1Status DeleteCollectionVolumeAttachment2(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string))
            {
                return operations.DeleteCollectionVolumeAttachment2Async(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete collection of VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1Status> DeleteCollectionVolumeAttachment2Async(this IKubernetes operations, V1DeleteOptions body = default(V1DeleteOptions), string continueParameter = default(string), string dryRun = default(string), string fieldSelector = default(string), int? gracePeriodSeconds = default(int?), string labelSelector = default(string), int? limit = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionVolumeAttachment2WithHttpMessagesAsync(body, continueParameter, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch objects of kind VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1VolumeAttachmentList ListVolumeAttachment2(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListVolumeAttachment2Async(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch objects of kind VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications. Specify resourceVersion.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1VolumeAttachmentList> ListVolumeAttachment2Async(this IKubernetes operations, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListVolumeAttachment2WithHttpMessagesAsync(allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// create a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1VolumeAttachment CreateVolumeAttachment2(this IKubernetes operations, V1beta1VolumeAttachment body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateVolumeAttachment2Async(body, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// create a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1VolumeAttachment> CreateVolumeAttachment2Async(this IKubernetes operations, V1beta1VolumeAttachment body, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateVolumeAttachment2WithHttpMessagesAsync(body, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// delete a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1VolumeAttachment DeleteVolumeAttachment2(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string))
            {
                return operations.DeleteVolumeAttachment2Async(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// delete a VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1VolumeAttachment> DeleteVolumeAttachment2Async(this IKubernetes operations, string name, V1DeleteOptions body = default(V1DeleteOptions), string dryRun = default(string), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteVolumeAttachment2WithHttpMessagesAsync(name, body, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1VolumeAttachment ReadVolumeAttachment2(this IKubernetes operations, string name, string pretty = default(string))
            {
                return operations.ReadVolumeAttachment2Async(name, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1VolumeAttachment> ReadVolumeAttachment2Async(this IKubernetes operations, string name, string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReadVolumeAttachment2WithHttpMessagesAsync(name, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1VolumeAttachment PatchVolumeAttachment2(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string))
            {
                return operations.PatchVolumeAttachment2Async(body, name, dryRun, fieldManager, force, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1VolumeAttachment> PatchVolumeAttachment2Async(this IKubernetes operations, V1Patch body, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchVolumeAttachment2WithHttpMessagesAsync(body, name, dryRun, fieldManager, force, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static V1beta1VolumeAttachment ReplaceVolumeAttachment2(this IKubernetes operations, V1beta1VolumeAttachment body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.ReplaceVolumeAttachment2Async(body, name, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified VolumeAttachment
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='name'>
            /// name of the VolumeAttachment
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<V1beta1VolumeAttachment> ReplaceVolumeAttachment2Async(this IKubernetes operations, V1beta1VolumeAttachment body, string name, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceVolumeAttachment2WithHttpMessagesAsync(body, name, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static void LogFileListHandler(this IKubernetes operations)
            {
                operations.LogFileListHandlerAsync().GetAwaiter().GetResult();
            }

            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task LogFileListHandlerAsync(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.LogFileListHandlerWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='logpath'>
            /// path to the log
            /// </param>
            public static void LogFileHandler(this IKubernetes operations, string logpath)
            {
                operations.LogFileHandlerAsync(logpath).GetAwaiter().GetResult();
            }

            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='logpath'>
            /// path to the log
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task LogFileHandlerAsync(this IKubernetes operations, string logpath, CancellationToken cancellationToken = default(CancellationToken))
            {
                (await operations.LogFileHandlerWithHttpMessagesAsync(logpath, null, cancellationToken).ConfigureAwait(false)).Dispose();
            }

            /// <summary>
            /// get service account issuer OpenID JSON Web Key Set (contains public token
            /// verification keys)
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static string GetServiceAccountIssuerOpenIDKeyset(this IKubernetes operations)
            {
                return operations.GetServiceAccountIssuerOpenIDKeysetAsync().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get service account issuer OpenID JSON Web Key Set (contains public token
            /// verification keys)
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<string> GetServiceAccountIssuerOpenIDKeysetAsync(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetServiceAccountIssuerOpenIDKeysetWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// get the code version
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            public static VersionInfo GetCode(this IKubernetes operations)
            {
                return operations.GetCodeAsync().GetAwaiter().GetResult();
            }

            /// <summary>
            /// get the code version
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<VersionInfo> GetCodeAsync(this IKubernetes operations, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetCodeWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Creates a namespace scoped Custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to create.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static object CreateNamespacedCustomObject(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateNamespacedCustomObjectAsync(body, group, version, namespaceParameter, plural, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Creates a namespace scoped Custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to create.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> CreateNamespacedCustomObjectAsync(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateNamespacedCustomObjectWithHttpMessagesAsync(body, group, version, namespaceParameter, plural, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Delete collection of namespace scoped custom objects
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static object DeleteCollectionNamespacedCustomObject(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, V1DeleteOptions body = default(V1DeleteOptions), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string dryRun = default(string), string pretty = default(string))
            {
                return operations.DeleteCollectionNamespacedCustomObjectAsync(group, version, namespaceParameter, plural, body, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Delete collection of namespace scoped custom objects
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> DeleteCollectionNamespacedCustomObjectAsync(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, V1DeleteOptions body = default(V1DeleteOptions), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string dryRun = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionNamespacedCustomObjectWithHttpMessagesAsync(group, version, namespaceParameter, plural, body, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch namespace scoped custom objects
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='resourceVersion'>
            /// When specified with a watch call, shows changes that occur after that
            /// particular version of a resource. Defaults to changes from the beginning of
            /// history. When specified for list: - if unset, then the result is returned
            /// from remote storage based on quorum-read flag; - if it's 0, then we simply
            /// return what we currently have in cache, no guarantee; - if set to non zero,
            /// then the result is at least as fresh as given rv.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static object ListNamespacedCustomObject(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListNamespacedCustomObjectAsync(group, version, namespaceParameter, plural, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch namespace scoped custom objects
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='resourceVersion'>
            /// When specified with a watch call, shows changes that occur after that
            /// particular version of a resource. Defaults to changes from the beginning of
            /// history. When specified for list: - if unset, then the result is returned
            /// from remote storage based on quorum-read flag; - if it's 0, then we simply
            /// return what we currently have in cache, no guarantee; - if set to non zero,
            /// then the result is at least as fresh as given rv.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> ListNamespacedCustomObjectAsync(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListNamespacedCustomObjectWithHttpMessagesAsync(group, version, namespaceParameter, plural, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Creates a cluster scoped Custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to create.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static object CreateClusterCustomObject(this IKubernetes operations, object body, string group, string version, string plural, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string))
            {
                return operations.CreateClusterCustomObjectAsync(body, group, version, plural, dryRun, fieldManager, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Creates a cluster scoped Custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to create.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> CreateClusterCustomObjectAsync(this IKubernetes operations, object body, string group, string version, string plural, string dryRun = default(string), string fieldManager = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.CreateClusterCustomObjectWithHttpMessagesAsync(body, group, version, plural, dryRun, fieldManager, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Delete collection of cluster scoped custom objects
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static object DeleteCollectionClusterCustomObject(this IKubernetes operations, string group, string version, string plural, V1DeleteOptions body = default(V1DeleteOptions), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string dryRun = default(string), string pretty = default(string))
            {
                return operations.DeleteCollectionClusterCustomObjectAsync(group, version, plural, body, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Delete collection of cluster scoped custom objects
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> DeleteCollectionClusterCustomObjectAsync(this IKubernetes operations, string group, string version, string plural, V1DeleteOptions body = default(V1DeleteOptions), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string dryRun = default(string), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteCollectionClusterCustomObjectWithHttpMessagesAsync(group, version, plural, body, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// list or watch cluster scoped custom objects
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='resourceVersion'>
            /// When specified with a watch call, shows changes that occur after that
            /// particular version of a resource. Defaults to changes from the beginning of
            /// history. When specified for list: - if unset, then the result is returned
            /// from remote storage based on quorum-read flag; - if it's 0, then we simply
            /// return what we currently have in cache, no guarantee; - if set to non zero,
            /// then the result is at least as fresh as given rv.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            public static object ListClusterCustomObject(this IKubernetes operations, string group, string version, string plural, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string))
            {
                return operations.ListClusterCustomObjectAsync(group, version, plural, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty).GetAwaiter().GetResult();
            }

            /// <summary>
            /// list or watch cluster scoped custom objects
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// The custom resource's group name
            /// </param>
            /// <param name='version'>
            /// The custom resource's version
            /// </param>
            /// <param name='plural'>
            /// The custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='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. If the feature gate WatchBookmarks is not enabled in apiserver,
            /// this field is ignored.
            /// </param>
            /// <param name='continueParameter'>
            /// 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.
            /// </param>
            /// <param name='fieldSelector'>
            /// A selector to restrict the list of returned objects by their fields.
            /// Defaults to everything.
            /// </param>
            /// <param name='labelSelector'>
            /// A selector to restrict the list of returned objects by their labels.
            /// Defaults to everything.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='resourceVersion'>
            /// When specified with a watch call, shows changes that occur after that
            /// particular version of a resource. Defaults to changes from the beginning of
            /// history. When specified for list: - if unset, then the result is returned
            /// from remote storage based on quorum-read flag; - if it's 0, then we simply
            /// return what we currently have in cache, no guarantee; - if set to non zero,
            /// then the result is at least as fresh as given rv.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='timeoutSeconds'>
            /// Timeout for the list/watch call. This limits the duration of the call,
            /// regardless of any activity or inactivity.
            /// </param>
            /// <param name='watch'>
            /// Watch for changes to the described resources and return them as a stream of
            /// add, update, and remove notifications.
            /// </param>
            /// <param name='pretty'>
            /// If 'true', then the output is pretty printed.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> ListClusterCustomObjectAsync(this IKubernetes operations, string group, string version, string plural, bool? allowWatchBookmarks = default(bool?), string continueParameter = default(string), string fieldSelector = default(string), string labelSelector = default(string), int? limit = default(int?), string resourceVersion = default(string), string resourceVersionMatch = default(string), int? timeoutSeconds = default(int?), bool? watch = default(bool?), string pretty = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ListClusterCustomObjectWithHttpMessagesAsync(group, version, plural, allowWatchBookmarks, continueParameter, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, pretty, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the cluster scoped specified custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            public static object ReplaceClusterCustomObjectStatus(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string))
            {
                return operations.ReplaceClusterCustomObjectStatusAsync(body, group, version, plural, name, dryRun, fieldManager).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the cluster scoped specified custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> ReplaceClusterCustomObjectStatusAsync(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterCustomObjectStatusWithHttpMessagesAsync(body, group, version, plural, name, dryRun, fieldManager, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            public static object PatchClusterCustomObjectStatus(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?))
            {
                return operations.PatchClusterCustomObjectStatusAsync(body, group, version, plural, name, dryRun, fieldManager, force).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> PatchClusterCustomObjectStatusAsync(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterCustomObjectStatusWithHttpMessagesAsync(body, group, version, plural, name, dryRun, fieldManager, force, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            public static object GetClusterCustomObjectStatus(this IKubernetes operations, string group, string version, string plural, string name)
            {
                return operations.GetClusterCustomObjectStatusAsync(group, version, plural, name).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> GetClusterCustomObjectStatusAsync(this IKubernetes operations, string group, string version, string plural, string name, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetClusterCustomObjectStatusWithHttpMessagesAsync(group, version, plural, name, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to replace.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            public static object ReplaceNamespacedCustomObject(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string))
            {
                return operations.ReplaceNamespacedCustomObjectAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to replace.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> ReplaceNamespacedCustomObjectAsync(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCustomObjectWithHttpMessagesAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// patch the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to patch.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            public static object PatchNamespacedCustomObject(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?))
            {
                return operations.PatchNamespacedCustomObjectAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, force).GetAwaiter().GetResult();
            }

            /// <summary>
            /// patch the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to patch.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> PatchNamespacedCustomObjectAsync(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCustomObjectWithHttpMessagesAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, force, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Deletes the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            public static object DeleteNamespacedCustomObject(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, string name, V1DeleteOptions body = default(V1DeleteOptions), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string dryRun = default(string))
            {
                return operations.DeleteNamespacedCustomObjectAsync(group, version, namespaceParameter, plural, name, body, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Deletes the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> DeleteNamespacedCustomObjectAsync(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, string name, V1DeleteOptions body = default(V1DeleteOptions), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string dryRun = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteNamespacedCustomObjectWithHttpMessagesAsync(group, version, namespaceParameter, plural, name, body, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Returns a namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            public static object GetNamespacedCustomObject(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, string name)
            {
                return operations.GetNamespacedCustomObjectAsync(group, version, namespaceParameter, plural, name).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Returns a namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> GetNamespacedCustomObjectAsync(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, string name, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetNamespacedCustomObjectWithHttpMessagesAsync(group, version, namespaceParameter, plural, name, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace scale of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            public static object ReplaceNamespacedCustomObjectScale(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string))
            {
                return operations.ReplaceNamespacedCustomObjectScaleAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace scale of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> ReplaceNamespacedCustomObjectScaleAsync(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCustomObjectScaleWithHttpMessagesAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update scale of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            public static object PatchNamespacedCustomObjectScale(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?))
            {
                return operations.PatchNamespacedCustomObjectScaleAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, force).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update scale of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> PatchNamespacedCustomObjectScaleAsync(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCustomObjectScaleWithHttpMessagesAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, force, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read scale of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            public static object GetNamespacedCustomObjectScale(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, string name)
            {
                return operations.GetNamespacedCustomObjectScaleAsync(group, version, namespaceParameter, plural, name).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read scale of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> GetNamespacedCustomObjectScaleAsync(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, string name, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetNamespacedCustomObjectScaleWithHttpMessagesAsync(group, version, namespaceParameter, plural, name, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace scale of the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            public static object ReplaceClusterCustomObjectScale(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string))
            {
                return operations.ReplaceClusterCustomObjectScaleAsync(body, group, version, plural, name, dryRun, fieldManager).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace scale of the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> ReplaceClusterCustomObjectScaleAsync(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterCustomObjectScaleWithHttpMessagesAsync(body, group, version, plural, name, dryRun, fieldManager, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update scale of the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            public static object PatchClusterCustomObjectScale(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?))
            {
                return operations.PatchClusterCustomObjectScaleAsync(body, group, version, plural, name, dryRun, fieldManager, force).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update scale of the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> PatchClusterCustomObjectScaleAsync(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterCustomObjectScaleWithHttpMessagesAsync(body, group, version, plural, name, dryRun, fieldManager, force, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read scale of the specified custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            public static object GetClusterCustomObjectScale(this IKubernetes operations, string group, string version, string plural, string name)
            {
                return operations.GetClusterCustomObjectScaleAsync(group, version, plural, name).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read scale of the specified custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> GetClusterCustomObjectScaleAsync(this IKubernetes operations, string group, string version, string plural, string name, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetClusterCustomObjectScaleWithHttpMessagesAsync(group, version, plural, name, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to replace.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom object's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            public static object ReplaceClusterCustomObject(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string))
            {
                return operations.ReplaceClusterCustomObjectAsync(body, group, version, plural, name, dryRun, fieldManager).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to replace.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom object's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> ReplaceClusterCustomObjectAsync(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceClusterCustomObjectWithHttpMessagesAsync(body, group, version, plural, name, dryRun, fieldManager, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// patch the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to patch.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom object's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            public static object PatchClusterCustomObject(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?))
            {
                return operations.PatchClusterCustomObjectAsync(body, group, version, plural, name, dryRun, fieldManager, force).GetAwaiter().GetResult();
            }

            /// <summary>
            /// patch the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// The JSON schema of the Resource to patch.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom object's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> PatchClusterCustomObjectAsync(this IKubernetes operations, object body, string group, string version, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchClusterCustomObjectWithHttpMessagesAsync(body, group, version, plural, name, dryRun, fieldManager, force, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Deletes the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom object's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            public static object DeleteClusterCustomObject(this IKubernetes operations, string group, string version, string plural, string name, V1DeleteOptions body = default(V1DeleteOptions), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string dryRun = default(string))
            {
                return operations.DeleteClusterCustomObjectAsync(group, version, plural, name, body, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Deletes the specified cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom object's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> DeleteClusterCustomObjectAsync(this IKubernetes operations, string group, string version, string plural, string name, V1DeleteOptions body = default(V1DeleteOptions), int? gracePeriodSeconds = default(int?), bool? orphanDependents = default(bool?), string propagationPolicy = default(string), string dryRun = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.DeleteClusterCustomObjectWithHttpMessagesAsync(group, version, plural, name, body, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// Returns a cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom object's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            public static object GetClusterCustomObject(this IKubernetes operations, string group, string version, string plural, string name)
            {
                return operations.GetClusterCustomObjectAsync(group, version, plural, name).GetAwaiter().GetResult();
            }

            /// <summary>
            /// Returns a cluster scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='plural'>
            /// the custom object's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> GetClusterCustomObjectAsync(this IKubernetes operations, string group, string version, string plural, string name, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetClusterCustomObjectWithHttpMessagesAsync(group, version, plural, name, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// replace status of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            public static object ReplaceNamespacedCustomObjectStatus(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string))
            {
                return operations.ReplaceNamespacedCustomObjectStatusAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager).GetAwaiter().GetResult();
            }

            /// <summary>
            /// replace status of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> ReplaceNamespacedCustomObjectStatusAsync(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.ReplaceNamespacedCustomObjectStatusWithHttpMessagesAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// partially update status of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            public static object PatchNamespacedCustomObjectStatus(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?))
            {
                return operations.PatchNamespacedCustomObjectStatusAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, force).GetAwaiter().GetResult();
            }

            /// <summary>
            /// partially update status of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='body'>
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='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
            /// </param>
            /// <param name='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).
            /// </param>
            /// <param name='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.
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> PatchNamespacedCustomObjectStatusAsync(this IKubernetes operations, object body, string group, string version, string namespaceParameter, string plural, string name, string dryRun = default(string), string fieldManager = default(string), bool? force = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.PatchNamespacedCustomObjectStatusWithHttpMessagesAsync(body, group, version, namespaceParameter, plural, name, dryRun, fieldManager, force, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

            /// <summary>
            /// read status of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            public static object GetNamespacedCustomObjectStatus(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, string name)
            {
                return operations.GetNamespacedCustomObjectStatusAsync(group, version, namespaceParameter, plural, name).GetAwaiter().GetResult();
            }

            /// <summary>
            /// read status of the specified namespace scoped custom object
            /// </summary>
            /// <param name='operations'>
            /// The operations group for this extension method.
            /// </param>
            /// <param name='group'>
            /// the custom resource's group
            /// </param>
            /// <param name='version'>
            /// the custom resource's version
            /// </param>
            /// <param name='namespaceParameter'>
            /// The custom resource's namespace
            /// </param>
            /// <param name='plural'>
            /// the custom resource's plural name. For TPRs this would be lowercase plural
            /// kind.
            /// </param>
            /// <param name='name'>
            /// the custom object's name
            /// </param>
            /// <param name='cancellationToken'>
            /// The cancellation token.
            /// </param>
            public static async Task<object> GetNamespacedCustomObjectStatusAsync(this IKubernetes operations, string group, string version, string namespaceParameter, string plural, string name, CancellationToken cancellationToken = default(CancellationToken))
            {
                using (var _result = await operations.GetNamespacedCustomObjectStatusWithHttpMessagesAsync(group, version, namespaceParameter, plural, name, null, cancellationToken).ConfigureAwait(false))
                {
                    return _result.Body;
                }
            }

    }
}
