import * as $protobuf from "protobufjs";
/** Namespace k8s. */
export namespace k8s {

    /** Namespace io. */
    namespace io {

        /** Namespace metrics. */
        namespace metrics {

            /** Namespace pkg. */
            namespace pkg {

                /** Namespace apis. */
                namespace apis {

                    /** Namespace metrics. */
                    namespace metrics {

                        /** Namespace v1beta1. */
                        namespace v1beta1 {

                            /** Properties of a ContainerMetrics. */
                            interface IContainerMetrics {

                                /** ContainerMetrics name */
                                name?: (string|null);

                                /** ContainerMetrics usage */
                                usage?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);
                            }

                            /** Represents a ContainerMetrics. */
                            class ContainerMetrics implements IContainerMetrics {

                                /**
                                 * Constructs a new ContainerMetrics.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.IContainerMetrics);

                                /** ContainerMetrics name. */
                                public name: string;

                                /** ContainerMetrics usage. */
                                public usage: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                                /**
                                 * Creates a new ContainerMetrics instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ContainerMetrics instance
                                 */
                                public static create(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.IContainerMetrics): k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics;

                                /**
                                 * Encodes the specified ContainerMetrics message. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics.verify|verify} messages.
                                 * @param message ContainerMetrics message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.IContainerMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ContainerMetrics message, length delimited. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics.verify|verify} messages.
                                 * @param message ContainerMetrics message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.IContainerMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a ContainerMetrics message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ContainerMetrics
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics;

                                /**
                                 * Decodes a ContainerMetrics message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ContainerMetrics
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics;

                                /**
                                 * Verifies a ContainerMetrics message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a ContainerMetrics message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ContainerMetrics
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics;

                                /**
                                 * Creates a plain object from a ContainerMetrics message. Also converts values to other types if specified.
                                 * @param message ContainerMetrics
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ContainerMetrics to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a NodeMetrics. */
                            interface INodeMetrics {

                                /** NodeMetrics metadata */
                                metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                                /** NodeMetrics timestamp */
                                timestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** NodeMetrics window */
                                window?: (k8s.io.apimachinery.pkg.apis.meta.v1.IDuration|null);

                                /** NodeMetrics usage */
                                usage?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);
                            }

                            /** Represents a NodeMetrics. */
                            class NodeMetrics implements INodeMetrics {

                                /**
                                 * Constructs a new NodeMetrics.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetrics);

                                /** NodeMetrics metadata. */
                                public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                                /** NodeMetrics timestamp. */
                                public timestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** NodeMetrics window. */
                                public window?: (k8s.io.apimachinery.pkg.apis.meta.v1.IDuration|null);

                                /** NodeMetrics usage. */
                                public usage: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                                /**
                                 * Creates a new NodeMetrics instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns NodeMetrics instance
                                 */
                                public static create(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetrics): k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics;

                                /**
                                 * Encodes the specified NodeMetrics message. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics.verify|verify} messages.
                                 * @param message NodeMetrics message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified NodeMetrics message, length delimited. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics.verify|verify} messages.
                                 * @param message NodeMetrics message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a NodeMetrics message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns NodeMetrics
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics;

                                /**
                                 * Decodes a NodeMetrics message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns NodeMetrics
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics;

                                /**
                                 * Verifies a NodeMetrics message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a NodeMetrics message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns NodeMetrics
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics;

                                /**
                                 * Creates a plain object from a NodeMetrics message. Also converts values to other types if specified.
                                 * @param message NodeMetrics
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetrics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this NodeMetrics to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a NodeMetricsList. */
                            interface INodeMetricsList {

                                /** NodeMetricsList metadata */
                                metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** NodeMetricsList items */
                                items?: (k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetrics[]|null);
                            }

                            /** Represents a NodeMetricsList. */
                            class NodeMetricsList implements INodeMetricsList {

                                /**
                                 * Constructs a new NodeMetricsList.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetricsList);

                                /** NodeMetricsList metadata. */
                                public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** NodeMetricsList items. */
                                public items: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetrics[];

                                /**
                                 * Creates a new NodeMetricsList instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns NodeMetricsList instance
                                 */
                                public static create(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetricsList): k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList;

                                /**
                                 * Encodes the specified NodeMetricsList message. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList.verify|verify} messages.
                                 * @param message NodeMetricsList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetricsList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified NodeMetricsList message, length delimited. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList.verify|verify} messages.
                                 * @param message NodeMetricsList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.INodeMetricsList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a NodeMetricsList message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns NodeMetricsList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList;

                                /**
                                 * Decodes a NodeMetricsList message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns NodeMetricsList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList;

                                /**
                                 * Verifies a NodeMetricsList message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a NodeMetricsList message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns NodeMetricsList
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList;

                                /**
                                 * Creates a plain object from a NodeMetricsList message. Also converts values to other types if specified.
                                 * @param message NodeMetricsList
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this NodeMetricsList to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a PodMetrics. */
                            interface IPodMetrics {

                                /** PodMetrics metadata */
                                metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                                /** PodMetrics timestamp */
                                timestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** PodMetrics window */
                                window?: (k8s.io.apimachinery.pkg.apis.meta.v1.IDuration|null);

                                /** PodMetrics containers */
                                containers?: (k8s.io.metrics.pkg.apis.metrics.v1beta1.IContainerMetrics[]|null);
                            }

                            /** Represents a PodMetrics. */
                            class PodMetrics implements IPodMetrics {

                                /**
                                 * Constructs a new PodMetrics.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetrics);

                                /** PodMetrics metadata. */
                                public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                                /** PodMetrics timestamp. */
                                public timestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** PodMetrics window. */
                                public window?: (k8s.io.apimachinery.pkg.apis.meta.v1.IDuration|null);

                                /** PodMetrics containers. */
                                public containers: k8s.io.metrics.pkg.apis.metrics.v1beta1.IContainerMetrics[];

                                /**
                                 * Creates a new PodMetrics instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns PodMetrics instance
                                 */
                                public static create(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetrics): k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetrics;

                                /**
                                 * Encodes the specified PodMetrics message. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetrics.verify|verify} messages.
                                 * @param message PodMetrics message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified PodMetrics message, length delimited. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetrics.verify|verify} messages.
                                 * @param message PodMetrics message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetrics, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a PodMetrics message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns PodMetrics
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetrics;

                                /**
                                 * Decodes a PodMetrics message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns PodMetrics
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetrics;

                                /**
                                 * Verifies a PodMetrics message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a PodMetrics message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns PodMetrics
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetrics;

                                /**
                                 * Creates a plain object from a PodMetrics message. Also converts values to other types if specified.
                                 * @param message PodMetrics
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetrics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this PodMetrics to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a PodMetricsList. */
                            interface IPodMetricsList {

                                /** PodMetricsList metadata */
                                metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** PodMetricsList items */
                                items?: (k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetrics[]|null);
                            }

                            /** Represents a PodMetricsList. */
                            class PodMetricsList implements IPodMetricsList {

                                /**
                                 * Constructs a new PodMetricsList.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetricsList);

                                /** PodMetricsList metadata. */
                                public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** PodMetricsList items. */
                                public items: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetrics[];

                                /**
                                 * Creates a new PodMetricsList instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns PodMetricsList instance
                                 */
                                public static create(properties?: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetricsList): k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetricsList;

                                /**
                                 * Encodes the specified PodMetricsList message. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetricsList.verify|verify} messages.
                                 * @param message PodMetricsList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetricsList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified PodMetricsList message, length delimited. Does not implicitly {@link k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetricsList.verify|verify} messages.
                                 * @param message PodMetricsList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.IPodMetricsList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a PodMetricsList message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns PodMetricsList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetricsList;

                                /**
                                 * Decodes a PodMetricsList message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns PodMetricsList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetricsList;

                                /**
                                 * Verifies a PodMetricsList message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a PodMetricsList message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns PodMetricsList
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetricsList;

                                /**
                                 * Creates a plain object from a PodMetricsList message. Also converts values to other types if specified.
                                 * @param message PodMetricsList
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.metrics.pkg.apis.metrics.v1beta1.PodMetricsList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this PodMetricsList to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }
                        }
                    }
                }
            }
        }

        /** Namespace api. */
        namespace api {

            /** Namespace core. */
            namespace core {

                /** Namespace v1. */
                namespace v1 {

                    /** Properties of a AWSElasticBlockStoreVolumeSource. */
                    interface IAWSElasticBlockStoreVolumeSource {

                        /** AWSElasticBlockStoreVolumeSource volumeID */
                        volumeID?: (string|null);

                        /** AWSElasticBlockStoreVolumeSource fsType */
                        fsType?: (string|null);

                        /** AWSElasticBlockStoreVolumeSource partition */
                        partition?: (number|null);

                        /** AWSElasticBlockStoreVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a AWSElasticBlockStoreVolumeSource. */
                    class AWSElasticBlockStoreVolumeSource implements IAWSElasticBlockStoreVolumeSource {

                        /**
                         * Constructs a new AWSElasticBlockStoreVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IAWSElasticBlockStoreVolumeSource);

                        /** AWSElasticBlockStoreVolumeSource volumeID. */
                        public volumeID: string;

                        /** AWSElasticBlockStoreVolumeSource fsType. */
                        public fsType: string;

                        /** AWSElasticBlockStoreVolumeSource partition. */
                        public partition: number;

                        /** AWSElasticBlockStoreVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new AWSElasticBlockStoreVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AWSElasticBlockStoreVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IAWSElasticBlockStoreVolumeSource): k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource;

                        /**
                         * Encodes the specified AWSElasticBlockStoreVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource.verify|verify} messages.
                         * @param message AWSElasticBlockStoreVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IAWSElasticBlockStoreVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AWSElasticBlockStoreVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource.verify|verify} messages.
                         * @param message AWSElasticBlockStoreVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IAWSElasticBlockStoreVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a AWSElasticBlockStoreVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AWSElasticBlockStoreVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource;

                        /**
                         * Decodes a AWSElasticBlockStoreVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AWSElasticBlockStoreVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource;

                        /**
                         * Verifies a AWSElasticBlockStoreVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a AWSElasticBlockStoreVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AWSElasticBlockStoreVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource;

                        /**
                         * Creates a plain object from a AWSElasticBlockStoreVolumeSource message. Also converts values to other types if specified.
                         * @param message AWSElasticBlockStoreVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AWSElasticBlockStoreVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an Affinity. */
                    interface IAffinity {

                        /** Affinity nodeAffinity */
                        nodeAffinity?: (k8s.io.api.core.v1.INodeAffinity|null);

                        /** Affinity podAffinity */
                        podAffinity?: (k8s.io.api.core.v1.IPodAffinity|null);

                        /** Affinity podAntiAffinity */
                        podAntiAffinity?: (k8s.io.api.core.v1.IPodAntiAffinity|null);
                    }

                    /** Represents an Affinity. */
                    class Affinity implements IAffinity {

                        /**
                         * Constructs a new Affinity.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IAffinity);

                        /** Affinity nodeAffinity. */
                        public nodeAffinity?: (k8s.io.api.core.v1.INodeAffinity|null);

                        /** Affinity podAffinity. */
                        public podAffinity?: (k8s.io.api.core.v1.IPodAffinity|null);

                        /** Affinity podAntiAffinity. */
                        public podAntiAffinity?: (k8s.io.api.core.v1.IPodAntiAffinity|null);

                        /**
                         * Creates a new Affinity instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Affinity instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IAffinity): k8s.io.api.core.v1.Affinity;

                        /**
                         * Encodes the specified Affinity message. Does not implicitly {@link k8s.io.api.core.v1.Affinity.verify|verify} messages.
                         * @param message Affinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Affinity message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Affinity.verify|verify} messages.
                         * @param message Affinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Affinity message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Affinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Affinity;

                        /**
                         * Decodes an Affinity message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Affinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Affinity;

                        /**
                         * Verifies an Affinity message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an Affinity message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Affinity
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Affinity;

                        /**
                         * Creates a plain object from an Affinity message. Also converts values to other types if specified.
                         * @param message Affinity
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Affinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Affinity to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an AttachedVolume. */
                    interface IAttachedVolume {

                        /** AttachedVolume name */
                        name?: (string|null);

                        /** AttachedVolume devicePath */
                        devicePath?: (string|null);
                    }

                    /** Represents an AttachedVolume. */
                    class AttachedVolume implements IAttachedVolume {

                        /**
                         * Constructs a new AttachedVolume.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IAttachedVolume);

                        /** AttachedVolume name. */
                        public name: string;

                        /** AttachedVolume devicePath. */
                        public devicePath: string;

                        /**
                         * Creates a new AttachedVolume instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AttachedVolume instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IAttachedVolume): k8s.io.api.core.v1.AttachedVolume;

                        /**
                         * Encodes the specified AttachedVolume message. Does not implicitly {@link k8s.io.api.core.v1.AttachedVolume.verify|verify} messages.
                         * @param message AttachedVolume message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IAttachedVolume, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AttachedVolume message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.AttachedVolume.verify|verify} messages.
                         * @param message AttachedVolume message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IAttachedVolume, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AttachedVolume message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AttachedVolume
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.AttachedVolume;

                        /**
                         * Decodes an AttachedVolume message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AttachedVolume
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.AttachedVolume;

                        /**
                         * Verifies an AttachedVolume message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an AttachedVolume message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AttachedVolume
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.AttachedVolume;

                        /**
                         * Creates a plain object from an AttachedVolume message. Also converts values to other types if specified.
                         * @param message AttachedVolume
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.AttachedVolume, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AttachedVolume to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an AvoidPods. */
                    interface IAvoidPods {

                        /** AvoidPods preferAvoidPods */
                        preferAvoidPods?: (k8s.io.api.core.v1.IPreferAvoidPodsEntry[]|null);
                    }

                    /** Represents an AvoidPods. */
                    class AvoidPods implements IAvoidPods {

                        /**
                         * Constructs a new AvoidPods.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IAvoidPods);

                        /** AvoidPods preferAvoidPods. */
                        public preferAvoidPods: k8s.io.api.core.v1.IPreferAvoidPodsEntry[];

                        /**
                         * Creates a new AvoidPods instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AvoidPods instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IAvoidPods): k8s.io.api.core.v1.AvoidPods;

                        /**
                         * Encodes the specified AvoidPods message. Does not implicitly {@link k8s.io.api.core.v1.AvoidPods.verify|verify} messages.
                         * @param message AvoidPods message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IAvoidPods, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AvoidPods message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.AvoidPods.verify|verify} messages.
                         * @param message AvoidPods message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IAvoidPods, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AvoidPods message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AvoidPods
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.AvoidPods;

                        /**
                         * Decodes an AvoidPods message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AvoidPods
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.AvoidPods;

                        /**
                         * Verifies an AvoidPods message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an AvoidPods message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AvoidPods
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.AvoidPods;

                        /**
                         * Creates a plain object from an AvoidPods message. Also converts values to other types if specified.
                         * @param message AvoidPods
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.AvoidPods, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AvoidPods to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an AzureDiskVolumeSource. */
                    interface IAzureDiskVolumeSource {

                        /** AzureDiskVolumeSource diskName */
                        diskName?: (string|null);

                        /** AzureDiskVolumeSource diskURI */
                        diskURI?: (string|null);

                        /** AzureDiskVolumeSource cachingMode */
                        cachingMode?: (string|null);

                        /** AzureDiskVolumeSource fsType */
                        fsType?: (string|null);

                        /** AzureDiskVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** AzureDiskVolumeSource kind */
                        kind?: (string|null);
                    }

                    /** Represents an AzureDiskVolumeSource. */
                    class AzureDiskVolumeSource implements IAzureDiskVolumeSource {

                        /**
                         * Constructs a new AzureDiskVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IAzureDiskVolumeSource);

                        /** AzureDiskVolumeSource diskName. */
                        public diskName: string;

                        /** AzureDiskVolumeSource diskURI. */
                        public diskURI: string;

                        /** AzureDiskVolumeSource cachingMode. */
                        public cachingMode: string;

                        /** AzureDiskVolumeSource fsType. */
                        public fsType: string;

                        /** AzureDiskVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** AzureDiskVolumeSource kind. */
                        public kind: string;

                        /**
                         * Creates a new AzureDiskVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AzureDiskVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IAzureDiskVolumeSource): k8s.io.api.core.v1.AzureDiskVolumeSource;

                        /**
                         * Encodes the specified AzureDiskVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.AzureDiskVolumeSource.verify|verify} messages.
                         * @param message AzureDiskVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IAzureDiskVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AzureDiskVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.AzureDiskVolumeSource.verify|verify} messages.
                         * @param message AzureDiskVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IAzureDiskVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AzureDiskVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AzureDiskVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.AzureDiskVolumeSource;

                        /**
                         * Decodes an AzureDiskVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AzureDiskVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.AzureDiskVolumeSource;

                        /**
                         * Verifies an AzureDiskVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an AzureDiskVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AzureDiskVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.AzureDiskVolumeSource;

                        /**
                         * Creates a plain object from an AzureDiskVolumeSource message. Also converts values to other types if specified.
                         * @param message AzureDiskVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.AzureDiskVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AzureDiskVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an AzureFilePersistentVolumeSource. */
                    interface IAzureFilePersistentVolumeSource {

                        /** AzureFilePersistentVolumeSource secretName */
                        secretName?: (string|null);

                        /** AzureFilePersistentVolumeSource shareName */
                        shareName?: (string|null);

                        /** AzureFilePersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** AzureFilePersistentVolumeSource secretNamespace */
                        secretNamespace?: (string|null);
                    }

                    /** Represents an AzureFilePersistentVolumeSource. */
                    class AzureFilePersistentVolumeSource implements IAzureFilePersistentVolumeSource {

                        /**
                         * Constructs a new AzureFilePersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IAzureFilePersistentVolumeSource);

                        /** AzureFilePersistentVolumeSource secretName. */
                        public secretName: string;

                        /** AzureFilePersistentVolumeSource shareName. */
                        public shareName: string;

                        /** AzureFilePersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** AzureFilePersistentVolumeSource secretNamespace. */
                        public secretNamespace: string;

                        /**
                         * Creates a new AzureFilePersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AzureFilePersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IAzureFilePersistentVolumeSource): k8s.io.api.core.v1.AzureFilePersistentVolumeSource;

                        /**
                         * Encodes the specified AzureFilePersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.AzureFilePersistentVolumeSource.verify|verify} messages.
                         * @param message AzureFilePersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IAzureFilePersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AzureFilePersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.AzureFilePersistentVolumeSource.verify|verify} messages.
                         * @param message AzureFilePersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IAzureFilePersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AzureFilePersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AzureFilePersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.AzureFilePersistentVolumeSource;

                        /**
                         * Decodes an AzureFilePersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AzureFilePersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.AzureFilePersistentVolumeSource;

                        /**
                         * Verifies an AzureFilePersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an AzureFilePersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AzureFilePersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.AzureFilePersistentVolumeSource;

                        /**
                         * Creates a plain object from an AzureFilePersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message AzureFilePersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.AzureFilePersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AzureFilePersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an AzureFileVolumeSource. */
                    interface IAzureFileVolumeSource {

                        /** AzureFileVolumeSource secretName */
                        secretName?: (string|null);

                        /** AzureFileVolumeSource shareName */
                        shareName?: (string|null);

                        /** AzureFileVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents an AzureFileVolumeSource. */
                    class AzureFileVolumeSource implements IAzureFileVolumeSource {

                        /**
                         * Constructs a new AzureFileVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IAzureFileVolumeSource);

                        /** AzureFileVolumeSource secretName. */
                        public secretName: string;

                        /** AzureFileVolumeSource shareName. */
                        public shareName: string;

                        /** AzureFileVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new AzureFileVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AzureFileVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IAzureFileVolumeSource): k8s.io.api.core.v1.AzureFileVolumeSource;

                        /**
                         * Encodes the specified AzureFileVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.AzureFileVolumeSource.verify|verify} messages.
                         * @param message AzureFileVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IAzureFileVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AzureFileVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.AzureFileVolumeSource.verify|verify} messages.
                         * @param message AzureFileVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IAzureFileVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AzureFileVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AzureFileVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.AzureFileVolumeSource;

                        /**
                         * Decodes an AzureFileVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AzureFileVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.AzureFileVolumeSource;

                        /**
                         * Verifies an AzureFileVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an AzureFileVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AzureFileVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.AzureFileVolumeSource;

                        /**
                         * Creates a plain object from an AzureFileVolumeSource message. Also converts values to other types if specified.
                         * @param message AzureFileVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.AzureFileVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AzureFileVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Binding. */
                    interface IBinding {

                        /** Binding metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Binding target */
                        target?: (k8s.io.api.core.v1.IObjectReference|null);
                    }

                    /** Represents a Binding. */
                    class Binding implements IBinding {

                        /**
                         * Constructs a new Binding.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IBinding);

                        /** Binding metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Binding target. */
                        public target?: (k8s.io.api.core.v1.IObjectReference|null);

                        /**
                         * Creates a new Binding instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Binding instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IBinding): k8s.io.api.core.v1.Binding;

                        /**
                         * Encodes the specified Binding message. Does not implicitly {@link k8s.io.api.core.v1.Binding.verify|verify} messages.
                         * @param message Binding message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Binding message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Binding.verify|verify} messages.
                         * @param message Binding message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Binding message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Binding
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Binding;

                        /**
                         * Decodes a Binding message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Binding
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Binding;

                        /**
                         * Verifies a Binding message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Binding message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Binding
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Binding;

                        /**
                         * Creates a plain object from a Binding message. Also converts values to other types if specified.
                         * @param message Binding
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Binding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Binding to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a CSIPersistentVolumeSource. */
                    interface ICSIPersistentVolumeSource {

                        /** CSIPersistentVolumeSource driver */
                        driver?: (string|null);

                        /** CSIPersistentVolumeSource volumeHandle */
                        volumeHandle?: (string|null);

                        /** CSIPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** CSIPersistentVolumeSource fsType */
                        fsType?: (string|null);

                        /** CSIPersistentVolumeSource volumeAttributes */
                        volumeAttributes?: ({ [k: string]: string }|null);

                        /** CSIPersistentVolumeSource controllerPublishSecretRef */
                        controllerPublishSecretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** CSIPersistentVolumeSource nodeStageSecretRef */
                        nodeStageSecretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** CSIPersistentVolumeSource nodePublishSecretRef */
                        nodePublishSecretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** CSIPersistentVolumeSource controllerExpandSecretRef */
                        controllerExpandSecretRef?: (k8s.io.api.core.v1.ISecretReference|null);
                    }

                    /** Represents a CSIPersistentVolumeSource. */
                    class CSIPersistentVolumeSource implements ICSIPersistentVolumeSource {

                        /**
                         * Constructs a new CSIPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ICSIPersistentVolumeSource);

                        /** CSIPersistentVolumeSource driver. */
                        public driver: string;

                        /** CSIPersistentVolumeSource volumeHandle. */
                        public volumeHandle: string;

                        /** CSIPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** CSIPersistentVolumeSource fsType. */
                        public fsType: string;

                        /** CSIPersistentVolumeSource volumeAttributes. */
                        public volumeAttributes: { [k: string]: string };

                        /** CSIPersistentVolumeSource controllerPublishSecretRef. */
                        public controllerPublishSecretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** CSIPersistentVolumeSource nodeStageSecretRef. */
                        public nodeStageSecretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** CSIPersistentVolumeSource nodePublishSecretRef. */
                        public nodePublishSecretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** CSIPersistentVolumeSource controllerExpandSecretRef. */
                        public controllerExpandSecretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /**
                         * Creates a new CSIPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CSIPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ICSIPersistentVolumeSource): k8s.io.api.core.v1.CSIPersistentVolumeSource;

                        /**
                         * Encodes the specified CSIPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.CSIPersistentVolumeSource.verify|verify} messages.
                         * @param message CSIPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ICSIPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CSIPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.CSIPersistentVolumeSource.verify|verify} messages.
                         * @param message CSIPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ICSIPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CSIPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CSIPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.CSIPersistentVolumeSource;

                        /**
                         * Decodes a CSIPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CSIPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.CSIPersistentVolumeSource;

                        /**
                         * Verifies a CSIPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a CSIPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CSIPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.CSIPersistentVolumeSource;

                        /**
                         * Creates a plain object from a CSIPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message CSIPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.CSIPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CSIPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a CSIVolumeSource. */
                    interface ICSIVolumeSource {

                        /** CSIVolumeSource driver */
                        driver?: (string|null);

                        /** CSIVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** CSIVolumeSource fsType */
                        fsType?: (string|null);

                        /** CSIVolumeSource volumeAttributes */
                        volumeAttributes?: ({ [k: string]: string }|null);

                        /** CSIVolumeSource nodePublishSecretRef */
                        nodePublishSecretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);
                    }

                    /** Represents a CSIVolumeSource. */
                    class CSIVolumeSource implements ICSIVolumeSource {

                        /**
                         * Constructs a new CSIVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ICSIVolumeSource);

                        /** CSIVolumeSource driver. */
                        public driver: string;

                        /** CSIVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** CSIVolumeSource fsType. */
                        public fsType: string;

                        /** CSIVolumeSource volumeAttributes. */
                        public volumeAttributes: { [k: string]: string };

                        /** CSIVolumeSource nodePublishSecretRef. */
                        public nodePublishSecretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /**
                         * Creates a new CSIVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CSIVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ICSIVolumeSource): k8s.io.api.core.v1.CSIVolumeSource;

                        /**
                         * Encodes the specified CSIVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.CSIVolumeSource.verify|verify} messages.
                         * @param message CSIVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ICSIVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CSIVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.CSIVolumeSource.verify|verify} messages.
                         * @param message CSIVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ICSIVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CSIVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CSIVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.CSIVolumeSource;

                        /**
                         * Decodes a CSIVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CSIVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.CSIVolumeSource;

                        /**
                         * Verifies a CSIVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a CSIVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CSIVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.CSIVolumeSource;

                        /**
                         * Creates a plain object from a CSIVolumeSource message. Also converts values to other types if specified.
                         * @param message CSIVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.CSIVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CSIVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Capabilities. */
                    interface ICapabilities {

                        /** Capabilities add */
                        add?: (string[]|null);

                        /** Capabilities drop */
                        drop?: (string[]|null);
                    }

                    /** Represents a Capabilities. */
                    class Capabilities implements ICapabilities {

                        /**
                         * Constructs a new Capabilities.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ICapabilities);

                        /** Capabilities add. */
                        public add: string[];

                        /** Capabilities drop. */
                        public drop: string[];

                        /**
                         * Creates a new Capabilities instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Capabilities instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ICapabilities): k8s.io.api.core.v1.Capabilities;

                        /**
                         * Encodes the specified Capabilities message. Does not implicitly {@link k8s.io.api.core.v1.Capabilities.verify|verify} messages.
                         * @param message Capabilities message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ICapabilities, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Capabilities message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Capabilities.verify|verify} messages.
                         * @param message Capabilities message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ICapabilities, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Capabilities message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Capabilities
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Capabilities;

                        /**
                         * Decodes a Capabilities message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Capabilities
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Capabilities;

                        /**
                         * Verifies a Capabilities message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Capabilities message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Capabilities
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Capabilities;

                        /**
                         * Creates a plain object from a Capabilities message. Also converts values to other types if specified.
                         * @param message Capabilities
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Capabilities, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Capabilities to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a CephFSPersistentVolumeSource. */
                    interface ICephFSPersistentVolumeSource {

                        /** CephFSPersistentVolumeSource monitors */
                        monitors?: (string[]|null);

                        /** CephFSPersistentVolumeSource path */
                        path?: (string|null);

                        /** CephFSPersistentVolumeSource user */
                        user?: (string|null);

                        /** CephFSPersistentVolumeSource secretFile */
                        secretFile?: (string|null);

                        /** CephFSPersistentVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** CephFSPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a CephFSPersistentVolumeSource. */
                    class CephFSPersistentVolumeSource implements ICephFSPersistentVolumeSource {

                        /**
                         * Constructs a new CephFSPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ICephFSPersistentVolumeSource);

                        /** CephFSPersistentVolumeSource monitors. */
                        public monitors: string[];

                        /** CephFSPersistentVolumeSource path. */
                        public path: string;

                        /** CephFSPersistentVolumeSource user. */
                        public user: string;

                        /** CephFSPersistentVolumeSource secretFile. */
                        public secretFile: string;

                        /** CephFSPersistentVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** CephFSPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new CephFSPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CephFSPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ICephFSPersistentVolumeSource): k8s.io.api.core.v1.CephFSPersistentVolumeSource;

                        /**
                         * Encodes the specified CephFSPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.CephFSPersistentVolumeSource.verify|verify} messages.
                         * @param message CephFSPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ICephFSPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CephFSPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.CephFSPersistentVolumeSource.verify|verify} messages.
                         * @param message CephFSPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ICephFSPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CephFSPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CephFSPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.CephFSPersistentVolumeSource;

                        /**
                         * Decodes a CephFSPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CephFSPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.CephFSPersistentVolumeSource;

                        /**
                         * Verifies a CephFSPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a CephFSPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CephFSPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.CephFSPersistentVolumeSource;

                        /**
                         * Creates a plain object from a CephFSPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message CephFSPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.CephFSPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CephFSPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a CephFSVolumeSource. */
                    interface ICephFSVolumeSource {

                        /** CephFSVolumeSource monitors */
                        monitors?: (string[]|null);

                        /** CephFSVolumeSource path */
                        path?: (string|null);

                        /** CephFSVolumeSource user */
                        user?: (string|null);

                        /** CephFSVolumeSource secretFile */
                        secretFile?: (string|null);

                        /** CephFSVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** CephFSVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a CephFSVolumeSource. */
                    class CephFSVolumeSource implements ICephFSVolumeSource {

                        /**
                         * Constructs a new CephFSVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ICephFSVolumeSource);

                        /** CephFSVolumeSource monitors. */
                        public monitors: string[];

                        /** CephFSVolumeSource path. */
                        public path: string;

                        /** CephFSVolumeSource user. */
                        public user: string;

                        /** CephFSVolumeSource secretFile. */
                        public secretFile: string;

                        /** CephFSVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** CephFSVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new CephFSVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CephFSVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ICephFSVolumeSource): k8s.io.api.core.v1.CephFSVolumeSource;

                        /**
                         * Encodes the specified CephFSVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.CephFSVolumeSource.verify|verify} messages.
                         * @param message CephFSVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ICephFSVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CephFSVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.CephFSVolumeSource.verify|verify} messages.
                         * @param message CephFSVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ICephFSVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CephFSVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CephFSVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.CephFSVolumeSource;

                        /**
                         * Decodes a CephFSVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CephFSVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.CephFSVolumeSource;

                        /**
                         * Verifies a CephFSVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a CephFSVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CephFSVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.CephFSVolumeSource;

                        /**
                         * Creates a plain object from a CephFSVolumeSource message. Also converts values to other types if specified.
                         * @param message CephFSVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.CephFSVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CephFSVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a CinderPersistentVolumeSource. */
                    interface ICinderPersistentVolumeSource {

                        /** CinderPersistentVolumeSource volumeID */
                        volumeID?: (string|null);

                        /** CinderPersistentVolumeSource fsType */
                        fsType?: (string|null);

                        /** CinderPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** CinderPersistentVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ISecretReference|null);
                    }

                    /** Represents a CinderPersistentVolumeSource. */
                    class CinderPersistentVolumeSource implements ICinderPersistentVolumeSource {

                        /**
                         * Constructs a new CinderPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ICinderPersistentVolumeSource);

                        /** CinderPersistentVolumeSource volumeID. */
                        public volumeID: string;

                        /** CinderPersistentVolumeSource fsType. */
                        public fsType: string;

                        /** CinderPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** CinderPersistentVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /**
                         * Creates a new CinderPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CinderPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ICinderPersistentVolumeSource): k8s.io.api.core.v1.CinderPersistentVolumeSource;

                        /**
                         * Encodes the specified CinderPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.CinderPersistentVolumeSource.verify|verify} messages.
                         * @param message CinderPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ICinderPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CinderPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.CinderPersistentVolumeSource.verify|verify} messages.
                         * @param message CinderPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ICinderPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CinderPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CinderPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.CinderPersistentVolumeSource;

                        /**
                         * Decodes a CinderPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CinderPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.CinderPersistentVolumeSource;

                        /**
                         * Verifies a CinderPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a CinderPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CinderPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.CinderPersistentVolumeSource;

                        /**
                         * Creates a plain object from a CinderPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message CinderPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.CinderPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CinderPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a CinderVolumeSource. */
                    interface ICinderVolumeSource {

                        /** CinderVolumeSource volumeID */
                        volumeID?: (string|null);

                        /** CinderVolumeSource fsType */
                        fsType?: (string|null);

                        /** CinderVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** CinderVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);
                    }

                    /** Represents a CinderVolumeSource. */
                    class CinderVolumeSource implements ICinderVolumeSource {

                        /**
                         * Constructs a new CinderVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ICinderVolumeSource);

                        /** CinderVolumeSource volumeID. */
                        public volumeID: string;

                        /** CinderVolumeSource fsType. */
                        public fsType: string;

                        /** CinderVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** CinderVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /**
                         * Creates a new CinderVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CinderVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ICinderVolumeSource): k8s.io.api.core.v1.CinderVolumeSource;

                        /**
                         * Encodes the specified CinderVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.CinderVolumeSource.verify|verify} messages.
                         * @param message CinderVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ICinderVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CinderVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.CinderVolumeSource.verify|verify} messages.
                         * @param message CinderVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ICinderVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CinderVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CinderVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.CinderVolumeSource;

                        /**
                         * Decodes a CinderVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CinderVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.CinderVolumeSource;

                        /**
                         * Verifies a CinderVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a CinderVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CinderVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.CinderVolumeSource;

                        /**
                         * Creates a plain object from a CinderVolumeSource message. Also converts values to other types if specified.
                         * @param message CinderVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.CinderVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CinderVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ClientIPConfig. */
                    interface IClientIPConfig {

                        /** ClientIPConfig timeoutSeconds */
                        timeoutSeconds?: (number|null);
                    }

                    /** Represents a ClientIPConfig. */
                    class ClientIPConfig implements IClientIPConfig {

                        /**
                         * Constructs a new ClientIPConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IClientIPConfig);

                        /** ClientIPConfig timeoutSeconds. */
                        public timeoutSeconds: number;

                        /**
                         * Creates a new ClientIPConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ClientIPConfig instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IClientIPConfig): k8s.io.api.core.v1.ClientIPConfig;

                        /**
                         * Encodes the specified ClientIPConfig message. Does not implicitly {@link k8s.io.api.core.v1.ClientIPConfig.verify|verify} messages.
                         * @param message ClientIPConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IClientIPConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ClientIPConfig message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ClientIPConfig.verify|verify} messages.
                         * @param message ClientIPConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IClientIPConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ClientIPConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ClientIPConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ClientIPConfig;

                        /**
                         * Decodes a ClientIPConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ClientIPConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ClientIPConfig;

                        /**
                         * Verifies a ClientIPConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ClientIPConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ClientIPConfig
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ClientIPConfig;

                        /**
                         * Creates a plain object from a ClientIPConfig message. Also converts values to other types if specified.
                         * @param message ClientIPConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ClientIPConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ClientIPConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ComponentCondition. */
                    interface IComponentCondition {

                        /** ComponentCondition type */
                        type?: (string|null);

                        /** ComponentCondition status */
                        status?: (string|null);

                        /** ComponentCondition message */
                        message?: (string|null);

                        /** ComponentCondition error */
                        error?: (string|null);
                    }

                    /** Represents a ComponentCondition. */
                    class ComponentCondition implements IComponentCondition {

                        /**
                         * Constructs a new ComponentCondition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IComponentCondition);

                        /** ComponentCondition type. */
                        public type: string;

                        /** ComponentCondition status. */
                        public status: string;

                        /** ComponentCondition message. */
                        public message: string;

                        /** ComponentCondition error. */
                        public error: string;

                        /**
                         * Creates a new ComponentCondition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ComponentCondition instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IComponentCondition): k8s.io.api.core.v1.ComponentCondition;

                        /**
                         * Encodes the specified ComponentCondition message. Does not implicitly {@link k8s.io.api.core.v1.ComponentCondition.verify|verify} messages.
                         * @param message ComponentCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IComponentCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ComponentCondition message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ComponentCondition.verify|verify} messages.
                         * @param message ComponentCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IComponentCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ComponentCondition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ComponentCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ComponentCondition;

                        /**
                         * Decodes a ComponentCondition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ComponentCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ComponentCondition;

                        /**
                         * Verifies a ComponentCondition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ComponentCondition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ComponentCondition
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ComponentCondition;

                        /**
                         * Creates a plain object from a ComponentCondition message. Also converts values to other types if specified.
                         * @param message ComponentCondition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ComponentCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ComponentCondition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ComponentStatus. */
                    interface IComponentStatus {

                        /** ComponentStatus metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ComponentStatus conditions */
                        conditions?: (k8s.io.api.core.v1.IComponentCondition[]|null);
                    }

                    /** Represents a ComponentStatus. */
                    class ComponentStatus implements IComponentStatus {

                        /**
                         * Constructs a new ComponentStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IComponentStatus);

                        /** ComponentStatus metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ComponentStatus conditions. */
                        public conditions: k8s.io.api.core.v1.IComponentCondition[];

                        /**
                         * Creates a new ComponentStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ComponentStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IComponentStatus): k8s.io.api.core.v1.ComponentStatus;

                        /**
                         * Encodes the specified ComponentStatus message. Does not implicitly {@link k8s.io.api.core.v1.ComponentStatus.verify|verify} messages.
                         * @param message ComponentStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IComponentStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ComponentStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ComponentStatus.verify|verify} messages.
                         * @param message ComponentStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IComponentStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ComponentStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ComponentStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ComponentStatus;

                        /**
                         * Decodes a ComponentStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ComponentStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ComponentStatus;

                        /**
                         * Verifies a ComponentStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ComponentStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ComponentStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ComponentStatus;

                        /**
                         * Creates a plain object from a ComponentStatus message. Also converts values to other types if specified.
                         * @param message ComponentStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ComponentStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ComponentStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ComponentStatusList. */
                    interface IComponentStatusList {

                        /** ComponentStatusList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ComponentStatusList items */
                        items?: (k8s.io.api.core.v1.IComponentStatus[]|null);
                    }

                    /** Represents a ComponentStatusList. */
                    class ComponentStatusList implements IComponentStatusList {

                        /**
                         * Constructs a new ComponentStatusList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IComponentStatusList);

                        /** ComponentStatusList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ComponentStatusList items. */
                        public items: k8s.io.api.core.v1.IComponentStatus[];

                        /**
                         * Creates a new ComponentStatusList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ComponentStatusList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IComponentStatusList): k8s.io.api.core.v1.ComponentStatusList;

                        /**
                         * Encodes the specified ComponentStatusList message. Does not implicitly {@link k8s.io.api.core.v1.ComponentStatusList.verify|verify} messages.
                         * @param message ComponentStatusList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IComponentStatusList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ComponentStatusList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ComponentStatusList.verify|verify} messages.
                         * @param message ComponentStatusList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IComponentStatusList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ComponentStatusList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ComponentStatusList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ComponentStatusList;

                        /**
                         * Decodes a ComponentStatusList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ComponentStatusList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ComponentStatusList;

                        /**
                         * Verifies a ComponentStatusList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ComponentStatusList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ComponentStatusList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ComponentStatusList;

                        /**
                         * Creates a plain object from a ComponentStatusList message. Also converts values to other types if specified.
                         * @param message ComponentStatusList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ComponentStatusList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ComponentStatusList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ConfigMap. */
                    interface IConfigMap {

                        /** ConfigMap metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ConfigMap immutable */
                        immutable?: (boolean|null);

                        /** ConfigMap data */
                        data?: ({ [k: string]: string }|null);

                        /** ConfigMap binaryData */
                        binaryData?: ({ [k: string]: Uint8Array }|null);
                    }

                    /** Represents a ConfigMap. */
                    class ConfigMap implements IConfigMap {

                        /**
                         * Constructs a new ConfigMap.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IConfigMap);

                        /** ConfigMap metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ConfigMap immutable. */
                        public immutable: boolean;

                        /** ConfigMap data. */
                        public data: { [k: string]: string };

                        /** ConfigMap binaryData. */
                        public binaryData: { [k: string]: Uint8Array };

                        /**
                         * Creates a new ConfigMap instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConfigMap instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IConfigMap): k8s.io.api.core.v1.ConfigMap;

                        /**
                         * Encodes the specified ConfigMap message. Does not implicitly {@link k8s.io.api.core.v1.ConfigMap.verify|verify} messages.
                         * @param message ConfigMap message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IConfigMap, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConfigMap message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ConfigMap.verify|verify} messages.
                         * @param message ConfigMap message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IConfigMap, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConfigMap message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConfigMap
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ConfigMap;

                        /**
                         * Decodes a ConfigMap message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConfigMap
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ConfigMap;

                        /**
                         * Verifies a ConfigMap message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ConfigMap message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConfigMap
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ConfigMap;

                        /**
                         * Creates a plain object from a ConfigMap message. Also converts values to other types if specified.
                         * @param message ConfigMap
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ConfigMap, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConfigMap to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ConfigMapEnvSource. */
                    interface IConfigMapEnvSource {

                        /** ConfigMapEnvSource localObjectReference */
                        localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ConfigMapEnvSource optional */
                        optional?: (boolean|null);
                    }

                    /** Represents a ConfigMapEnvSource. */
                    class ConfigMapEnvSource implements IConfigMapEnvSource {

                        /**
                         * Constructs a new ConfigMapEnvSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IConfigMapEnvSource);

                        /** ConfigMapEnvSource localObjectReference. */
                        public localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ConfigMapEnvSource optional. */
                        public optional: boolean;

                        /**
                         * Creates a new ConfigMapEnvSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConfigMapEnvSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IConfigMapEnvSource): k8s.io.api.core.v1.ConfigMapEnvSource;

                        /**
                         * Encodes the specified ConfigMapEnvSource message. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapEnvSource.verify|verify} messages.
                         * @param message ConfigMapEnvSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IConfigMapEnvSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConfigMapEnvSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapEnvSource.verify|verify} messages.
                         * @param message ConfigMapEnvSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IConfigMapEnvSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConfigMapEnvSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConfigMapEnvSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ConfigMapEnvSource;

                        /**
                         * Decodes a ConfigMapEnvSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConfigMapEnvSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ConfigMapEnvSource;

                        /**
                         * Verifies a ConfigMapEnvSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ConfigMapEnvSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConfigMapEnvSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ConfigMapEnvSource;

                        /**
                         * Creates a plain object from a ConfigMapEnvSource message. Also converts values to other types if specified.
                         * @param message ConfigMapEnvSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ConfigMapEnvSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConfigMapEnvSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ConfigMapKeySelector. */
                    interface IConfigMapKeySelector {

                        /** ConfigMapKeySelector localObjectReference */
                        localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ConfigMapKeySelector key */
                        key?: (string|null);

                        /** ConfigMapKeySelector optional */
                        optional?: (boolean|null);
                    }

                    /** Represents a ConfigMapKeySelector. */
                    class ConfigMapKeySelector implements IConfigMapKeySelector {

                        /**
                         * Constructs a new ConfigMapKeySelector.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IConfigMapKeySelector);

                        /** ConfigMapKeySelector localObjectReference. */
                        public localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ConfigMapKeySelector key. */
                        public key: string;

                        /** ConfigMapKeySelector optional. */
                        public optional: boolean;

                        /**
                         * Creates a new ConfigMapKeySelector instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConfigMapKeySelector instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IConfigMapKeySelector): k8s.io.api.core.v1.ConfigMapKeySelector;

                        /**
                         * Encodes the specified ConfigMapKeySelector message. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapKeySelector.verify|verify} messages.
                         * @param message ConfigMapKeySelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IConfigMapKeySelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConfigMapKeySelector message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapKeySelector.verify|verify} messages.
                         * @param message ConfigMapKeySelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IConfigMapKeySelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConfigMapKeySelector message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConfigMapKeySelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ConfigMapKeySelector;

                        /**
                         * Decodes a ConfigMapKeySelector message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConfigMapKeySelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ConfigMapKeySelector;

                        /**
                         * Verifies a ConfigMapKeySelector message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ConfigMapKeySelector message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConfigMapKeySelector
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ConfigMapKeySelector;

                        /**
                         * Creates a plain object from a ConfigMapKeySelector message. Also converts values to other types if specified.
                         * @param message ConfigMapKeySelector
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ConfigMapKeySelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConfigMapKeySelector to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ConfigMapList. */
                    interface IConfigMapList {

                        /** ConfigMapList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ConfigMapList items */
                        items?: (k8s.io.api.core.v1.IConfigMap[]|null);
                    }

                    /** Represents a ConfigMapList. */
                    class ConfigMapList implements IConfigMapList {

                        /**
                         * Constructs a new ConfigMapList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IConfigMapList);

                        /** ConfigMapList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ConfigMapList items. */
                        public items: k8s.io.api.core.v1.IConfigMap[];

                        /**
                         * Creates a new ConfigMapList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConfigMapList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IConfigMapList): k8s.io.api.core.v1.ConfigMapList;

                        /**
                         * Encodes the specified ConfigMapList message. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapList.verify|verify} messages.
                         * @param message ConfigMapList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IConfigMapList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConfigMapList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapList.verify|verify} messages.
                         * @param message ConfigMapList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IConfigMapList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConfigMapList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConfigMapList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ConfigMapList;

                        /**
                         * Decodes a ConfigMapList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConfigMapList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ConfigMapList;

                        /**
                         * Verifies a ConfigMapList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ConfigMapList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConfigMapList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ConfigMapList;

                        /**
                         * Creates a plain object from a ConfigMapList message. Also converts values to other types if specified.
                         * @param message ConfigMapList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ConfigMapList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConfigMapList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ConfigMapNodeConfigSource. */
                    interface IConfigMapNodeConfigSource {

                        /** ConfigMapNodeConfigSource namespace */
                        namespace?: (string|null);

                        /** ConfigMapNodeConfigSource name */
                        name?: (string|null);

                        /** ConfigMapNodeConfigSource uid */
                        uid?: (string|null);

                        /** ConfigMapNodeConfigSource resourceVersion */
                        resourceVersion?: (string|null);

                        /** ConfigMapNodeConfigSource kubeletConfigKey */
                        kubeletConfigKey?: (string|null);
                    }

                    /** Represents a ConfigMapNodeConfigSource. */
                    class ConfigMapNodeConfigSource implements IConfigMapNodeConfigSource {

                        /**
                         * Constructs a new ConfigMapNodeConfigSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IConfigMapNodeConfigSource);

                        /** ConfigMapNodeConfigSource namespace. */
                        public namespace: string;

                        /** ConfigMapNodeConfigSource name. */
                        public name: string;

                        /** ConfigMapNodeConfigSource uid. */
                        public uid: string;

                        /** ConfigMapNodeConfigSource resourceVersion. */
                        public resourceVersion: string;

                        /** ConfigMapNodeConfigSource kubeletConfigKey. */
                        public kubeletConfigKey: string;

                        /**
                         * Creates a new ConfigMapNodeConfigSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConfigMapNodeConfigSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IConfigMapNodeConfigSource): k8s.io.api.core.v1.ConfigMapNodeConfigSource;

                        /**
                         * Encodes the specified ConfigMapNodeConfigSource message. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapNodeConfigSource.verify|verify} messages.
                         * @param message ConfigMapNodeConfigSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IConfigMapNodeConfigSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConfigMapNodeConfigSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapNodeConfigSource.verify|verify} messages.
                         * @param message ConfigMapNodeConfigSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IConfigMapNodeConfigSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConfigMapNodeConfigSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConfigMapNodeConfigSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ConfigMapNodeConfigSource;

                        /**
                         * Decodes a ConfigMapNodeConfigSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConfigMapNodeConfigSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ConfigMapNodeConfigSource;

                        /**
                         * Verifies a ConfigMapNodeConfigSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ConfigMapNodeConfigSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConfigMapNodeConfigSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ConfigMapNodeConfigSource;

                        /**
                         * Creates a plain object from a ConfigMapNodeConfigSource message. Also converts values to other types if specified.
                         * @param message ConfigMapNodeConfigSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ConfigMapNodeConfigSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConfigMapNodeConfigSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ConfigMapProjection. */
                    interface IConfigMapProjection {

                        /** ConfigMapProjection localObjectReference */
                        localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ConfigMapProjection items */
                        items?: (k8s.io.api.core.v1.IKeyToPath[]|null);

                        /** ConfigMapProjection optional */
                        optional?: (boolean|null);
                    }

                    /** Represents a ConfigMapProjection. */
                    class ConfigMapProjection implements IConfigMapProjection {

                        /**
                         * Constructs a new ConfigMapProjection.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IConfigMapProjection);

                        /** ConfigMapProjection localObjectReference. */
                        public localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ConfigMapProjection items. */
                        public items: k8s.io.api.core.v1.IKeyToPath[];

                        /** ConfigMapProjection optional. */
                        public optional: boolean;

                        /**
                         * Creates a new ConfigMapProjection instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConfigMapProjection instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IConfigMapProjection): k8s.io.api.core.v1.ConfigMapProjection;

                        /**
                         * Encodes the specified ConfigMapProjection message. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapProjection.verify|verify} messages.
                         * @param message ConfigMapProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IConfigMapProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConfigMapProjection message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapProjection.verify|verify} messages.
                         * @param message ConfigMapProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IConfigMapProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConfigMapProjection message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConfigMapProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ConfigMapProjection;

                        /**
                         * Decodes a ConfigMapProjection message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConfigMapProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ConfigMapProjection;

                        /**
                         * Verifies a ConfigMapProjection message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ConfigMapProjection message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConfigMapProjection
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ConfigMapProjection;

                        /**
                         * Creates a plain object from a ConfigMapProjection message. Also converts values to other types if specified.
                         * @param message ConfigMapProjection
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ConfigMapProjection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConfigMapProjection to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ConfigMapVolumeSource. */
                    interface IConfigMapVolumeSource {

                        /** ConfigMapVolumeSource localObjectReference */
                        localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ConfigMapVolumeSource items */
                        items?: (k8s.io.api.core.v1.IKeyToPath[]|null);

                        /** ConfigMapVolumeSource defaultMode */
                        defaultMode?: (number|null);

                        /** ConfigMapVolumeSource optional */
                        optional?: (boolean|null);
                    }

                    /** Represents a ConfigMapVolumeSource. */
                    class ConfigMapVolumeSource implements IConfigMapVolumeSource {

                        /**
                         * Constructs a new ConfigMapVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IConfigMapVolumeSource);

                        /** ConfigMapVolumeSource localObjectReference. */
                        public localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ConfigMapVolumeSource items. */
                        public items: k8s.io.api.core.v1.IKeyToPath[];

                        /** ConfigMapVolumeSource defaultMode. */
                        public defaultMode: number;

                        /** ConfigMapVolumeSource optional. */
                        public optional: boolean;

                        /**
                         * Creates a new ConfigMapVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ConfigMapVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IConfigMapVolumeSource): k8s.io.api.core.v1.ConfigMapVolumeSource;

                        /**
                         * Encodes the specified ConfigMapVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapVolumeSource.verify|verify} messages.
                         * @param message ConfigMapVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IConfigMapVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ConfigMapVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ConfigMapVolumeSource.verify|verify} messages.
                         * @param message ConfigMapVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IConfigMapVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ConfigMapVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ConfigMapVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ConfigMapVolumeSource;

                        /**
                         * Decodes a ConfigMapVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ConfigMapVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ConfigMapVolumeSource;

                        /**
                         * Verifies a ConfigMapVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ConfigMapVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ConfigMapVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ConfigMapVolumeSource;

                        /**
                         * Creates a plain object from a ConfigMapVolumeSource message. Also converts values to other types if specified.
                         * @param message ConfigMapVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ConfigMapVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ConfigMapVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Container. */
                    interface IContainer {

                        /** Container name */
                        name?: (string|null);

                        /** Container image */
                        image?: (string|null);

                        /** Container command */
                        command?: (string[]|null);

                        /** Container args */
                        args?: (string[]|null);

                        /** Container workingDir */
                        workingDir?: (string|null);

                        /** Container ports */
                        ports?: (k8s.io.api.core.v1.IContainerPort[]|null);

                        /** Container envFrom */
                        envFrom?: (k8s.io.api.core.v1.IEnvFromSource[]|null);

                        /** Container env */
                        env?: (k8s.io.api.core.v1.IEnvVar[]|null);

                        /** Container resources */
                        resources?: (k8s.io.api.core.v1.IResourceRequirements|null);

                        /** Container volumeMounts */
                        volumeMounts?: (k8s.io.api.core.v1.IVolumeMount[]|null);

                        /** Container volumeDevices */
                        volumeDevices?: (k8s.io.api.core.v1.IVolumeDevice[]|null);

                        /** Container livenessProbe */
                        livenessProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** Container readinessProbe */
                        readinessProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** Container startupProbe */
                        startupProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** Container lifecycle */
                        lifecycle?: (k8s.io.api.core.v1.ILifecycle|null);

                        /** Container terminationMessagePath */
                        terminationMessagePath?: (string|null);

                        /** Container terminationMessagePolicy */
                        terminationMessagePolicy?: (string|null);

                        /** Container imagePullPolicy */
                        imagePullPolicy?: (string|null);

                        /** Container securityContext */
                        securityContext?: (k8s.io.api.core.v1.ISecurityContext|null);

                        /** Container stdin */
                        stdin?: (boolean|null);

                        /** Container stdinOnce */
                        stdinOnce?: (boolean|null);

                        /** Container tty */
                        tty?: (boolean|null);
                    }

                    /** Represents a Container. */
                    class Container implements IContainer {

                        /**
                         * Constructs a new Container.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IContainer);

                        /** Container name. */
                        public name: string;

                        /** Container image. */
                        public image: string;

                        /** Container command. */
                        public command: string[];

                        /** Container args. */
                        public args: string[];

                        /** Container workingDir. */
                        public workingDir: string;

                        /** Container ports. */
                        public ports: k8s.io.api.core.v1.IContainerPort[];

                        /** Container envFrom. */
                        public envFrom: k8s.io.api.core.v1.IEnvFromSource[];

                        /** Container env. */
                        public env: k8s.io.api.core.v1.IEnvVar[];

                        /** Container resources. */
                        public resources?: (k8s.io.api.core.v1.IResourceRequirements|null);

                        /** Container volumeMounts. */
                        public volumeMounts: k8s.io.api.core.v1.IVolumeMount[];

                        /** Container volumeDevices. */
                        public volumeDevices: k8s.io.api.core.v1.IVolumeDevice[];

                        /** Container livenessProbe. */
                        public livenessProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** Container readinessProbe. */
                        public readinessProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** Container startupProbe. */
                        public startupProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** Container lifecycle. */
                        public lifecycle?: (k8s.io.api.core.v1.ILifecycle|null);

                        /** Container terminationMessagePath. */
                        public terminationMessagePath: string;

                        /** Container terminationMessagePolicy. */
                        public terminationMessagePolicy: string;

                        /** Container imagePullPolicy. */
                        public imagePullPolicy: string;

                        /** Container securityContext. */
                        public securityContext?: (k8s.io.api.core.v1.ISecurityContext|null);

                        /** Container stdin. */
                        public stdin: boolean;

                        /** Container stdinOnce. */
                        public stdinOnce: boolean;

                        /** Container tty. */
                        public tty: boolean;

                        /**
                         * Creates a new Container instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Container instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IContainer): k8s.io.api.core.v1.Container;

                        /**
                         * Encodes the specified Container message. Does not implicitly {@link k8s.io.api.core.v1.Container.verify|verify} messages.
                         * @param message Container message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IContainer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Container message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Container.verify|verify} messages.
                         * @param message Container message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IContainer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Container message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Container
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Container;

                        /**
                         * Decodes a Container message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Container
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Container;

                        /**
                         * Verifies a Container message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Container message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Container
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Container;

                        /**
                         * Creates a plain object from a Container message. Also converts values to other types if specified.
                         * @param message Container
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Container, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Container to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ContainerImage. */
                    interface IContainerImage {

                        /** ContainerImage names */
                        names?: (string[]|null);

                        /** ContainerImage sizeBytes */
                        sizeBytes?: (number|Long|null);
                    }

                    /** Represents a ContainerImage. */
                    class ContainerImage implements IContainerImage {

                        /**
                         * Constructs a new ContainerImage.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IContainerImage);

                        /** ContainerImage names. */
                        public names: string[];

                        /** ContainerImage sizeBytes. */
                        public sizeBytes: (number|Long);

                        /**
                         * Creates a new ContainerImage instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContainerImage instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IContainerImage): k8s.io.api.core.v1.ContainerImage;

                        /**
                         * Encodes the specified ContainerImage message. Does not implicitly {@link k8s.io.api.core.v1.ContainerImage.verify|verify} messages.
                         * @param message ContainerImage message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IContainerImage, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContainerImage message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ContainerImage.verify|verify} messages.
                         * @param message ContainerImage message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IContainerImage, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContainerImage message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContainerImage
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ContainerImage;

                        /**
                         * Decodes a ContainerImage message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContainerImage
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ContainerImage;

                        /**
                         * Verifies a ContainerImage message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ContainerImage message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContainerImage
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ContainerImage;

                        /**
                         * Creates a plain object from a ContainerImage message. Also converts values to other types if specified.
                         * @param message ContainerImage
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ContainerImage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContainerImage to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ContainerPort. */
                    interface IContainerPort {

                        /** ContainerPort name */
                        name?: (string|null);

                        /** ContainerPort hostPort */
                        hostPort?: (number|null);

                        /** ContainerPort containerPort */
                        containerPort?: (number|null);

                        /** ContainerPort protocol */
                        protocol?: (string|null);

                        /** ContainerPort hostIP */
                        hostIP?: (string|null);
                    }

                    /** Represents a ContainerPort. */
                    class ContainerPort implements IContainerPort {

                        /**
                         * Constructs a new ContainerPort.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IContainerPort);

                        /** ContainerPort name. */
                        public name: string;

                        /** ContainerPort hostPort. */
                        public hostPort: number;

                        /** ContainerPort containerPort. */
                        public containerPort: number;

                        /** ContainerPort protocol. */
                        public protocol: string;

                        /** ContainerPort hostIP. */
                        public hostIP: string;

                        /**
                         * Creates a new ContainerPort instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContainerPort instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IContainerPort): k8s.io.api.core.v1.ContainerPort;

                        /**
                         * Encodes the specified ContainerPort message. Does not implicitly {@link k8s.io.api.core.v1.ContainerPort.verify|verify} messages.
                         * @param message ContainerPort message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IContainerPort, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContainerPort message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ContainerPort.verify|verify} messages.
                         * @param message ContainerPort message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IContainerPort, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContainerPort message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContainerPort
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ContainerPort;

                        /**
                         * Decodes a ContainerPort message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContainerPort
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ContainerPort;

                        /**
                         * Verifies a ContainerPort message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ContainerPort message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContainerPort
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ContainerPort;

                        /**
                         * Creates a plain object from a ContainerPort message. Also converts values to other types if specified.
                         * @param message ContainerPort
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ContainerPort, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContainerPort to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ContainerState. */
                    interface IContainerState {

                        /** ContainerState waiting */
                        waiting?: (k8s.io.api.core.v1.IContainerStateWaiting|null);

                        /** ContainerState running */
                        running?: (k8s.io.api.core.v1.IContainerStateRunning|null);

                        /** ContainerState terminated */
                        terminated?: (k8s.io.api.core.v1.IContainerStateTerminated|null);
                    }

                    /** Represents a ContainerState. */
                    class ContainerState implements IContainerState {

                        /**
                         * Constructs a new ContainerState.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IContainerState);

                        /** ContainerState waiting. */
                        public waiting?: (k8s.io.api.core.v1.IContainerStateWaiting|null);

                        /** ContainerState running. */
                        public running?: (k8s.io.api.core.v1.IContainerStateRunning|null);

                        /** ContainerState terminated. */
                        public terminated?: (k8s.io.api.core.v1.IContainerStateTerminated|null);

                        /**
                         * Creates a new ContainerState instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContainerState instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IContainerState): k8s.io.api.core.v1.ContainerState;

                        /**
                         * Encodes the specified ContainerState message. Does not implicitly {@link k8s.io.api.core.v1.ContainerState.verify|verify} messages.
                         * @param message ContainerState message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IContainerState, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContainerState message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ContainerState.verify|verify} messages.
                         * @param message ContainerState message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IContainerState, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContainerState message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContainerState
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ContainerState;

                        /**
                         * Decodes a ContainerState message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContainerState
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ContainerState;

                        /**
                         * Verifies a ContainerState message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ContainerState message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContainerState
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ContainerState;

                        /**
                         * Creates a plain object from a ContainerState message. Also converts values to other types if specified.
                         * @param message ContainerState
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ContainerState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContainerState to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ContainerStateRunning. */
                    interface IContainerStateRunning {

                        /** ContainerStateRunning startedAt */
                        startedAt?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);
                    }

                    /** Represents a ContainerStateRunning. */
                    class ContainerStateRunning implements IContainerStateRunning {

                        /**
                         * Constructs a new ContainerStateRunning.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IContainerStateRunning);

                        /** ContainerStateRunning startedAt. */
                        public startedAt?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /**
                         * Creates a new ContainerStateRunning instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContainerStateRunning instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IContainerStateRunning): k8s.io.api.core.v1.ContainerStateRunning;

                        /**
                         * Encodes the specified ContainerStateRunning message. Does not implicitly {@link k8s.io.api.core.v1.ContainerStateRunning.verify|verify} messages.
                         * @param message ContainerStateRunning message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IContainerStateRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContainerStateRunning message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ContainerStateRunning.verify|verify} messages.
                         * @param message ContainerStateRunning message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IContainerStateRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContainerStateRunning message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContainerStateRunning
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ContainerStateRunning;

                        /**
                         * Decodes a ContainerStateRunning message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContainerStateRunning
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ContainerStateRunning;

                        /**
                         * Verifies a ContainerStateRunning message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ContainerStateRunning message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContainerStateRunning
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ContainerStateRunning;

                        /**
                         * Creates a plain object from a ContainerStateRunning message. Also converts values to other types if specified.
                         * @param message ContainerStateRunning
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ContainerStateRunning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContainerStateRunning to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ContainerStateTerminated. */
                    interface IContainerStateTerminated {

                        /** ContainerStateTerminated exitCode */
                        exitCode?: (number|null);

                        /** ContainerStateTerminated signal */
                        signal?: (number|null);

                        /** ContainerStateTerminated reason */
                        reason?: (string|null);

                        /** ContainerStateTerminated message */
                        message?: (string|null);

                        /** ContainerStateTerminated startedAt */
                        startedAt?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** ContainerStateTerminated finishedAt */
                        finishedAt?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** ContainerStateTerminated containerID */
                        containerID?: (string|null);
                    }

                    /** Represents a ContainerStateTerminated. */
                    class ContainerStateTerminated implements IContainerStateTerminated {

                        /**
                         * Constructs a new ContainerStateTerminated.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IContainerStateTerminated);

                        /** ContainerStateTerminated exitCode. */
                        public exitCode: number;

                        /** ContainerStateTerminated signal. */
                        public signal: number;

                        /** ContainerStateTerminated reason. */
                        public reason: string;

                        /** ContainerStateTerminated message. */
                        public message: string;

                        /** ContainerStateTerminated startedAt. */
                        public startedAt?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** ContainerStateTerminated finishedAt. */
                        public finishedAt?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** ContainerStateTerminated containerID. */
                        public containerID: string;

                        /**
                         * Creates a new ContainerStateTerminated instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContainerStateTerminated instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IContainerStateTerminated): k8s.io.api.core.v1.ContainerStateTerminated;

                        /**
                         * Encodes the specified ContainerStateTerminated message. Does not implicitly {@link k8s.io.api.core.v1.ContainerStateTerminated.verify|verify} messages.
                         * @param message ContainerStateTerminated message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IContainerStateTerminated, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContainerStateTerminated message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ContainerStateTerminated.verify|verify} messages.
                         * @param message ContainerStateTerminated message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IContainerStateTerminated, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContainerStateTerminated message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContainerStateTerminated
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ContainerStateTerminated;

                        /**
                         * Decodes a ContainerStateTerminated message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContainerStateTerminated
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ContainerStateTerminated;

                        /**
                         * Verifies a ContainerStateTerminated message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ContainerStateTerminated message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContainerStateTerminated
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ContainerStateTerminated;

                        /**
                         * Creates a plain object from a ContainerStateTerminated message. Also converts values to other types if specified.
                         * @param message ContainerStateTerminated
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ContainerStateTerminated, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContainerStateTerminated to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ContainerStateWaiting. */
                    interface IContainerStateWaiting {

                        /** ContainerStateWaiting reason */
                        reason?: (string|null);

                        /** ContainerStateWaiting message */
                        message?: (string|null);
                    }

                    /** Represents a ContainerStateWaiting. */
                    class ContainerStateWaiting implements IContainerStateWaiting {

                        /**
                         * Constructs a new ContainerStateWaiting.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IContainerStateWaiting);

                        /** ContainerStateWaiting reason. */
                        public reason: string;

                        /** ContainerStateWaiting message. */
                        public message: string;

                        /**
                         * Creates a new ContainerStateWaiting instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContainerStateWaiting instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IContainerStateWaiting): k8s.io.api.core.v1.ContainerStateWaiting;

                        /**
                         * Encodes the specified ContainerStateWaiting message. Does not implicitly {@link k8s.io.api.core.v1.ContainerStateWaiting.verify|verify} messages.
                         * @param message ContainerStateWaiting message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IContainerStateWaiting, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContainerStateWaiting message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ContainerStateWaiting.verify|verify} messages.
                         * @param message ContainerStateWaiting message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IContainerStateWaiting, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContainerStateWaiting message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContainerStateWaiting
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ContainerStateWaiting;

                        /**
                         * Decodes a ContainerStateWaiting message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContainerStateWaiting
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ContainerStateWaiting;

                        /**
                         * Verifies a ContainerStateWaiting message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ContainerStateWaiting message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContainerStateWaiting
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ContainerStateWaiting;

                        /**
                         * Creates a plain object from a ContainerStateWaiting message. Also converts values to other types if specified.
                         * @param message ContainerStateWaiting
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ContainerStateWaiting, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContainerStateWaiting to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ContainerStatus. */
                    interface IContainerStatus {

                        /** ContainerStatus name */
                        name?: (string|null);

                        /** ContainerStatus state */
                        state?: (k8s.io.api.core.v1.IContainerState|null);

                        /** ContainerStatus lastState */
                        lastState?: (k8s.io.api.core.v1.IContainerState|null);

                        /** ContainerStatus ready */
                        ready?: (boolean|null);

                        /** ContainerStatus restartCount */
                        restartCount?: (number|null);

                        /** ContainerStatus image */
                        image?: (string|null);

                        /** ContainerStatus imageID */
                        imageID?: (string|null);

                        /** ContainerStatus containerID */
                        containerID?: (string|null);

                        /** ContainerStatus started */
                        started?: (boolean|null);
                    }

                    /** Represents a ContainerStatus. */
                    class ContainerStatus implements IContainerStatus {

                        /**
                         * Constructs a new ContainerStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IContainerStatus);

                        /** ContainerStatus name. */
                        public name: string;

                        /** ContainerStatus state. */
                        public state?: (k8s.io.api.core.v1.IContainerState|null);

                        /** ContainerStatus lastState. */
                        public lastState?: (k8s.io.api.core.v1.IContainerState|null);

                        /** ContainerStatus ready. */
                        public ready: boolean;

                        /** ContainerStatus restartCount. */
                        public restartCount: number;

                        /** ContainerStatus image. */
                        public image: string;

                        /** ContainerStatus imageID. */
                        public imageID: string;

                        /** ContainerStatus containerID. */
                        public containerID: string;

                        /** ContainerStatus started. */
                        public started: boolean;

                        /**
                         * Creates a new ContainerStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ContainerStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IContainerStatus): k8s.io.api.core.v1.ContainerStatus;

                        /**
                         * Encodes the specified ContainerStatus message. Does not implicitly {@link k8s.io.api.core.v1.ContainerStatus.verify|verify} messages.
                         * @param message ContainerStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IContainerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ContainerStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ContainerStatus.verify|verify} messages.
                         * @param message ContainerStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IContainerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ContainerStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ContainerStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ContainerStatus;

                        /**
                         * Decodes a ContainerStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ContainerStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ContainerStatus;

                        /**
                         * Verifies a ContainerStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ContainerStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ContainerStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ContainerStatus;

                        /**
                         * Creates a plain object from a ContainerStatus message. Also converts values to other types if specified.
                         * @param message ContainerStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ContainerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ContainerStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a DaemonEndpoint. */
                    interface IDaemonEndpoint {

                        /** DaemonEndpoint Port */
                        Port?: (number|null);
                    }

                    /** Represents a DaemonEndpoint. */
                    class DaemonEndpoint implements IDaemonEndpoint {

                        /**
                         * Constructs a new DaemonEndpoint.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IDaemonEndpoint);

                        /** DaemonEndpoint Port. */
                        public Port: number;

                        /**
                         * Creates a new DaemonEndpoint instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DaemonEndpoint instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IDaemonEndpoint): k8s.io.api.core.v1.DaemonEndpoint;

                        /**
                         * Encodes the specified DaemonEndpoint message. Does not implicitly {@link k8s.io.api.core.v1.DaemonEndpoint.verify|verify} messages.
                         * @param message DaemonEndpoint message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IDaemonEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DaemonEndpoint message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.DaemonEndpoint.verify|verify} messages.
                         * @param message DaemonEndpoint message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IDaemonEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DaemonEndpoint message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DaemonEndpoint
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.DaemonEndpoint;

                        /**
                         * Decodes a DaemonEndpoint message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DaemonEndpoint
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.DaemonEndpoint;

                        /**
                         * Verifies a DaemonEndpoint message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DaemonEndpoint message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DaemonEndpoint
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.DaemonEndpoint;

                        /**
                         * Creates a plain object from a DaemonEndpoint message. Also converts values to other types if specified.
                         * @param message DaemonEndpoint
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.DaemonEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DaemonEndpoint to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a DownwardAPIProjection. */
                    interface IDownwardAPIProjection {

                        /** DownwardAPIProjection items */
                        items?: (k8s.io.api.core.v1.IDownwardAPIVolumeFile[]|null);
                    }

                    /** Represents a DownwardAPIProjection. */
                    class DownwardAPIProjection implements IDownwardAPIProjection {

                        /**
                         * Constructs a new DownwardAPIProjection.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IDownwardAPIProjection);

                        /** DownwardAPIProjection items. */
                        public items: k8s.io.api.core.v1.IDownwardAPIVolumeFile[];

                        /**
                         * Creates a new DownwardAPIProjection instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DownwardAPIProjection instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IDownwardAPIProjection): k8s.io.api.core.v1.DownwardAPIProjection;

                        /**
                         * Encodes the specified DownwardAPIProjection message. Does not implicitly {@link k8s.io.api.core.v1.DownwardAPIProjection.verify|verify} messages.
                         * @param message DownwardAPIProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IDownwardAPIProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DownwardAPIProjection message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.DownwardAPIProjection.verify|verify} messages.
                         * @param message DownwardAPIProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IDownwardAPIProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DownwardAPIProjection message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DownwardAPIProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.DownwardAPIProjection;

                        /**
                         * Decodes a DownwardAPIProjection message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DownwardAPIProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.DownwardAPIProjection;

                        /**
                         * Verifies a DownwardAPIProjection message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DownwardAPIProjection message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DownwardAPIProjection
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.DownwardAPIProjection;

                        /**
                         * Creates a plain object from a DownwardAPIProjection message. Also converts values to other types if specified.
                         * @param message DownwardAPIProjection
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.DownwardAPIProjection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DownwardAPIProjection to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a DownwardAPIVolumeFile. */
                    interface IDownwardAPIVolumeFile {

                        /** DownwardAPIVolumeFile path */
                        path?: (string|null);

                        /** DownwardAPIVolumeFile fieldRef */
                        fieldRef?: (k8s.io.api.core.v1.IObjectFieldSelector|null);

                        /** DownwardAPIVolumeFile resourceFieldRef */
                        resourceFieldRef?: (k8s.io.api.core.v1.IResourceFieldSelector|null);

                        /** DownwardAPIVolumeFile mode */
                        mode?: (number|null);
                    }

                    /** Represents a DownwardAPIVolumeFile. */
                    class DownwardAPIVolumeFile implements IDownwardAPIVolumeFile {

                        /**
                         * Constructs a new DownwardAPIVolumeFile.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IDownwardAPIVolumeFile);

                        /** DownwardAPIVolumeFile path. */
                        public path: string;

                        /** DownwardAPIVolumeFile fieldRef. */
                        public fieldRef?: (k8s.io.api.core.v1.IObjectFieldSelector|null);

                        /** DownwardAPIVolumeFile resourceFieldRef. */
                        public resourceFieldRef?: (k8s.io.api.core.v1.IResourceFieldSelector|null);

                        /** DownwardAPIVolumeFile mode. */
                        public mode: number;

                        /**
                         * Creates a new DownwardAPIVolumeFile instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DownwardAPIVolumeFile instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IDownwardAPIVolumeFile): k8s.io.api.core.v1.DownwardAPIVolumeFile;

                        /**
                         * Encodes the specified DownwardAPIVolumeFile message. Does not implicitly {@link k8s.io.api.core.v1.DownwardAPIVolumeFile.verify|verify} messages.
                         * @param message DownwardAPIVolumeFile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IDownwardAPIVolumeFile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DownwardAPIVolumeFile message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.DownwardAPIVolumeFile.verify|verify} messages.
                         * @param message DownwardAPIVolumeFile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IDownwardAPIVolumeFile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DownwardAPIVolumeFile message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DownwardAPIVolumeFile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.DownwardAPIVolumeFile;

                        /**
                         * Decodes a DownwardAPIVolumeFile message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DownwardAPIVolumeFile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.DownwardAPIVolumeFile;

                        /**
                         * Verifies a DownwardAPIVolumeFile message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DownwardAPIVolumeFile message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DownwardAPIVolumeFile
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.DownwardAPIVolumeFile;

                        /**
                         * Creates a plain object from a DownwardAPIVolumeFile message. Also converts values to other types if specified.
                         * @param message DownwardAPIVolumeFile
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.DownwardAPIVolumeFile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DownwardAPIVolumeFile to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a DownwardAPIVolumeSource. */
                    interface IDownwardAPIVolumeSource {

                        /** DownwardAPIVolumeSource items */
                        items?: (k8s.io.api.core.v1.IDownwardAPIVolumeFile[]|null);

                        /** DownwardAPIVolumeSource defaultMode */
                        defaultMode?: (number|null);
                    }

                    /** Represents a DownwardAPIVolumeSource. */
                    class DownwardAPIVolumeSource implements IDownwardAPIVolumeSource {

                        /**
                         * Constructs a new DownwardAPIVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IDownwardAPIVolumeSource);

                        /** DownwardAPIVolumeSource items. */
                        public items: k8s.io.api.core.v1.IDownwardAPIVolumeFile[];

                        /** DownwardAPIVolumeSource defaultMode. */
                        public defaultMode: number;

                        /**
                         * Creates a new DownwardAPIVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DownwardAPIVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IDownwardAPIVolumeSource): k8s.io.api.core.v1.DownwardAPIVolumeSource;

                        /**
                         * Encodes the specified DownwardAPIVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.DownwardAPIVolumeSource.verify|verify} messages.
                         * @param message DownwardAPIVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IDownwardAPIVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DownwardAPIVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.DownwardAPIVolumeSource.verify|verify} messages.
                         * @param message DownwardAPIVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IDownwardAPIVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DownwardAPIVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DownwardAPIVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.DownwardAPIVolumeSource;

                        /**
                         * Decodes a DownwardAPIVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DownwardAPIVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.DownwardAPIVolumeSource;

                        /**
                         * Verifies a DownwardAPIVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DownwardAPIVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DownwardAPIVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.DownwardAPIVolumeSource;

                        /**
                         * Creates a plain object from a DownwardAPIVolumeSource message. Also converts values to other types if specified.
                         * @param message DownwardAPIVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.DownwardAPIVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DownwardAPIVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EmptyDirVolumeSource. */
                    interface IEmptyDirVolumeSource {

                        /** EmptyDirVolumeSource medium */
                        medium?: (string|null);

                        /** EmptyDirVolumeSource sizeLimit */
                        sizeLimit?: (k8s.io.apimachinery.pkg.api.resource.IQuantity|null);
                    }

                    /** Represents an EmptyDirVolumeSource. */
                    class EmptyDirVolumeSource implements IEmptyDirVolumeSource {

                        /**
                         * Constructs a new EmptyDirVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEmptyDirVolumeSource);

                        /** EmptyDirVolumeSource medium. */
                        public medium: string;

                        /** EmptyDirVolumeSource sizeLimit. */
                        public sizeLimit?: (k8s.io.apimachinery.pkg.api.resource.IQuantity|null);

                        /**
                         * Creates a new EmptyDirVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EmptyDirVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEmptyDirVolumeSource): k8s.io.api.core.v1.EmptyDirVolumeSource;

                        /**
                         * Encodes the specified EmptyDirVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.EmptyDirVolumeSource.verify|verify} messages.
                         * @param message EmptyDirVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEmptyDirVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EmptyDirVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EmptyDirVolumeSource.verify|verify} messages.
                         * @param message EmptyDirVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEmptyDirVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EmptyDirVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EmptyDirVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EmptyDirVolumeSource;

                        /**
                         * Decodes an EmptyDirVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EmptyDirVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EmptyDirVolumeSource;

                        /**
                         * Verifies an EmptyDirVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EmptyDirVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EmptyDirVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EmptyDirVolumeSource;

                        /**
                         * Creates a plain object from an EmptyDirVolumeSource message. Also converts values to other types if specified.
                         * @param message EmptyDirVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EmptyDirVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EmptyDirVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EndpointAddress. */
                    interface IEndpointAddress {

                        /** EndpointAddress ip */
                        ip?: (string|null);

                        /** EndpointAddress hostname */
                        hostname?: (string|null);

                        /** EndpointAddress nodeName */
                        nodeName?: (string|null);

                        /** EndpointAddress targetRef */
                        targetRef?: (k8s.io.api.core.v1.IObjectReference|null);
                    }

                    /** Represents an EndpointAddress. */
                    class EndpointAddress implements IEndpointAddress {

                        /**
                         * Constructs a new EndpointAddress.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEndpointAddress);

                        /** EndpointAddress ip. */
                        public ip: string;

                        /** EndpointAddress hostname. */
                        public hostname: string;

                        /** EndpointAddress nodeName. */
                        public nodeName: string;

                        /** EndpointAddress targetRef. */
                        public targetRef?: (k8s.io.api.core.v1.IObjectReference|null);

                        /**
                         * Creates a new EndpointAddress instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EndpointAddress instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEndpointAddress): k8s.io.api.core.v1.EndpointAddress;

                        /**
                         * Encodes the specified EndpointAddress message. Does not implicitly {@link k8s.io.api.core.v1.EndpointAddress.verify|verify} messages.
                         * @param message EndpointAddress message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEndpointAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EndpointAddress message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EndpointAddress.verify|verify} messages.
                         * @param message EndpointAddress message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEndpointAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EndpointAddress message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EndpointAddress
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EndpointAddress;

                        /**
                         * Decodes an EndpointAddress message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EndpointAddress
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EndpointAddress;

                        /**
                         * Verifies an EndpointAddress message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EndpointAddress message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EndpointAddress
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EndpointAddress;

                        /**
                         * Creates a plain object from an EndpointAddress message. Also converts values to other types if specified.
                         * @param message EndpointAddress
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EndpointAddress, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EndpointAddress to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EndpointPort. */
                    interface IEndpointPort {

                        /** EndpointPort name */
                        name?: (string|null);

                        /** EndpointPort port */
                        port?: (number|null);

                        /** EndpointPort protocol */
                        protocol?: (string|null);

                        /** EndpointPort appProtocol */
                        appProtocol?: (string|null);
                    }

                    /** Represents an EndpointPort. */
                    class EndpointPort implements IEndpointPort {

                        /**
                         * Constructs a new EndpointPort.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEndpointPort);

                        /** EndpointPort name. */
                        public name: string;

                        /** EndpointPort port. */
                        public port: number;

                        /** EndpointPort protocol. */
                        public protocol: string;

                        /** EndpointPort appProtocol. */
                        public appProtocol: string;

                        /**
                         * Creates a new EndpointPort instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EndpointPort instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEndpointPort): k8s.io.api.core.v1.EndpointPort;

                        /**
                         * Encodes the specified EndpointPort message. Does not implicitly {@link k8s.io.api.core.v1.EndpointPort.verify|verify} messages.
                         * @param message EndpointPort message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEndpointPort, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EndpointPort message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EndpointPort.verify|verify} messages.
                         * @param message EndpointPort message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEndpointPort, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EndpointPort message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EndpointPort
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EndpointPort;

                        /**
                         * Decodes an EndpointPort message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EndpointPort
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EndpointPort;

                        /**
                         * Verifies an EndpointPort message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EndpointPort message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EndpointPort
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EndpointPort;

                        /**
                         * Creates a plain object from an EndpointPort message. Also converts values to other types if specified.
                         * @param message EndpointPort
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EndpointPort, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EndpointPort to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EndpointSubset. */
                    interface IEndpointSubset {

                        /** EndpointSubset addresses */
                        addresses?: (k8s.io.api.core.v1.IEndpointAddress[]|null);

                        /** EndpointSubset notReadyAddresses */
                        notReadyAddresses?: (k8s.io.api.core.v1.IEndpointAddress[]|null);

                        /** EndpointSubset ports */
                        ports?: (k8s.io.api.core.v1.IEndpointPort[]|null);
                    }

                    /** Represents an EndpointSubset. */
                    class EndpointSubset implements IEndpointSubset {

                        /**
                         * Constructs a new EndpointSubset.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEndpointSubset);

                        /** EndpointSubset addresses. */
                        public addresses: k8s.io.api.core.v1.IEndpointAddress[];

                        /** EndpointSubset notReadyAddresses. */
                        public notReadyAddresses: k8s.io.api.core.v1.IEndpointAddress[];

                        /** EndpointSubset ports. */
                        public ports: k8s.io.api.core.v1.IEndpointPort[];

                        /**
                         * Creates a new EndpointSubset instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EndpointSubset instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEndpointSubset): k8s.io.api.core.v1.EndpointSubset;

                        /**
                         * Encodes the specified EndpointSubset message. Does not implicitly {@link k8s.io.api.core.v1.EndpointSubset.verify|verify} messages.
                         * @param message EndpointSubset message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEndpointSubset, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EndpointSubset message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EndpointSubset.verify|verify} messages.
                         * @param message EndpointSubset message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEndpointSubset, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EndpointSubset message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EndpointSubset
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EndpointSubset;

                        /**
                         * Decodes an EndpointSubset message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EndpointSubset
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EndpointSubset;

                        /**
                         * Verifies an EndpointSubset message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EndpointSubset message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EndpointSubset
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EndpointSubset;

                        /**
                         * Creates a plain object from an EndpointSubset message. Also converts values to other types if specified.
                         * @param message EndpointSubset
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EndpointSubset, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EndpointSubset to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an Endpoints. */
                    interface IEndpoints {

                        /** Endpoints metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Endpoints subsets */
                        subsets?: (k8s.io.api.core.v1.IEndpointSubset[]|null);
                    }

                    /** Represents an Endpoints. */
                    class Endpoints implements IEndpoints {

                        /**
                         * Constructs a new Endpoints.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEndpoints);

                        /** Endpoints metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Endpoints subsets. */
                        public subsets: k8s.io.api.core.v1.IEndpointSubset[];

                        /**
                         * Creates a new Endpoints instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Endpoints instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEndpoints): k8s.io.api.core.v1.Endpoints;

                        /**
                         * Encodes the specified Endpoints message. Does not implicitly {@link k8s.io.api.core.v1.Endpoints.verify|verify} messages.
                         * @param message Endpoints message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEndpoints, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Endpoints message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Endpoints.verify|verify} messages.
                         * @param message Endpoints message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEndpoints, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Endpoints message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Endpoints
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Endpoints;

                        /**
                         * Decodes an Endpoints message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Endpoints
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Endpoints;

                        /**
                         * Verifies an Endpoints message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an Endpoints message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Endpoints
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Endpoints;

                        /**
                         * Creates a plain object from an Endpoints message. Also converts values to other types if specified.
                         * @param message Endpoints
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Endpoints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Endpoints to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EndpointsList. */
                    interface IEndpointsList {

                        /** EndpointsList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** EndpointsList items */
                        items?: (k8s.io.api.core.v1.IEndpoints[]|null);
                    }

                    /** Represents an EndpointsList. */
                    class EndpointsList implements IEndpointsList {

                        /**
                         * Constructs a new EndpointsList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEndpointsList);

                        /** EndpointsList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** EndpointsList items. */
                        public items: k8s.io.api.core.v1.IEndpoints[];

                        /**
                         * Creates a new EndpointsList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EndpointsList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEndpointsList): k8s.io.api.core.v1.EndpointsList;

                        /**
                         * Encodes the specified EndpointsList message. Does not implicitly {@link k8s.io.api.core.v1.EndpointsList.verify|verify} messages.
                         * @param message EndpointsList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEndpointsList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EndpointsList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EndpointsList.verify|verify} messages.
                         * @param message EndpointsList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEndpointsList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EndpointsList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EndpointsList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EndpointsList;

                        /**
                         * Decodes an EndpointsList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EndpointsList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EndpointsList;

                        /**
                         * Verifies an EndpointsList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EndpointsList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EndpointsList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EndpointsList;

                        /**
                         * Creates a plain object from an EndpointsList message. Also converts values to other types if specified.
                         * @param message EndpointsList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EndpointsList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EndpointsList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EnvFromSource. */
                    interface IEnvFromSource {

                        /** EnvFromSource prefix */
                        prefix?: (string|null);

                        /** EnvFromSource configMapRef */
                        configMapRef?: (k8s.io.api.core.v1.IConfigMapEnvSource|null);

                        /** EnvFromSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ISecretEnvSource|null);
                    }

                    /** Represents an EnvFromSource. */
                    class EnvFromSource implements IEnvFromSource {

                        /**
                         * Constructs a new EnvFromSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEnvFromSource);

                        /** EnvFromSource prefix. */
                        public prefix: string;

                        /** EnvFromSource configMapRef. */
                        public configMapRef?: (k8s.io.api.core.v1.IConfigMapEnvSource|null);

                        /** EnvFromSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ISecretEnvSource|null);

                        /**
                         * Creates a new EnvFromSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EnvFromSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEnvFromSource): k8s.io.api.core.v1.EnvFromSource;

                        /**
                         * Encodes the specified EnvFromSource message. Does not implicitly {@link k8s.io.api.core.v1.EnvFromSource.verify|verify} messages.
                         * @param message EnvFromSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEnvFromSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EnvFromSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EnvFromSource.verify|verify} messages.
                         * @param message EnvFromSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEnvFromSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EnvFromSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EnvFromSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EnvFromSource;

                        /**
                         * Decodes an EnvFromSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EnvFromSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EnvFromSource;

                        /**
                         * Verifies an EnvFromSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EnvFromSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EnvFromSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EnvFromSource;

                        /**
                         * Creates a plain object from an EnvFromSource message. Also converts values to other types if specified.
                         * @param message EnvFromSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EnvFromSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EnvFromSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EnvVar. */
                    interface IEnvVar {

                        /** EnvVar name */
                        name?: (string|null);

                        /** EnvVar value */
                        value?: (string|null);

                        /** EnvVar valueFrom */
                        valueFrom?: (k8s.io.api.core.v1.IEnvVarSource|null);
                    }

                    /** Represents an EnvVar. */
                    class EnvVar implements IEnvVar {

                        /**
                         * Constructs a new EnvVar.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEnvVar);

                        /** EnvVar name. */
                        public name: string;

                        /** EnvVar value. */
                        public value: string;

                        /** EnvVar valueFrom. */
                        public valueFrom?: (k8s.io.api.core.v1.IEnvVarSource|null);

                        /**
                         * Creates a new EnvVar instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EnvVar instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEnvVar): k8s.io.api.core.v1.EnvVar;

                        /**
                         * Encodes the specified EnvVar message. Does not implicitly {@link k8s.io.api.core.v1.EnvVar.verify|verify} messages.
                         * @param message EnvVar message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEnvVar, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EnvVar message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EnvVar.verify|verify} messages.
                         * @param message EnvVar message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEnvVar, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EnvVar message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EnvVar
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EnvVar;

                        /**
                         * Decodes an EnvVar message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EnvVar
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EnvVar;

                        /**
                         * Verifies an EnvVar message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EnvVar message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EnvVar
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EnvVar;

                        /**
                         * Creates a plain object from an EnvVar message. Also converts values to other types if specified.
                         * @param message EnvVar
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EnvVar, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EnvVar to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EnvVarSource. */
                    interface IEnvVarSource {

                        /** EnvVarSource fieldRef */
                        fieldRef?: (k8s.io.api.core.v1.IObjectFieldSelector|null);

                        /** EnvVarSource resourceFieldRef */
                        resourceFieldRef?: (k8s.io.api.core.v1.IResourceFieldSelector|null);

                        /** EnvVarSource configMapKeyRef */
                        configMapKeyRef?: (k8s.io.api.core.v1.IConfigMapKeySelector|null);

                        /** EnvVarSource secretKeyRef */
                        secretKeyRef?: (k8s.io.api.core.v1.ISecretKeySelector|null);
                    }

                    /** Represents an EnvVarSource. */
                    class EnvVarSource implements IEnvVarSource {

                        /**
                         * Constructs a new EnvVarSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEnvVarSource);

                        /** EnvVarSource fieldRef. */
                        public fieldRef?: (k8s.io.api.core.v1.IObjectFieldSelector|null);

                        /** EnvVarSource resourceFieldRef. */
                        public resourceFieldRef?: (k8s.io.api.core.v1.IResourceFieldSelector|null);

                        /** EnvVarSource configMapKeyRef. */
                        public configMapKeyRef?: (k8s.io.api.core.v1.IConfigMapKeySelector|null);

                        /** EnvVarSource secretKeyRef. */
                        public secretKeyRef?: (k8s.io.api.core.v1.ISecretKeySelector|null);

                        /**
                         * Creates a new EnvVarSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EnvVarSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEnvVarSource): k8s.io.api.core.v1.EnvVarSource;

                        /**
                         * Encodes the specified EnvVarSource message. Does not implicitly {@link k8s.io.api.core.v1.EnvVarSource.verify|verify} messages.
                         * @param message EnvVarSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEnvVarSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EnvVarSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EnvVarSource.verify|verify} messages.
                         * @param message EnvVarSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEnvVarSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EnvVarSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EnvVarSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EnvVarSource;

                        /**
                         * Decodes an EnvVarSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EnvVarSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EnvVarSource;

                        /**
                         * Verifies an EnvVarSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EnvVarSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EnvVarSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EnvVarSource;

                        /**
                         * Creates a plain object from an EnvVarSource message. Also converts values to other types if specified.
                         * @param message EnvVarSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EnvVarSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EnvVarSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EphemeralContainer. */
                    interface IEphemeralContainer {

                        /** EphemeralContainer ephemeralContainerCommon */
                        ephemeralContainerCommon?: (k8s.io.api.core.v1.IEphemeralContainerCommon|null);

                        /** EphemeralContainer targetContainerName */
                        targetContainerName?: (string|null);
                    }

                    /** Represents an EphemeralContainer. */
                    class EphemeralContainer implements IEphemeralContainer {

                        /**
                         * Constructs a new EphemeralContainer.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEphemeralContainer);

                        /** EphemeralContainer ephemeralContainerCommon. */
                        public ephemeralContainerCommon?: (k8s.io.api.core.v1.IEphemeralContainerCommon|null);

                        /** EphemeralContainer targetContainerName. */
                        public targetContainerName: string;

                        /**
                         * Creates a new EphemeralContainer instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EphemeralContainer instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEphemeralContainer): k8s.io.api.core.v1.EphemeralContainer;

                        /**
                         * Encodes the specified EphemeralContainer message. Does not implicitly {@link k8s.io.api.core.v1.EphemeralContainer.verify|verify} messages.
                         * @param message EphemeralContainer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEphemeralContainer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EphemeralContainer message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EphemeralContainer.verify|verify} messages.
                         * @param message EphemeralContainer message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEphemeralContainer, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EphemeralContainer message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EphemeralContainer
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EphemeralContainer;

                        /**
                         * Decodes an EphemeralContainer message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EphemeralContainer
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EphemeralContainer;

                        /**
                         * Verifies an EphemeralContainer message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EphemeralContainer message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EphemeralContainer
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EphemeralContainer;

                        /**
                         * Creates a plain object from an EphemeralContainer message. Also converts values to other types if specified.
                         * @param message EphemeralContainer
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EphemeralContainer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EphemeralContainer to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EphemeralContainerCommon. */
                    interface IEphemeralContainerCommon {

                        /** EphemeralContainerCommon name */
                        name?: (string|null);

                        /** EphemeralContainerCommon image */
                        image?: (string|null);

                        /** EphemeralContainerCommon command */
                        command?: (string[]|null);

                        /** EphemeralContainerCommon args */
                        args?: (string[]|null);

                        /** EphemeralContainerCommon workingDir */
                        workingDir?: (string|null);

                        /** EphemeralContainerCommon ports */
                        ports?: (k8s.io.api.core.v1.IContainerPort[]|null);

                        /** EphemeralContainerCommon envFrom */
                        envFrom?: (k8s.io.api.core.v1.IEnvFromSource[]|null);

                        /** EphemeralContainerCommon env */
                        env?: (k8s.io.api.core.v1.IEnvVar[]|null);

                        /** EphemeralContainerCommon resources */
                        resources?: (k8s.io.api.core.v1.IResourceRequirements|null);

                        /** EphemeralContainerCommon volumeMounts */
                        volumeMounts?: (k8s.io.api.core.v1.IVolumeMount[]|null);

                        /** EphemeralContainerCommon volumeDevices */
                        volumeDevices?: (k8s.io.api.core.v1.IVolumeDevice[]|null);

                        /** EphemeralContainerCommon livenessProbe */
                        livenessProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** EphemeralContainerCommon readinessProbe */
                        readinessProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** EphemeralContainerCommon startupProbe */
                        startupProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** EphemeralContainerCommon lifecycle */
                        lifecycle?: (k8s.io.api.core.v1.ILifecycle|null);

                        /** EphemeralContainerCommon terminationMessagePath */
                        terminationMessagePath?: (string|null);

                        /** EphemeralContainerCommon terminationMessagePolicy */
                        terminationMessagePolicy?: (string|null);

                        /** EphemeralContainerCommon imagePullPolicy */
                        imagePullPolicy?: (string|null);

                        /** EphemeralContainerCommon securityContext */
                        securityContext?: (k8s.io.api.core.v1.ISecurityContext|null);

                        /** EphemeralContainerCommon stdin */
                        stdin?: (boolean|null);

                        /** EphemeralContainerCommon stdinOnce */
                        stdinOnce?: (boolean|null);

                        /** EphemeralContainerCommon tty */
                        tty?: (boolean|null);
                    }

                    /** Represents an EphemeralContainerCommon. */
                    class EphemeralContainerCommon implements IEphemeralContainerCommon {

                        /**
                         * Constructs a new EphemeralContainerCommon.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEphemeralContainerCommon);

                        /** EphemeralContainerCommon name. */
                        public name: string;

                        /** EphemeralContainerCommon image. */
                        public image: string;

                        /** EphemeralContainerCommon command. */
                        public command: string[];

                        /** EphemeralContainerCommon args. */
                        public args: string[];

                        /** EphemeralContainerCommon workingDir. */
                        public workingDir: string;

                        /** EphemeralContainerCommon ports. */
                        public ports: k8s.io.api.core.v1.IContainerPort[];

                        /** EphemeralContainerCommon envFrom. */
                        public envFrom: k8s.io.api.core.v1.IEnvFromSource[];

                        /** EphemeralContainerCommon env. */
                        public env: k8s.io.api.core.v1.IEnvVar[];

                        /** EphemeralContainerCommon resources. */
                        public resources?: (k8s.io.api.core.v1.IResourceRequirements|null);

                        /** EphemeralContainerCommon volumeMounts. */
                        public volumeMounts: k8s.io.api.core.v1.IVolumeMount[];

                        /** EphemeralContainerCommon volumeDevices. */
                        public volumeDevices: k8s.io.api.core.v1.IVolumeDevice[];

                        /** EphemeralContainerCommon livenessProbe. */
                        public livenessProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** EphemeralContainerCommon readinessProbe. */
                        public readinessProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** EphemeralContainerCommon startupProbe. */
                        public startupProbe?: (k8s.io.api.core.v1.IProbe|null);

                        /** EphemeralContainerCommon lifecycle. */
                        public lifecycle?: (k8s.io.api.core.v1.ILifecycle|null);

                        /** EphemeralContainerCommon terminationMessagePath. */
                        public terminationMessagePath: string;

                        /** EphemeralContainerCommon terminationMessagePolicy. */
                        public terminationMessagePolicy: string;

                        /** EphemeralContainerCommon imagePullPolicy. */
                        public imagePullPolicy: string;

                        /** EphemeralContainerCommon securityContext. */
                        public securityContext?: (k8s.io.api.core.v1.ISecurityContext|null);

                        /** EphemeralContainerCommon stdin. */
                        public stdin: boolean;

                        /** EphemeralContainerCommon stdinOnce. */
                        public stdinOnce: boolean;

                        /** EphemeralContainerCommon tty. */
                        public tty: boolean;

                        /**
                         * Creates a new EphemeralContainerCommon instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EphemeralContainerCommon instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEphemeralContainerCommon): k8s.io.api.core.v1.EphemeralContainerCommon;

                        /**
                         * Encodes the specified EphemeralContainerCommon message. Does not implicitly {@link k8s.io.api.core.v1.EphemeralContainerCommon.verify|verify} messages.
                         * @param message EphemeralContainerCommon message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEphemeralContainerCommon, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EphemeralContainerCommon message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EphemeralContainerCommon.verify|verify} messages.
                         * @param message EphemeralContainerCommon message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEphemeralContainerCommon, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EphemeralContainerCommon message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EphemeralContainerCommon
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EphemeralContainerCommon;

                        /**
                         * Decodes an EphemeralContainerCommon message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EphemeralContainerCommon
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EphemeralContainerCommon;

                        /**
                         * Verifies an EphemeralContainerCommon message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EphemeralContainerCommon message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EphemeralContainerCommon
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EphemeralContainerCommon;

                        /**
                         * Creates a plain object from an EphemeralContainerCommon message. Also converts values to other types if specified.
                         * @param message EphemeralContainerCommon
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EphemeralContainerCommon, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EphemeralContainerCommon to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EphemeralContainers. */
                    interface IEphemeralContainers {

                        /** EphemeralContainers metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** EphemeralContainers ephemeralContainers */
                        ephemeralContainers?: (k8s.io.api.core.v1.IEphemeralContainer[]|null);
                    }

                    /** Represents an EphemeralContainers. */
                    class EphemeralContainers implements IEphemeralContainers {

                        /**
                         * Constructs a new EphemeralContainers.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEphemeralContainers);

                        /** EphemeralContainers metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** EphemeralContainers ephemeralContainers. */
                        public ephemeralContainers: k8s.io.api.core.v1.IEphemeralContainer[];

                        /**
                         * Creates a new EphemeralContainers instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EphemeralContainers instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEphemeralContainers): k8s.io.api.core.v1.EphemeralContainers;

                        /**
                         * Encodes the specified EphemeralContainers message. Does not implicitly {@link k8s.io.api.core.v1.EphemeralContainers.verify|verify} messages.
                         * @param message EphemeralContainers message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEphemeralContainers, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EphemeralContainers message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EphemeralContainers.verify|verify} messages.
                         * @param message EphemeralContainers message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEphemeralContainers, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EphemeralContainers message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EphemeralContainers
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EphemeralContainers;

                        /**
                         * Decodes an EphemeralContainers message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EphemeralContainers
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EphemeralContainers;

                        /**
                         * Verifies an EphemeralContainers message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EphemeralContainers message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EphemeralContainers
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EphemeralContainers;

                        /**
                         * Creates a plain object from an EphemeralContainers message. Also converts values to other types if specified.
                         * @param message EphemeralContainers
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EphemeralContainers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EphemeralContainers to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EphemeralVolumeSource. */
                    interface IEphemeralVolumeSource {

                        /** EphemeralVolumeSource volumeClaimTemplate */
                        volumeClaimTemplate?: (k8s.io.api.core.v1.IPersistentVolumeClaimTemplate|null);

                        /** EphemeralVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents an EphemeralVolumeSource. */
                    class EphemeralVolumeSource implements IEphemeralVolumeSource {

                        /**
                         * Constructs a new EphemeralVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEphemeralVolumeSource);

                        /** EphemeralVolumeSource volumeClaimTemplate. */
                        public volumeClaimTemplate?: (k8s.io.api.core.v1.IPersistentVolumeClaimTemplate|null);

                        /** EphemeralVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new EphemeralVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EphemeralVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEphemeralVolumeSource): k8s.io.api.core.v1.EphemeralVolumeSource;

                        /**
                         * Encodes the specified EphemeralVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.EphemeralVolumeSource.verify|verify} messages.
                         * @param message EphemeralVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEphemeralVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EphemeralVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EphemeralVolumeSource.verify|verify} messages.
                         * @param message EphemeralVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEphemeralVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EphemeralVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EphemeralVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EphemeralVolumeSource;

                        /**
                         * Decodes an EphemeralVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EphemeralVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EphemeralVolumeSource;

                        /**
                         * Verifies an EphemeralVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EphemeralVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EphemeralVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EphemeralVolumeSource;

                        /**
                         * Creates a plain object from an EphemeralVolumeSource message. Also converts values to other types if specified.
                         * @param message EphemeralVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EphemeralVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EphemeralVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an Event. */
                    interface IEvent {

                        /** Event metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Event involvedObject */
                        involvedObject?: (k8s.io.api.core.v1.IObjectReference|null);

                        /** Event reason */
                        reason?: (string|null);

                        /** Event message */
                        message?: (string|null);

                        /** Event source */
                        source?: (k8s.io.api.core.v1.IEventSource|null);

                        /** Event firstTimestamp */
                        firstTimestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** Event lastTimestamp */
                        lastTimestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** Event count */
                        count?: (number|null);

                        /** Event type */
                        type?: (string|null);

                        /** Event eventTime */
                        eventTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.IMicroTime|null);

                        /** Event series */
                        series?: (k8s.io.api.core.v1.IEventSeries|null);

                        /** Event action */
                        action?: (string|null);

                        /** Event related */
                        related?: (k8s.io.api.core.v1.IObjectReference|null);

                        /** Event reportingComponent */
                        reportingComponent?: (string|null);

                        /** Event reportingInstance */
                        reportingInstance?: (string|null);
                    }

                    /** Represents an Event. */
                    class Event implements IEvent {

                        /**
                         * Constructs a new Event.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEvent);

                        /** Event metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Event involvedObject. */
                        public involvedObject?: (k8s.io.api.core.v1.IObjectReference|null);

                        /** Event reason. */
                        public reason: string;

                        /** Event message. */
                        public message: string;

                        /** Event source. */
                        public source?: (k8s.io.api.core.v1.IEventSource|null);

                        /** Event firstTimestamp. */
                        public firstTimestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** Event lastTimestamp. */
                        public lastTimestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** Event count. */
                        public count: number;

                        /** Event type. */
                        public type: string;

                        /** Event eventTime. */
                        public eventTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.IMicroTime|null);

                        /** Event series. */
                        public series?: (k8s.io.api.core.v1.IEventSeries|null);

                        /** Event action. */
                        public action: string;

                        /** Event related. */
                        public related?: (k8s.io.api.core.v1.IObjectReference|null);

                        /** Event reportingComponent. */
                        public reportingComponent: string;

                        /** Event reportingInstance. */
                        public reportingInstance: string;

                        /**
                         * Creates a new Event instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Event instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEvent): k8s.io.api.core.v1.Event;

                        /**
                         * Encodes the specified Event message. Does not implicitly {@link k8s.io.api.core.v1.Event.verify|verify} messages.
                         * @param message Event message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Event message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Event.verify|verify} messages.
                         * @param message Event message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Event message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Event
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Event;

                        /**
                         * Decodes an Event message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Event
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Event;

                        /**
                         * Verifies an Event message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an Event message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Event
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Event;

                        /**
                         * Creates a plain object from an Event message. Also converts values to other types if specified.
                         * @param message Event
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Event, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Event to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EventList. */
                    interface IEventList {

                        /** EventList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** EventList items */
                        items?: (k8s.io.api.core.v1.IEvent[]|null);
                    }

                    /** Represents an EventList. */
                    class EventList implements IEventList {

                        /**
                         * Constructs a new EventList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEventList);

                        /** EventList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** EventList items. */
                        public items: k8s.io.api.core.v1.IEvent[];

                        /**
                         * Creates a new EventList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EventList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEventList): k8s.io.api.core.v1.EventList;

                        /**
                         * Encodes the specified EventList message. Does not implicitly {@link k8s.io.api.core.v1.EventList.verify|verify} messages.
                         * @param message EventList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEventList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EventList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EventList.verify|verify} messages.
                         * @param message EventList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEventList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EventList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EventList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EventList;

                        /**
                         * Decodes an EventList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EventList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EventList;

                        /**
                         * Verifies an EventList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EventList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EventList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EventList;

                        /**
                         * Creates a plain object from an EventList message. Also converts values to other types if specified.
                         * @param message EventList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EventList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EventList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EventSeries. */
                    interface IEventSeries {

                        /** EventSeries count */
                        count?: (number|null);

                        /** EventSeries lastObservedTime */
                        lastObservedTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.IMicroTime|null);
                    }

                    /** Represents an EventSeries. */
                    class EventSeries implements IEventSeries {

                        /**
                         * Constructs a new EventSeries.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEventSeries);

                        /** EventSeries count. */
                        public count: number;

                        /** EventSeries lastObservedTime. */
                        public lastObservedTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.IMicroTime|null);

                        /**
                         * Creates a new EventSeries instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EventSeries instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEventSeries): k8s.io.api.core.v1.EventSeries;

                        /**
                         * Encodes the specified EventSeries message. Does not implicitly {@link k8s.io.api.core.v1.EventSeries.verify|verify} messages.
                         * @param message EventSeries message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEventSeries, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EventSeries message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EventSeries.verify|verify} messages.
                         * @param message EventSeries message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEventSeries, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EventSeries message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EventSeries
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EventSeries;

                        /**
                         * Decodes an EventSeries message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EventSeries
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EventSeries;

                        /**
                         * Verifies an EventSeries message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EventSeries message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EventSeries
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EventSeries;

                        /**
                         * Creates a plain object from an EventSeries message. Also converts values to other types if specified.
                         * @param message EventSeries
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EventSeries, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EventSeries to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an EventSource. */
                    interface IEventSource {

                        /** EventSource component */
                        component?: (string|null);

                        /** EventSource host */
                        host?: (string|null);
                    }

                    /** Represents an EventSource. */
                    class EventSource implements IEventSource {

                        /**
                         * Constructs a new EventSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IEventSource);

                        /** EventSource component. */
                        public component: string;

                        /** EventSource host. */
                        public host: string;

                        /**
                         * Creates a new EventSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns EventSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IEventSource): k8s.io.api.core.v1.EventSource;

                        /**
                         * Encodes the specified EventSource message. Does not implicitly {@link k8s.io.api.core.v1.EventSource.verify|verify} messages.
                         * @param message EventSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IEventSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified EventSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.EventSource.verify|verify} messages.
                         * @param message EventSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IEventSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an EventSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns EventSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.EventSource;

                        /**
                         * Decodes an EventSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns EventSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.EventSource;

                        /**
                         * Verifies an EventSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an EventSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns EventSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.EventSource;

                        /**
                         * Creates a plain object from an EventSource message. Also converts values to other types if specified.
                         * @param message EventSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.EventSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this EventSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an ExecAction. */
                    interface IExecAction {

                        /** ExecAction command */
                        command?: (string[]|null);
                    }

                    /** Represents an ExecAction. */
                    class ExecAction implements IExecAction {

                        /**
                         * Constructs a new ExecAction.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IExecAction);

                        /** ExecAction command. */
                        public command: string[];

                        /**
                         * Creates a new ExecAction instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ExecAction instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IExecAction): k8s.io.api.core.v1.ExecAction;

                        /**
                         * Encodes the specified ExecAction message. Does not implicitly {@link k8s.io.api.core.v1.ExecAction.verify|verify} messages.
                         * @param message ExecAction message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IExecAction, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ExecAction message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ExecAction.verify|verify} messages.
                         * @param message ExecAction message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IExecAction, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ExecAction message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ExecAction
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ExecAction;

                        /**
                         * Decodes an ExecAction message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ExecAction
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ExecAction;

                        /**
                         * Verifies an ExecAction message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an ExecAction message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ExecAction
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ExecAction;

                        /**
                         * Creates a plain object from an ExecAction message. Also converts values to other types if specified.
                         * @param message ExecAction
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ExecAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ExecAction to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a FCVolumeSource. */
                    interface IFCVolumeSource {

                        /** FCVolumeSource targetWWNs */
                        targetWWNs?: (string[]|null);

                        /** FCVolumeSource lun */
                        lun?: (number|null);

                        /** FCVolumeSource fsType */
                        fsType?: (string|null);

                        /** FCVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** FCVolumeSource wwids */
                        wwids?: (string[]|null);
                    }

                    /** Represents a FCVolumeSource. */
                    class FCVolumeSource implements IFCVolumeSource {

                        /**
                         * Constructs a new FCVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IFCVolumeSource);

                        /** FCVolumeSource targetWWNs. */
                        public targetWWNs: string[];

                        /** FCVolumeSource lun. */
                        public lun: number;

                        /** FCVolumeSource fsType. */
                        public fsType: string;

                        /** FCVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** FCVolumeSource wwids. */
                        public wwids: string[];

                        /**
                         * Creates a new FCVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FCVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IFCVolumeSource): k8s.io.api.core.v1.FCVolumeSource;

                        /**
                         * Encodes the specified FCVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.FCVolumeSource.verify|verify} messages.
                         * @param message FCVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IFCVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FCVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.FCVolumeSource.verify|verify} messages.
                         * @param message FCVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IFCVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FCVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FCVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.FCVolumeSource;

                        /**
                         * Decodes a FCVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FCVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.FCVolumeSource;

                        /**
                         * Verifies a FCVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a FCVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FCVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.FCVolumeSource;

                        /**
                         * Creates a plain object from a FCVolumeSource message. Also converts values to other types if specified.
                         * @param message FCVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.FCVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FCVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a FlexPersistentVolumeSource. */
                    interface IFlexPersistentVolumeSource {

                        /** FlexPersistentVolumeSource driver */
                        driver?: (string|null);

                        /** FlexPersistentVolumeSource fsType */
                        fsType?: (string|null);

                        /** FlexPersistentVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** FlexPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** FlexPersistentVolumeSource options */
                        options?: ({ [k: string]: string }|null);
                    }

                    /** Represents a FlexPersistentVolumeSource. */
                    class FlexPersistentVolumeSource implements IFlexPersistentVolumeSource {

                        /**
                         * Constructs a new FlexPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IFlexPersistentVolumeSource);

                        /** FlexPersistentVolumeSource driver. */
                        public driver: string;

                        /** FlexPersistentVolumeSource fsType. */
                        public fsType: string;

                        /** FlexPersistentVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** FlexPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** FlexPersistentVolumeSource options. */
                        public options: { [k: string]: string };

                        /**
                         * Creates a new FlexPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FlexPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IFlexPersistentVolumeSource): k8s.io.api.core.v1.FlexPersistentVolumeSource;

                        /**
                         * Encodes the specified FlexPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.FlexPersistentVolumeSource.verify|verify} messages.
                         * @param message FlexPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IFlexPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FlexPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.FlexPersistentVolumeSource.verify|verify} messages.
                         * @param message FlexPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IFlexPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FlexPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FlexPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.FlexPersistentVolumeSource;

                        /**
                         * Decodes a FlexPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FlexPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.FlexPersistentVolumeSource;

                        /**
                         * Verifies a FlexPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a FlexPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FlexPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.FlexPersistentVolumeSource;

                        /**
                         * Creates a plain object from a FlexPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message FlexPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.FlexPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FlexPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a FlexVolumeSource. */
                    interface IFlexVolumeSource {

                        /** FlexVolumeSource driver */
                        driver?: (string|null);

                        /** FlexVolumeSource fsType */
                        fsType?: (string|null);

                        /** FlexVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** FlexVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** FlexVolumeSource options */
                        options?: ({ [k: string]: string }|null);
                    }

                    /** Represents a FlexVolumeSource. */
                    class FlexVolumeSource implements IFlexVolumeSource {

                        /**
                         * Constructs a new FlexVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IFlexVolumeSource);

                        /** FlexVolumeSource driver. */
                        public driver: string;

                        /** FlexVolumeSource fsType. */
                        public fsType: string;

                        /** FlexVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** FlexVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** FlexVolumeSource options. */
                        public options: { [k: string]: string };

                        /**
                         * Creates a new FlexVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FlexVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IFlexVolumeSource): k8s.io.api.core.v1.FlexVolumeSource;

                        /**
                         * Encodes the specified FlexVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.FlexVolumeSource.verify|verify} messages.
                         * @param message FlexVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IFlexVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FlexVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.FlexVolumeSource.verify|verify} messages.
                         * @param message FlexVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IFlexVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FlexVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FlexVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.FlexVolumeSource;

                        /**
                         * Decodes a FlexVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FlexVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.FlexVolumeSource;

                        /**
                         * Verifies a FlexVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a FlexVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FlexVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.FlexVolumeSource;

                        /**
                         * Creates a plain object from a FlexVolumeSource message. Also converts values to other types if specified.
                         * @param message FlexVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.FlexVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FlexVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a FlockerVolumeSource. */
                    interface IFlockerVolumeSource {

                        /** FlockerVolumeSource datasetName */
                        datasetName?: (string|null);

                        /** FlockerVolumeSource datasetUUID */
                        datasetUUID?: (string|null);
                    }

                    /** Represents a FlockerVolumeSource. */
                    class FlockerVolumeSource implements IFlockerVolumeSource {

                        /**
                         * Constructs a new FlockerVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IFlockerVolumeSource);

                        /** FlockerVolumeSource datasetName. */
                        public datasetName: string;

                        /** FlockerVolumeSource datasetUUID. */
                        public datasetUUID: string;

                        /**
                         * Creates a new FlockerVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FlockerVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IFlockerVolumeSource): k8s.io.api.core.v1.FlockerVolumeSource;

                        /**
                         * Encodes the specified FlockerVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.FlockerVolumeSource.verify|verify} messages.
                         * @param message FlockerVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IFlockerVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FlockerVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.FlockerVolumeSource.verify|verify} messages.
                         * @param message FlockerVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IFlockerVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FlockerVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FlockerVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.FlockerVolumeSource;

                        /**
                         * Decodes a FlockerVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FlockerVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.FlockerVolumeSource;

                        /**
                         * Verifies a FlockerVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a FlockerVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FlockerVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.FlockerVolumeSource;

                        /**
                         * Creates a plain object from a FlockerVolumeSource message. Also converts values to other types if specified.
                         * @param message FlockerVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.FlockerVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FlockerVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a GCEPersistentDiskVolumeSource. */
                    interface IGCEPersistentDiskVolumeSource {

                        /** GCEPersistentDiskVolumeSource pdName */
                        pdName?: (string|null);

                        /** GCEPersistentDiskVolumeSource fsType */
                        fsType?: (string|null);

                        /** GCEPersistentDiskVolumeSource partition */
                        partition?: (number|null);

                        /** GCEPersistentDiskVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a GCEPersistentDiskVolumeSource. */
                    class GCEPersistentDiskVolumeSource implements IGCEPersistentDiskVolumeSource {

                        /**
                         * Constructs a new GCEPersistentDiskVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IGCEPersistentDiskVolumeSource);

                        /** GCEPersistentDiskVolumeSource pdName. */
                        public pdName: string;

                        /** GCEPersistentDiskVolumeSource fsType. */
                        public fsType: string;

                        /** GCEPersistentDiskVolumeSource partition. */
                        public partition: number;

                        /** GCEPersistentDiskVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new GCEPersistentDiskVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GCEPersistentDiskVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IGCEPersistentDiskVolumeSource): k8s.io.api.core.v1.GCEPersistentDiskVolumeSource;

                        /**
                         * Encodes the specified GCEPersistentDiskVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.GCEPersistentDiskVolumeSource.verify|verify} messages.
                         * @param message GCEPersistentDiskVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IGCEPersistentDiskVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GCEPersistentDiskVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.GCEPersistentDiskVolumeSource.verify|verify} messages.
                         * @param message GCEPersistentDiskVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IGCEPersistentDiskVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GCEPersistentDiskVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GCEPersistentDiskVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.GCEPersistentDiskVolumeSource;

                        /**
                         * Decodes a GCEPersistentDiskVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GCEPersistentDiskVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.GCEPersistentDiskVolumeSource;

                        /**
                         * Verifies a GCEPersistentDiskVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a GCEPersistentDiskVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GCEPersistentDiskVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.GCEPersistentDiskVolumeSource;

                        /**
                         * Creates a plain object from a GCEPersistentDiskVolumeSource message. Also converts values to other types if specified.
                         * @param message GCEPersistentDiskVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.GCEPersistentDiskVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GCEPersistentDiskVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a GitRepoVolumeSource. */
                    interface IGitRepoVolumeSource {

                        /** GitRepoVolumeSource repository */
                        repository?: (string|null);

                        /** GitRepoVolumeSource revision */
                        revision?: (string|null);

                        /** GitRepoVolumeSource directory */
                        directory?: (string|null);
                    }

                    /** Represents a GitRepoVolumeSource. */
                    class GitRepoVolumeSource implements IGitRepoVolumeSource {

                        /**
                         * Constructs a new GitRepoVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IGitRepoVolumeSource);

                        /** GitRepoVolumeSource repository. */
                        public repository: string;

                        /** GitRepoVolumeSource revision. */
                        public revision: string;

                        /** GitRepoVolumeSource directory. */
                        public directory: string;

                        /**
                         * Creates a new GitRepoVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GitRepoVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IGitRepoVolumeSource): k8s.io.api.core.v1.GitRepoVolumeSource;

                        /**
                         * Encodes the specified GitRepoVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.GitRepoVolumeSource.verify|verify} messages.
                         * @param message GitRepoVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IGitRepoVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GitRepoVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.GitRepoVolumeSource.verify|verify} messages.
                         * @param message GitRepoVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IGitRepoVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GitRepoVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GitRepoVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.GitRepoVolumeSource;

                        /**
                         * Decodes a GitRepoVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GitRepoVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.GitRepoVolumeSource;

                        /**
                         * Verifies a GitRepoVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a GitRepoVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GitRepoVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.GitRepoVolumeSource;

                        /**
                         * Creates a plain object from a GitRepoVolumeSource message. Also converts values to other types if specified.
                         * @param message GitRepoVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.GitRepoVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GitRepoVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a GlusterfsPersistentVolumeSource. */
                    interface IGlusterfsPersistentVolumeSource {

                        /** GlusterfsPersistentVolumeSource endpoints */
                        endpoints?: (string|null);

                        /** GlusterfsPersistentVolumeSource path */
                        path?: (string|null);

                        /** GlusterfsPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** GlusterfsPersistentVolumeSource endpointsNamespace */
                        endpointsNamespace?: (string|null);
                    }

                    /** Represents a GlusterfsPersistentVolumeSource. */
                    class GlusterfsPersistentVolumeSource implements IGlusterfsPersistentVolumeSource {

                        /**
                         * Constructs a new GlusterfsPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IGlusterfsPersistentVolumeSource);

                        /** GlusterfsPersistentVolumeSource endpoints. */
                        public endpoints: string;

                        /** GlusterfsPersistentVolumeSource path. */
                        public path: string;

                        /** GlusterfsPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** GlusterfsPersistentVolumeSource endpointsNamespace. */
                        public endpointsNamespace: string;

                        /**
                         * Creates a new GlusterfsPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GlusterfsPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IGlusterfsPersistentVolumeSource): k8s.io.api.core.v1.GlusterfsPersistentVolumeSource;

                        /**
                         * Encodes the specified GlusterfsPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.GlusterfsPersistentVolumeSource.verify|verify} messages.
                         * @param message GlusterfsPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IGlusterfsPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GlusterfsPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.GlusterfsPersistentVolumeSource.verify|verify} messages.
                         * @param message GlusterfsPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IGlusterfsPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GlusterfsPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GlusterfsPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.GlusterfsPersistentVolumeSource;

                        /**
                         * Decodes a GlusterfsPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GlusterfsPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.GlusterfsPersistentVolumeSource;

                        /**
                         * Verifies a GlusterfsPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a GlusterfsPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GlusterfsPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.GlusterfsPersistentVolumeSource;

                        /**
                         * Creates a plain object from a GlusterfsPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message GlusterfsPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.GlusterfsPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GlusterfsPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a GlusterfsVolumeSource. */
                    interface IGlusterfsVolumeSource {

                        /** GlusterfsVolumeSource endpoints */
                        endpoints?: (string|null);

                        /** GlusterfsVolumeSource path */
                        path?: (string|null);

                        /** GlusterfsVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a GlusterfsVolumeSource. */
                    class GlusterfsVolumeSource implements IGlusterfsVolumeSource {

                        /**
                         * Constructs a new GlusterfsVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IGlusterfsVolumeSource);

                        /** GlusterfsVolumeSource endpoints. */
                        public endpoints: string;

                        /** GlusterfsVolumeSource path. */
                        public path: string;

                        /** GlusterfsVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new GlusterfsVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GlusterfsVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IGlusterfsVolumeSource): k8s.io.api.core.v1.GlusterfsVolumeSource;

                        /**
                         * Encodes the specified GlusterfsVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.GlusterfsVolumeSource.verify|verify} messages.
                         * @param message GlusterfsVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IGlusterfsVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GlusterfsVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.GlusterfsVolumeSource.verify|verify} messages.
                         * @param message GlusterfsVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IGlusterfsVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GlusterfsVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GlusterfsVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.GlusterfsVolumeSource;

                        /**
                         * Decodes a GlusterfsVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GlusterfsVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.GlusterfsVolumeSource;

                        /**
                         * Verifies a GlusterfsVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a GlusterfsVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GlusterfsVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.GlusterfsVolumeSource;

                        /**
                         * Creates a plain object from a GlusterfsVolumeSource message. Also converts values to other types if specified.
                         * @param message GlusterfsVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.GlusterfsVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GlusterfsVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a HTTPGetAction. */
                    interface IHTTPGetAction {

                        /** HTTPGetAction path */
                        path?: (string|null);

                        /** HTTPGetAction port */
                        port?: (k8s.io.apimachinery.pkg.util.intstr.IIntOrString|null);

                        /** HTTPGetAction host */
                        host?: (string|null);

                        /** HTTPGetAction scheme */
                        scheme?: (string|null);

                        /** HTTPGetAction httpHeaders */
                        httpHeaders?: (k8s.io.api.core.v1.IHTTPHeader[]|null);
                    }

                    /** Represents a HTTPGetAction. */
                    class HTTPGetAction implements IHTTPGetAction {

                        /**
                         * Constructs a new HTTPGetAction.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IHTTPGetAction);

                        /** HTTPGetAction path. */
                        public path: string;

                        /** HTTPGetAction port. */
                        public port?: (k8s.io.apimachinery.pkg.util.intstr.IIntOrString|null);

                        /** HTTPGetAction host. */
                        public host: string;

                        /** HTTPGetAction scheme. */
                        public scheme: string;

                        /** HTTPGetAction httpHeaders. */
                        public httpHeaders: k8s.io.api.core.v1.IHTTPHeader[];

                        /**
                         * Creates a new HTTPGetAction instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns HTTPGetAction instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IHTTPGetAction): k8s.io.api.core.v1.HTTPGetAction;

                        /**
                         * Encodes the specified HTTPGetAction message. Does not implicitly {@link k8s.io.api.core.v1.HTTPGetAction.verify|verify} messages.
                         * @param message HTTPGetAction message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IHTTPGetAction, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified HTTPGetAction message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.HTTPGetAction.verify|verify} messages.
                         * @param message HTTPGetAction message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IHTTPGetAction, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a HTTPGetAction message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns HTTPGetAction
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.HTTPGetAction;

                        /**
                         * Decodes a HTTPGetAction message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns HTTPGetAction
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.HTTPGetAction;

                        /**
                         * Verifies a HTTPGetAction message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a HTTPGetAction message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns HTTPGetAction
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.HTTPGetAction;

                        /**
                         * Creates a plain object from a HTTPGetAction message. Also converts values to other types if specified.
                         * @param message HTTPGetAction
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.HTTPGetAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this HTTPGetAction to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a HTTPHeader. */
                    interface IHTTPHeader {

                        /** HTTPHeader name */
                        name?: (string|null);

                        /** HTTPHeader value */
                        value?: (string|null);
                    }

                    /** Represents a HTTPHeader. */
                    class HTTPHeader implements IHTTPHeader {

                        /**
                         * Constructs a new HTTPHeader.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IHTTPHeader);

                        /** HTTPHeader name. */
                        public name: string;

                        /** HTTPHeader value. */
                        public value: string;

                        /**
                         * Creates a new HTTPHeader instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns HTTPHeader instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IHTTPHeader): k8s.io.api.core.v1.HTTPHeader;

                        /**
                         * Encodes the specified HTTPHeader message. Does not implicitly {@link k8s.io.api.core.v1.HTTPHeader.verify|verify} messages.
                         * @param message HTTPHeader message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IHTTPHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified HTTPHeader message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.HTTPHeader.verify|verify} messages.
                         * @param message HTTPHeader message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IHTTPHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a HTTPHeader message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns HTTPHeader
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.HTTPHeader;

                        /**
                         * Decodes a HTTPHeader message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns HTTPHeader
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.HTTPHeader;

                        /**
                         * Verifies a HTTPHeader message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a HTTPHeader message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns HTTPHeader
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.HTTPHeader;

                        /**
                         * Creates a plain object from a HTTPHeader message. Also converts values to other types if specified.
                         * @param message HTTPHeader
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.HTTPHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this HTTPHeader to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Handler. */
                    interface IHandler {

                        /** Handler exec */
                        exec?: (k8s.io.api.core.v1.IExecAction|null);

                        /** Handler httpGet */
                        httpGet?: (k8s.io.api.core.v1.IHTTPGetAction|null);

                        /** Handler tcpSocket */
                        tcpSocket?: (k8s.io.api.core.v1.ITCPSocketAction|null);
                    }

                    /** Represents a Handler. */
                    class Handler implements IHandler {

                        /**
                         * Constructs a new Handler.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IHandler);

                        /** Handler exec. */
                        public exec?: (k8s.io.api.core.v1.IExecAction|null);

                        /** Handler httpGet. */
                        public httpGet?: (k8s.io.api.core.v1.IHTTPGetAction|null);

                        /** Handler tcpSocket. */
                        public tcpSocket?: (k8s.io.api.core.v1.ITCPSocketAction|null);

                        /**
                         * Creates a new Handler instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Handler instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IHandler): k8s.io.api.core.v1.Handler;

                        /**
                         * Encodes the specified Handler message. Does not implicitly {@link k8s.io.api.core.v1.Handler.verify|verify} messages.
                         * @param message Handler message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IHandler, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Handler message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Handler.verify|verify} messages.
                         * @param message Handler message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IHandler, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Handler message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Handler
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Handler;

                        /**
                         * Decodes a Handler message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Handler
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Handler;

                        /**
                         * Verifies a Handler message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Handler message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Handler
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Handler;

                        /**
                         * Creates a plain object from a Handler message. Also converts values to other types if specified.
                         * @param message Handler
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Handler, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Handler to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a HostAlias. */
                    interface IHostAlias {

                        /** HostAlias ip */
                        ip?: (string|null);

                        /** HostAlias hostnames */
                        hostnames?: (string[]|null);
                    }

                    /** Represents a HostAlias. */
                    class HostAlias implements IHostAlias {

                        /**
                         * Constructs a new HostAlias.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IHostAlias);

                        /** HostAlias ip. */
                        public ip: string;

                        /** HostAlias hostnames. */
                        public hostnames: string[];

                        /**
                         * Creates a new HostAlias instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns HostAlias instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IHostAlias): k8s.io.api.core.v1.HostAlias;

                        /**
                         * Encodes the specified HostAlias message. Does not implicitly {@link k8s.io.api.core.v1.HostAlias.verify|verify} messages.
                         * @param message HostAlias message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IHostAlias, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified HostAlias message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.HostAlias.verify|verify} messages.
                         * @param message HostAlias message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IHostAlias, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a HostAlias message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns HostAlias
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.HostAlias;

                        /**
                         * Decodes a HostAlias message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns HostAlias
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.HostAlias;

                        /**
                         * Verifies a HostAlias message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a HostAlias message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns HostAlias
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.HostAlias;

                        /**
                         * Creates a plain object from a HostAlias message. Also converts values to other types if specified.
                         * @param message HostAlias
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.HostAlias, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this HostAlias to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a HostPathVolumeSource. */
                    interface IHostPathVolumeSource {

                        /** HostPathVolumeSource path */
                        path?: (string|null);

                        /** HostPathVolumeSource type */
                        type?: (string|null);
                    }

                    /** Represents a HostPathVolumeSource. */
                    class HostPathVolumeSource implements IHostPathVolumeSource {

                        /**
                         * Constructs a new HostPathVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IHostPathVolumeSource);

                        /** HostPathVolumeSource path. */
                        public path: string;

                        /** HostPathVolumeSource type. */
                        public type: string;

                        /**
                         * Creates a new HostPathVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns HostPathVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IHostPathVolumeSource): k8s.io.api.core.v1.HostPathVolumeSource;

                        /**
                         * Encodes the specified HostPathVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.HostPathVolumeSource.verify|verify} messages.
                         * @param message HostPathVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IHostPathVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified HostPathVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.HostPathVolumeSource.verify|verify} messages.
                         * @param message HostPathVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IHostPathVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a HostPathVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns HostPathVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.HostPathVolumeSource;

                        /**
                         * Decodes a HostPathVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns HostPathVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.HostPathVolumeSource;

                        /**
                         * Verifies a HostPathVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a HostPathVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns HostPathVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.HostPathVolumeSource;

                        /**
                         * Creates a plain object from a HostPathVolumeSource message. Also converts values to other types if specified.
                         * @param message HostPathVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.HostPathVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this HostPathVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ISCSIPersistentVolumeSource. */
                    interface IISCSIPersistentVolumeSource {

                        /** ISCSIPersistentVolumeSource targetPortal */
                        targetPortal?: (string|null);

                        /** ISCSIPersistentVolumeSource iqn */
                        iqn?: (string|null);

                        /** ISCSIPersistentVolumeSource lun */
                        lun?: (number|null);

                        /** ISCSIPersistentVolumeSource iscsiInterface */
                        iscsiInterface?: (string|null);

                        /** ISCSIPersistentVolumeSource fsType */
                        fsType?: (string|null);

                        /** ISCSIPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** ISCSIPersistentVolumeSource portals */
                        portals?: (string[]|null);

                        /** ISCSIPersistentVolumeSource chapAuthDiscovery */
                        chapAuthDiscovery?: (boolean|null);

                        /** ISCSIPersistentVolumeSource chapAuthSession */
                        chapAuthSession?: (boolean|null);

                        /** ISCSIPersistentVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** ISCSIPersistentVolumeSource initiatorName */
                        initiatorName?: (string|null);
                    }

                    /** Represents a ISCSIPersistentVolumeSource. */
                    class ISCSIPersistentVolumeSource implements IISCSIPersistentVolumeSource {

                        /**
                         * Constructs a new ISCSIPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IISCSIPersistentVolumeSource);

                        /** ISCSIPersistentVolumeSource targetPortal. */
                        public targetPortal: string;

                        /** ISCSIPersistentVolumeSource iqn. */
                        public iqn: string;

                        /** ISCSIPersistentVolumeSource lun. */
                        public lun: number;

                        /** ISCSIPersistentVolumeSource iscsiInterface. */
                        public iscsiInterface: string;

                        /** ISCSIPersistentVolumeSource fsType. */
                        public fsType: string;

                        /** ISCSIPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** ISCSIPersistentVolumeSource portals. */
                        public portals: string[];

                        /** ISCSIPersistentVolumeSource chapAuthDiscovery. */
                        public chapAuthDiscovery: boolean;

                        /** ISCSIPersistentVolumeSource chapAuthSession. */
                        public chapAuthSession: boolean;

                        /** ISCSIPersistentVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** ISCSIPersistentVolumeSource initiatorName. */
                        public initiatorName: string;

                        /**
                         * Creates a new ISCSIPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ISCSIPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IISCSIPersistentVolumeSource): k8s.io.api.core.v1.ISCSIPersistentVolumeSource;

                        /**
                         * Encodes the specified ISCSIPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.ISCSIPersistentVolumeSource.verify|verify} messages.
                         * @param message ISCSIPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IISCSIPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ISCSIPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ISCSIPersistentVolumeSource.verify|verify} messages.
                         * @param message ISCSIPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IISCSIPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ISCSIPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ISCSIPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ISCSIPersistentVolumeSource;

                        /**
                         * Decodes a ISCSIPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ISCSIPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ISCSIPersistentVolumeSource;

                        /**
                         * Verifies a ISCSIPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ISCSIPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ISCSIPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ISCSIPersistentVolumeSource;

                        /**
                         * Creates a plain object from a ISCSIPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message ISCSIPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ISCSIPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ISCSIPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ISCSIVolumeSource. */
                    interface IISCSIVolumeSource {

                        /** ISCSIVolumeSource targetPortal */
                        targetPortal?: (string|null);

                        /** ISCSIVolumeSource iqn */
                        iqn?: (string|null);

                        /** ISCSIVolumeSource lun */
                        lun?: (number|null);

                        /** ISCSIVolumeSource iscsiInterface */
                        iscsiInterface?: (string|null);

                        /** ISCSIVolumeSource fsType */
                        fsType?: (string|null);

                        /** ISCSIVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** ISCSIVolumeSource portals */
                        portals?: (string[]|null);

                        /** ISCSIVolumeSource chapAuthDiscovery */
                        chapAuthDiscovery?: (boolean|null);

                        /** ISCSIVolumeSource chapAuthSession */
                        chapAuthSession?: (boolean|null);

                        /** ISCSIVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ISCSIVolumeSource initiatorName */
                        initiatorName?: (string|null);
                    }

                    /** Represents a ISCSIVolumeSource. */
                    class ISCSIVolumeSource implements IISCSIVolumeSource {

                        /**
                         * Constructs a new ISCSIVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IISCSIVolumeSource);

                        /** ISCSIVolumeSource targetPortal. */
                        public targetPortal: string;

                        /** ISCSIVolumeSource iqn. */
                        public iqn: string;

                        /** ISCSIVolumeSource lun. */
                        public lun: number;

                        /** ISCSIVolumeSource iscsiInterface. */
                        public iscsiInterface: string;

                        /** ISCSIVolumeSource fsType. */
                        public fsType: string;

                        /** ISCSIVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** ISCSIVolumeSource portals. */
                        public portals: string[];

                        /** ISCSIVolumeSource chapAuthDiscovery. */
                        public chapAuthDiscovery: boolean;

                        /** ISCSIVolumeSource chapAuthSession. */
                        public chapAuthSession: boolean;

                        /** ISCSIVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ISCSIVolumeSource initiatorName. */
                        public initiatorName: string;

                        /**
                         * Creates a new ISCSIVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ISCSIVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IISCSIVolumeSource): k8s.io.api.core.v1.ISCSIVolumeSource;

                        /**
                         * Encodes the specified ISCSIVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.ISCSIVolumeSource.verify|verify} messages.
                         * @param message ISCSIVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IISCSIVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ISCSIVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ISCSIVolumeSource.verify|verify} messages.
                         * @param message ISCSIVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IISCSIVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ISCSIVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ISCSIVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ISCSIVolumeSource;

                        /**
                         * Decodes a ISCSIVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ISCSIVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ISCSIVolumeSource;

                        /**
                         * Verifies a ISCSIVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ISCSIVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ISCSIVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ISCSIVolumeSource;

                        /**
                         * Creates a plain object from a ISCSIVolumeSource message. Also converts values to other types if specified.
                         * @param message ISCSIVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ISCSIVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ISCSIVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a KeyToPath. */
                    interface IKeyToPath {

                        /** KeyToPath key */
                        key?: (string|null);

                        /** KeyToPath path */
                        path?: (string|null);

                        /** KeyToPath mode */
                        mode?: (number|null);
                    }

                    /** Represents a KeyToPath. */
                    class KeyToPath implements IKeyToPath {

                        /**
                         * Constructs a new KeyToPath.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IKeyToPath);

                        /** KeyToPath key. */
                        public key: string;

                        /** KeyToPath path. */
                        public path: string;

                        /** KeyToPath mode. */
                        public mode: number;

                        /**
                         * Creates a new KeyToPath instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KeyToPath instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IKeyToPath): k8s.io.api.core.v1.KeyToPath;

                        /**
                         * Encodes the specified KeyToPath message. Does not implicitly {@link k8s.io.api.core.v1.KeyToPath.verify|verify} messages.
                         * @param message KeyToPath message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IKeyToPath, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KeyToPath message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.KeyToPath.verify|verify} messages.
                         * @param message KeyToPath message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IKeyToPath, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KeyToPath message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KeyToPath
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.KeyToPath;

                        /**
                         * Decodes a KeyToPath message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KeyToPath
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.KeyToPath;

                        /**
                         * Verifies a KeyToPath message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a KeyToPath message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KeyToPath
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.KeyToPath;

                        /**
                         * Creates a plain object from a KeyToPath message. Also converts values to other types if specified.
                         * @param message KeyToPath
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.KeyToPath, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KeyToPath to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Lifecycle. */
                    interface ILifecycle {

                        /** Lifecycle postStart */
                        postStart?: (k8s.io.api.core.v1.IHandler|null);

                        /** Lifecycle preStop */
                        preStop?: (k8s.io.api.core.v1.IHandler|null);
                    }

                    /** Represents a Lifecycle. */
                    class Lifecycle implements ILifecycle {

                        /**
                         * Constructs a new Lifecycle.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILifecycle);

                        /** Lifecycle postStart. */
                        public postStart?: (k8s.io.api.core.v1.IHandler|null);

                        /** Lifecycle preStop. */
                        public preStop?: (k8s.io.api.core.v1.IHandler|null);

                        /**
                         * Creates a new Lifecycle instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Lifecycle instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILifecycle): k8s.io.api.core.v1.Lifecycle;

                        /**
                         * Encodes the specified Lifecycle message. Does not implicitly {@link k8s.io.api.core.v1.Lifecycle.verify|verify} messages.
                         * @param message Lifecycle message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILifecycle, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Lifecycle message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Lifecycle.verify|verify} messages.
                         * @param message Lifecycle message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILifecycle, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Lifecycle message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Lifecycle
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Lifecycle;

                        /**
                         * Decodes a Lifecycle message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Lifecycle
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Lifecycle;

                        /**
                         * Verifies a Lifecycle message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Lifecycle message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Lifecycle
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Lifecycle;

                        /**
                         * Creates a plain object from a Lifecycle message. Also converts values to other types if specified.
                         * @param message Lifecycle
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Lifecycle, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Lifecycle to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a LimitRange. */
                    interface ILimitRange {

                        /** LimitRange metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** LimitRange spec */
                        spec?: (k8s.io.api.core.v1.ILimitRangeSpec|null);
                    }

                    /** Represents a LimitRange. */
                    class LimitRange implements ILimitRange {

                        /**
                         * Constructs a new LimitRange.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILimitRange);

                        /** LimitRange metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** LimitRange spec. */
                        public spec?: (k8s.io.api.core.v1.ILimitRangeSpec|null);

                        /**
                         * Creates a new LimitRange instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LimitRange instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILimitRange): k8s.io.api.core.v1.LimitRange;

                        /**
                         * Encodes the specified LimitRange message. Does not implicitly {@link k8s.io.api.core.v1.LimitRange.verify|verify} messages.
                         * @param message LimitRange message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILimitRange, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LimitRange message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.LimitRange.verify|verify} messages.
                         * @param message LimitRange message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILimitRange, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LimitRange message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LimitRange
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.LimitRange;

                        /**
                         * Decodes a LimitRange message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LimitRange
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.LimitRange;

                        /**
                         * Verifies a LimitRange message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LimitRange message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LimitRange
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.LimitRange;

                        /**
                         * Creates a plain object from a LimitRange message. Also converts values to other types if specified.
                         * @param message LimitRange
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.LimitRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LimitRange to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a LimitRangeItem. */
                    interface ILimitRangeItem {

                        /** LimitRangeItem type */
                        type?: (string|null);

                        /** LimitRangeItem max */
                        max?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** LimitRangeItem min */
                        min?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** LimitRangeItem default */
                        "default"?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** LimitRangeItem defaultRequest */
                        defaultRequest?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** LimitRangeItem maxLimitRequestRatio */
                        maxLimitRequestRatio?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);
                    }

                    /** Represents a LimitRangeItem. */
                    class LimitRangeItem implements ILimitRangeItem {

                        /**
                         * Constructs a new LimitRangeItem.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILimitRangeItem);

                        /** LimitRangeItem type. */
                        public type: string;

                        /** LimitRangeItem max. */
                        public max: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** LimitRangeItem min. */
                        public min: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** LimitRangeItem default. */
                        public default: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** LimitRangeItem defaultRequest. */
                        public defaultRequest: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** LimitRangeItem maxLimitRequestRatio. */
                        public maxLimitRequestRatio: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /**
                         * Creates a new LimitRangeItem instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LimitRangeItem instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILimitRangeItem): k8s.io.api.core.v1.LimitRangeItem;

                        /**
                         * Encodes the specified LimitRangeItem message. Does not implicitly {@link k8s.io.api.core.v1.LimitRangeItem.verify|verify} messages.
                         * @param message LimitRangeItem message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILimitRangeItem, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LimitRangeItem message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.LimitRangeItem.verify|verify} messages.
                         * @param message LimitRangeItem message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILimitRangeItem, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LimitRangeItem message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LimitRangeItem
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.LimitRangeItem;

                        /**
                         * Decodes a LimitRangeItem message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LimitRangeItem
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.LimitRangeItem;

                        /**
                         * Verifies a LimitRangeItem message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LimitRangeItem message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LimitRangeItem
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.LimitRangeItem;

                        /**
                         * Creates a plain object from a LimitRangeItem message. Also converts values to other types if specified.
                         * @param message LimitRangeItem
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.LimitRangeItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LimitRangeItem to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a LimitRangeList. */
                    interface ILimitRangeList {

                        /** LimitRangeList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** LimitRangeList items */
                        items?: (k8s.io.api.core.v1.ILimitRange[]|null);
                    }

                    /** Represents a LimitRangeList. */
                    class LimitRangeList implements ILimitRangeList {

                        /**
                         * Constructs a new LimitRangeList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILimitRangeList);

                        /** LimitRangeList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** LimitRangeList items. */
                        public items: k8s.io.api.core.v1.ILimitRange[];

                        /**
                         * Creates a new LimitRangeList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LimitRangeList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILimitRangeList): k8s.io.api.core.v1.LimitRangeList;

                        /**
                         * Encodes the specified LimitRangeList message. Does not implicitly {@link k8s.io.api.core.v1.LimitRangeList.verify|verify} messages.
                         * @param message LimitRangeList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILimitRangeList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LimitRangeList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.LimitRangeList.verify|verify} messages.
                         * @param message LimitRangeList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILimitRangeList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LimitRangeList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LimitRangeList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.LimitRangeList;

                        /**
                         * Decodes a LimitRangeList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LimitRangeList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.LimitRangeList;

                        /**
                         * Verifies a LimitRangeList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LimitRangeList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LimitRangeList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.LimitRangeList;

                        /**
                         * Creates a plain object from a LimitRangeList message. Also converts values to other types if specified.
                         * @param message LimitRangeList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.LimitRangeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LimitRangeList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a LimitRangeSpec. */
                    interface ILimitRangeSpec {

                        /** LimitRangeSpec limits */
                        limits?: (k8s.io.api.core.v1.ILimitRangeItem[]|null);
                    }

                    /** Represents a LimitRangeSpec. */
                    class LimitRangeSpec implements ILimitRangeSpec {

                        /**
                         * Constructs a new LimitRangeSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILimitRangeSpec);

                        /** LimitRangeSpec limits. */
                        public limits: k8s.io.api.core.v1.ILimitRangeItem[];

                        /**
                         * Creates a new LimitRangeSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LimitRangeSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILimitRangeSpec): k8s.io.api.core.v1.LimitRangeSpec;

                        /**
                         * Encodes the specified LimitRangeSpec message. Does not implicitly {@link k8s.io.api.core.v1.LimitRangeSpec.verify|verify} messages.
                         * @param message LimitRangeSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILimitRangeSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LimitRangeSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.LimitRangeSpec.verify|verify} messages.
                         * @param message LimitRangeSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILimitRangeSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LimitRangeSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LimitRangeSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.LimitRangeSpec;

                        /**
                         * Decodes a LimitRangeSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LimitRangeSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.LimitRangeSpec;

                        /**
                         * Verifies a LimitRangeSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LimitRangeSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LimitRangeSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.LimitRangeSpec;

                        /**
                         * Creates a plain object from a LimitRangeSpec message. Also converts values to other types if specified.
                         * @param message LimitRangeSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.LimitRangeSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LimitRangeSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a List. */
                    interface IList {

                        /** List metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** List items */
                        items?: (k8s.io.apimachinery.pkg.runtime.IRawExtension[]|null);
                    }

                    /** Represents a List. */
                    class List implements IList {

                        /**
                         * Constructs a new List.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IList);

                        /** List metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** List items. */
                        public items: k8s.io.apimachinery.pkg.runtime.IRawExtension[];

                        /**
                         * Creates a new List instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns List instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IList): k8s.io.api.core.v1.List;

                        /**
                         * Encodes the specified List message. Does not implicitly {@link k8s.io.api.core.v1.List.verify|verify} messages.
                         * @param message List message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified List message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.List.verify|verify} messages.
                         * @param message List message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a List message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns List
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.List;

                        /**
                         * Decodes a List message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns List
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.List;

                        /**
                         * Verifies a List message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a List message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns List
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.List;

                        /**
                         * Creates a plain object from a List message. Also converts values to other types if specified.
                         * @param message List
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.List, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this List to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a LoadBalancerIngress. */
                    interface ILoadBalancerIngress {

                        /** LoadBalancerIngress ip */
                        ip?: (string|null);

                        /** LoadBalancerIngress hostname */
                        hostname?: (string|null);

                        /** LoadBalancerIngress ports */
                        ports?: (k8s.io.api.core.v1.IPortStatus[]|null);
                    }

                    /** Represents a LoadBalancerIngress. */
                    class LoadBalancerIngress implements ILoadBalancerIngress {

                        /**
                         * Constructs a new LoadBalancerIngress.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILoadBalancerIngress);

                        /** LoadBalancerIngress ip. */
                        public ip: string;

                        /** LoadBalancerIngress hostname. */
                        public hostname: string;

                        /** LoadBalancerIngress ports. */
                        public ports: k8s.io.api.core.v1.IPortStatus[];

                        /**
                         * Creates a new LoadBalancerIngress instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LoadBalancerIngress instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILoadBalancerIngress): k8s.io.api.core.v1.LoadBalancerIngress;

                        /**
                         * Encodes the specified LoadBalancerIngress message. Does not implicitly {@link k8s.io.api.core.v1.LoadBalancerIngress.verify|verify} messages.
                         * @param message LoadBalancerIngress message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILoadBalancerIngress, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LoadBalancerIngress message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.LoadBalancerIngress.verify|verify} messages.
                         * @param message LoadBalancerIngress message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILoadBalancerIngress, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LoadBalancerIngress message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LoadBalancerIngress
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.LoadBalancerIngress;

                        /**
                         * Decodes a LoadBalancerIngress message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LoadBalancerIngress
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.LoadBalancerIngress;

                        /**
                         * Verifies a LoadBalancerIngress message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LoadBalancerIngress message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LoadBalancerIngress
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.LoadBalancerIngress;

                        /**
                         * Creates a plain object from a LoadBalancerIngress message. Also converts values to other types if specified.
                         * @param message LoadBalancerIngress
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.LoadBalancerIngress, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LoadBalancerIngress to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a LoadBalancerStatus. */
                    interface ILoadBalancerStatus {

                        /** LoadBalancerStatus ingress */
                        ingress?: (k8s.io.api.core.v1.ILoadBalancerIngress[]|null);
                    }

                    /** Represents a LoadBalancerStatus. */
                    class LoadBalancerStatus implements ILoadBalancerStatus {

                        /**
                         * Constructs a new LoadBalancerStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILoadBalancerStatus);

                        /** LoadBalancerStatus ingress. */
                        public ingress: k8s.io.api.core.v1.ILoadBalancerIngress[];

                        /**
                         * Creates a new LoadBalancerStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LoadBalancerStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILoadBalancerStatus): k8s.io.api.core.v1.LoadBalancerStatus;

                        /**
                         * Encodes the specified LoadBalancerStatus message. Does not implicitly {@link k8s.io.api.core.v1.LoadBalancerStatus.verify|verify} messages.
                         * @param message LoadBalancerStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILoadBalancerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LoadBalancerStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.LoadBalancerStatus.verify|verify} messages.
                         * @param message LoadBalancerStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILoadBalancerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LoadBalancerStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LoadBalancerStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.LoadBalancerStatus;

                        /**
                         * Decodes a LoadBalancerStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LoadBalancerStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.LoadBalancerStatus;

                        /**
                         * Verifies a LoadBalancerStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LoadBalancerStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LoadBalancerStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.LoadBalancerStatus;

                        /**
                         * Creates a plain object from a LoadBalancerStatus message. Also converts values to other types if specified.
                         * @param message LoadBalancerStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.LoadBalancerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LoadBalancerStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a LocalObjectReference. */
                    interface ILocalObjectReference {

                        /** LocalObjectReference name */
                        name?: (string|null);
                    }

                    /** Represents a LocalObjectReference. */
                    class LocalObjectReference implements ILocalObjectReference {

                        /**
                         * Constructs a new LocalObjectReference.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILocalObjectReference);

                        /** LocalObjectReference name. */
                        public name: string;

                        /**
                         * Creates a new LocalObjectReference instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LocalObjectReference instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILocalObjectReference): k8s.io.api.core.v1.LocalObjectReference;

                        /**
                         * Encodes the specified LocalObjectReference message. Does not implicitly {@link k8s.io.api.core.v1.LocalObjectReference.verify|verify} messages.
                         * @param message LocalObjectReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILocalObjectReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LocalObjectReference message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.LocalObjectReference.verify|verify} messages.
                         * @param message LocalObjectReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILocalObjectReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LocalObjectReference message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LocalObjectReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.LocalObjectReference;

                        /**
                         * Decodes a LocalObjectReference message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LocalObjectReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.LocalObjectReference;

                        /**
                         * Verifies a LocalObjectReference message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LocalObjectReference message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LocalObjectReference
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.LocalObjectReference;

                        /**
                         * Creates a plain object from a LocalObjectReference message. Also converts values to other types if specified.
                         * @param message LocalObjectReference
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.LocalObjectReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LocalObjectReference to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a LocalVolumeSource. */
                    interface ILocalVolumeSource {

                        /** LocalVolumeSource path */
                        path?: (string|null);

                        /** LocalVolumeSource fsType */
                        fsType?: (string|null);
                    }

                    /** Represents a LocalVolumeSource. */
                    class LocalVolumeSource implements ILocalVolumeSource {

                        /**
                         * Constructs a new LocalVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ILocalVolumeSource);

                        /** LocalVolumeSource path. */
                        public path: string;

                        /** LocalVolumeSource fsType. */
                        public fsType: string;

                        /**
                         * Creates a new LocalVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LocalVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ILocalVolumeSource): k8s.io.api.core.v1.LocalVolumeSource;

                        /**
                         * Encodes the specified LocalVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.LocalVolumeSource.verify|verify} messages.
                         * @param message LocalVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ILocalVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LocalVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.LocalVolumeSource.verify|verify} messages.
                         * @param message LocalVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ILocalVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LocalVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LocalVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.LocalVolumeSource;

                        /**
                         * Decodes a LocalVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LocalVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.LocalVolumeSource;

                        /**
                         * Verifies a LocalVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LocalVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LocalVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.LocalVolumeSource;

                        /**
                         * Creates a plain object from a LocalVolumeSource message. Also converts values to other types if specified.
                         * @param message LocalVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.LocalVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LocalVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NFSVolumeSource. */
                    interface INFSVolumeSource {

                        /** NFSVolumeSource server */
                        server?: (string|null);

                        /** NFSVolumeSource path */
                        path?: (string|null);

                        /** NFSVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a NFSVolumeSource. */
                    class NFSVolumeSource implements INFSVolumeSource {

                        /**
                         * Constructs a new NFSVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INFSVolumeSource);

                        /** NFSVolumeSource server. */
                        public server: string;

                        /** NFSVolumeSource path. */
                        public path: string;

                        /** NFSVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new NFSVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NFSVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INFSVolumeSource): k8s.io.api.core.v1.NFSVolumeSource;

                        /**
                         * Encodes the specified NFSVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.NFSVolumeSource.verify|verify} messages.
                         * @param message NFSVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INFSVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NFSVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NFSVolumeSource.verify|verify} messages.
                         * @param message NFSVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INFSVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NFSVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NFSVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NFSVolumeSource;

                        /**
                         * Decodes a NFSVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NFSVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NFSVolumeSource;

                        /**
                         * Verifies a NFSVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NFSVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NFSVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NFSVolumeSource;

                        /**
                         * Creates a plain object from a NFSVolumeSource message. Also converts values to other types if specified.
                         * @param message NFSVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NFSVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NFSVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Namespace. */
                    interface INamespace {

                        /** Namespace metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Namespace spec */
                        spec?: (k8s.io.api.core.v1.INamespaceSpec|null);

                        /** Namespace status */
                        status?: (k8s.io.api.core.v1.INamespaceStatus|null);
                    }

                    /** Represents a Namespace. */
                    class Namespace implements INamespace {

                        /**
                         * Constructs a new Namespace.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INamespace);

                        /** Namespace metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Namespace spec. */
                        public spec?: (k8s.io.api.core.v1.INamespaceSpec|null);

                        /** Namespace status. */
                        public status?: (k8s.io.api.core.v1.INamespaceStatus|null);

                        /**
                         * Creates a new Namespace instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Namespace instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INamespace): k8s.io.api.core.v1.Namespace;

                        /**
                         * Encodes the specified Namespace message. Does not implicitly {@link k8s.io.api.core.v1.Namespace.verify|verify} messages.
                         * @param message Namespace message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INamespace, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Namespace message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Namespace.verify|verify} messages.
                         * @param message Namespace message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INamespace, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Namespace message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Namespace
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Namespace;

                        /**
                         * Decodes a Namespace message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Namespace
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Namespace;

                        /**
                         * Verifies a Namespace message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Namespace message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Namespace
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Namespace;

                        /**
                         * Creates a plain object from a Namespace message. Also converts values to other types if specified.
                         * @param message Namespace
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Namespace, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Namespace to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NamespaceCondition. */
                    interface INamespaceCondition {

                        /** NamespaceCondition type */
                        type?: (string|null);

                        /** NamespaceCondition status */
                        status?: (string|null);

                        /** NamespaceCondition lastTransitionTime */
                        lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** NamespaceCondition reason */
                        reason?: (string|null);

                        /** NamespaceCondition message */
                        message?: (string|null);
                    }

                    /** Represents a NamespaceCondition. */
                    class NamespaceCondition implements INamespaceCondition {

                        /**
                         * Constructs a new NamespaceCondition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INamespaceCondition);

                        /** NamespaceCondition type. */
                        public type: string;

                        /** NamespaceCondition status. */
                        public status: string;

                        /** NamespaceCondition lastTransitionTime. */
                        public lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** NamespaceCondition reason. */
                        public reason: string;

                        /** NamespaceCondition message. */
                        public message: string;

                        /**
                         * Creates a new NamespaceCondition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NamespaceCondition instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INamespaceCondition): k8s.io.api.core.v1.NamespaceCondition;

                        /**
                         * Encodes the specified NamespaceCondition message. Does not implicitly {@link k8s.io.api.core.v1.NamespaceCondition.verify|verify} messages.
                         * @param message NamespaceCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INamespaceCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NamespaceCondition message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NamespaceCondition.verify|verify} messages.
                         * @param message NamespaceCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INamespaceCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NamespaceCondition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NamespaceCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NamespaceCondition;

                        /**
                         * Decodes a NamespaceCondition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NamespaceCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NamespaceCondition;

                        /**
                         * Verifies a NamespaceCondition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NamespaceCondition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NamespaceCondition
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NamespaceCondition;

                        /**
                         * Creates a plain object from a NamespaceCondition message. Also converts values to other types if specified.
                         * @param message NamespaceCondition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NamespaceCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NamespaceCondition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NamespaceList. */
                    interface INamespaceList {

                        /** NamespaceList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** NamespaceList items */
                        items?: (k8s.io.api.core.v1.INamespace[]|null);
                    }

                    /** Represents a NamespaceList. */
                    class NamespaceList implements INamespaceList {

                        /**
                         * Constructs a new NamespaceList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INamespaceList);

                        /** NamespaceList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** NamespaceList items. */
                        public items: k8s.io.api.core.v1.INamespace[];

                        /**
                         * Creates a new NamespaceList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NamespaceList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INamespaceList): k8s.io.api.core.v1.NamespaceList;

                        /**
                         * Encodes the specified NamespaceList message. Does not implicitly {@link k8s.io.api.core.v1.NamespaceList.verify|verify} messages.
                         * @param message NamespaceList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INamespaceList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NamespaceList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NamespaceList.verify|verify} messages.
                         * @param message NamespaceList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INamespaceList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NamespaceList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NamespaceList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NamespaceList;

                        /**
                         * Decodes a NamespaceList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NamespaceList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NamespaceList;

                        /**
                         * Verifies a NamespaceList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NamespaceList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NamespaceList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NamespaceList;

                        /**
                         * Creates a plain object from a NamespaceList message. Also converts values to other types if specified.
                         * @param message NamespaceList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NamespaceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NamespaceList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NamespaceSpec. */
                    interface INamespaceSpec {

                        /** NamespaceSpec finalizers */
                        finalizers?: (string[]|null);
                    }

                    /** Represents a NamespaceSpec. */
                    class NamespaceSpec implements INamespaceSpec {

                        /**
                         * Constructs a new NamespaceSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INamespaceSpec);

                        /** NamespaceSpec finalizers. */
                        public finalizers: string[];

                        /**
                         * Creates a new NamespaceSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NamespaceSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INamespaceSpec): k8s.io.api.core.v1.NamespaceSpec;

                        /**
                         * Encodes the specified NamespaceSpec message. Does not implicitly {@link k8s.io.api.core.v1.NamespaceSpec.verify|verify} messages.
                         * @param message NamespaceSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INamespaceSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NamespaceSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NamespaceSpec.verify|verify} messages.
                         * @param message NamespaceSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INamespaceSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NamespaceSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NamespaceSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NamespaceSpec;

                        /**
                         * Decodes a NamespaceSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NamespaceSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NamespaceSpec;

                        /**
                         * Verifies a NamespaceSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NamespaceSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NamespaceSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NamespaceSpec;

                        /**
                         * Creates a plain object from a NamespaceSpec message. Also converts values to other types if specified.
                         * @param message NamespaceSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NamespaceSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NamespaceSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NamespaceStatus. */
                    interface INamespaceStatus {

                        /** NamespaceStatus phase */
                        phase?: (string|null);

                        /** NamespaceStatus conditions */
                        conditions?: (k8s.io.api.core.v1.INamespaceCondition[]|null);
                    }

                    /** Represents a NamespaceStatus. */
                    class NamespaceStatus implements INamespaceStatus {

                        /**
                         * Constructs a new NamespaceStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INamespaceStatus);

                        /** NamespaceStatus phase. */
                        public phase: string;

                        /** NamespaceStatus conditions. */
                        public conditions: k8s.io.api.core.v1.INamespaceCondition[];

                        /**
                         * Creates a new NamespaceStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NamespaceStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INamespaceStatus): k8s.io.api.core.v1.NamespaceStatus;

                        /**
                         * Encodes the specified NamespaceStatus message. Does not implicitly {@link k8s.io.api.core.v1.NamespaceStatus.verify|verify} messages.
                         * @param message NamespaceStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INamespaceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NamespaceStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NamespaceStatus.verify|verify} messages.
                         * @param message NamespaceStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INamespaceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NamespaceStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NamespaceStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NamespaceStatus;

                        /**
                         * Decodes a NamespaceStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NamespaceStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NamespaceStatus;

                        /**
                         * Verifies a NamespaceStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NamespaceStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NamespaceStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NamespaceStatus;

                        /**
                         * Creates a plain object from a NamespaceStatus message. Also converts values to other types if specified.
                         * @param message NamespaceStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NamespaceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NamespaceStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Node. */
                    interface INode {

                        /** Node metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Node spec */
                        spec?: (k8s.io.api.core.v1.INodeSpec|null);

                        /** Node status */
                        status?: (k8s.io.api.core.v1.INodeStatus|null);
                    }

                    /** Represents a Node. */
                    class Node implements INode {

                        /**
                         * Constructs a new Node.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INode);

                        /** Node metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Node spec. */
                        public spec?: (k8s.io.api.core.v1.INodeSpec|null);

                        /** Node status. */
                        public status?: (k8s.io.api.core.v1.INodeStatus|null);

                        /**
                         * Creates a new Node instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Node instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INode): k8s.io.api.core.v1.Node;

                        /**
                         * Encodes the specified Node message. Does not implicitly {@link k8s.io.api.core.v1.Node.verify|verify} messages.
                         * @param message Node message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INode, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Node message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Node.verify|verify} messages.
                         * @param message Node message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INode, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Node message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Node
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Node;

                        /**
                         * Decodes a Node message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Node
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Node;

                        /**
                         * Verifies a Node message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Node message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Node
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Node;

                        /**
                         * Creates a plain object from a Node message. Also converts values to other types if specified.
                         * @param message Node
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Node, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Node to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeAddress. */
                    interface INodeAddress {

                        /** NodeAddress type */
                        type?: (string|null);

                        /** NodeAddress address */
                        address?: (string|null);
                    }

                    /** Represents a NodeAddress. */
                    class NodeAddress implements INodeAddress {

                        /**
                         * Constructs a new NodeAddress.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeAddress);

                        /** NodeAddress type. */
                        public type: string;

                        /** NodeAddress address. */
                        public address: string;

                        /**
                         * Creates a new NodeAddress instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeAddress instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeAddress): k8s.io.api.core.v1.NodeAddress;

                        /**
                         * Encodes the specified NodeAddress message. Does not implicitly {@link k8s.io.api.core.v1.NodeAddress.verify|verify} messages.
                         * @param message NodeAddress message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeAddress message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeAddress.verify|verify} messages.
                         * @param message NodeAddress message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeAddress message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeAddress
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeAddress;

                        /**
                         * Decodes a NodeAddress message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeAddress
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeAddress;

                        /**
                         * Verifies a NodeAddress message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeAddress message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeAddress
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeAddress;

                        /**
                         * Creates a plain object from a NodeAddress message. Also converts values to other types if specified.
                         * @param message NodeAddress
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeAddress, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeAddress to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeAffinity. */
                    interface INodeAffinity {

                        /** NodeAffinity requiredDuringSchedulingIgnoredDuringExecution */
                        requiredDuringSchedulingIgnoredDuringExecution?: (k8s.io.api.core.v1.INodeSelector|null);

                        /** NodeAffinity preferredDuringSchedulingIgnoredDuringExecution */
                        preferredDuringSchedulingIgnoredDuringExecution?: (k8s.io.api.core.v1.IPreferredSchedulingTerm[]|null);
                    }

                    /** Represents a NodeAffinity. */
                    class NodeAffinity implements INodeAffinity {

                        /**
                         * Constructs a new NodeAffinity.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeAffinity);

                        /** NodeAffinity requiredDuringSchedulingIgnoredDuringExecution. */
                        public requiredDuringSchedulingIgnoredDuringExecution?: (k8s.io.api.core.v1.INodeSelector|null);

                        /** NodeAffinity preferredDuringSchedulingIgnoredDuringExecution. */
                        public preferredDuringSchedulingIgnoredDuringExecution: k8s.io.api.core.v1.IPreferredSchedulingTerm[];

                        /**
                         * Creates a new NodeAffinity instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeAffinity instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeAffinity): k8s.io.api.core.v1.NodeAffinity;

                        /**
                         * Encodes the specified NodeAffinity message. Does not implicitly {@link k8s.io.api.core.v1.NodeAffinity.verify|verify} messages.
                         * @param message NodeAffinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeAffinity message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeAffinity.verify|verify} messages.
                         * @param message NodeAffinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeAffinity message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeAffinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeAffinity;

                        /**
                         * Decodes a NodeAffinity message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeAffinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeAffinity;

                        /**
                         * Verifies a NodeAffinity message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeAffinity message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeAffinity
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeAffinity;

                        /**
                         * Creates a plain object from a NodeAffinity message. Also converts values to other types if specified.
                         * @param message NodeAffinity
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeAffinity to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeCondition. */
                    interface INodeCondition {

                        /** NodeCondition type */
                        type?: (string|null);

                        /** NodeCondition status */
                        status?: (string|null);

                        /** NodeCondition lastHeartbeatTime */
                        lastHeartbeatTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** NodeCondition lastTransitionTime */
                        lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** NodeCondition reason */
                        reason?: (string|null);

                        /** NodeCondition message */
                        message?: (string|null);
                    }

                    /** Represents a NodeCondition. */
                    class NodeCondition implements INodeCondition {

                        /**
                         * Constructs a new NodeCondition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeCondition);

                        /** NodeCondition type. */
                        public type: string;

                        /** NodeCondition status. */
                        public status: string;

                        /** NodeCondition lastHeartbeatTime. */
                        public lastHeartbeatTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** NodeCondition lastTransitionTime. */
                        public lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** NodeCondition reason. */
                        public reason: string;

                        /** NodeCondition message. */
                        public message: string;

                        /**
                         * Creates a new NodeCondition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeCondition instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeCondition): k8s.io.api.core.v1.NodeCondition;

                        /**
                         * Encodes the specified NodeCondition message. Does not implicitly {@link k8s.io.api.core.v1.NodeCondition.verify|verify} messages.
                         * @param message NodeCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeCondition message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeCondition.verify|verify} messages.
                         * @param message NodeCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeCondition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeCondition;

                        /**
                         * Decodes a NodeCondition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeCondition;

                        /**
                         * Verifies a NodeCondition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeCondition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeCondition
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeCondition;

                        /**
                         * Creates a plain object from a NodeCondition message. Also converts values to other types if specified.
                         * @param message NodeCondition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeCondition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeConfigSource. */
                    interface INodeConfigSource {

                        /** NodeConfigSource configMap */
                        configMap?: (k8s.io.api.core.v1.IConfigMapNodeConfigSource|null);
                    }

                    /** Represents a NodeConfigSource. */
                    class NodeConfigSource implements INodeConfigSource {

                        /**
                         * Constructs a new NodeConfigSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeConfigSource);

                        /** NodeConfigSource configMap. */
                        public configMap?: (k8s.io.api.core.v1.IConfigMapNodeConfigSource|null);

                        /**
                         * Creates a new NodeConfigSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeConfigSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeConfigSource): k8s.io.api.core.v1.NodeConfigSource;

                        /**
                         * Encodes the specified NodeConfigSource message. Does not implicitly {@link k8s.io.api.core.v1.NodeConfigSource.verify|verify} messages.
                         * @param message NodeConfigSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeConfigSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeConfigSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeConfigSource.verify|verify} messages.
                         * @param message NodeConfigSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeConfigSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeConfigSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeConfigSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeConfigSource;

                        /**
                         * Decodes a NodeConfigSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeConfigSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeConfigSource;

                        /**
                         * Verifies a NodeConfigSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeConfigSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeConfigSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeConfigSource;

                        /**
                         * Creates a plain object from a NodeConfigSource message. Also converts values to other types if specified.
                         * @param message NodeConfigSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeConfigSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeConfigSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeConfigStatus. */
                    interface INodeConfigStatus {

                        /** NodeConfigStatus assigned */
                        assigned?: (k8s.io.api.core.v1.INodeConfigSource|null);

                        /** NodeConfigStatus active */
                        active?: (k8s.io.api.core.v1.INodeConfigSource|null);

                        /** NodeConfigStatus lastKnownGood */
                        lastKnownGood?: (k8s.io.api.core.v1.INodeConfigSource|null);

                        /** NodeConfigStatus error */
                        error?: (string|null);
                    }

                    /** Represents a NodeConfigStatus. */
                    class NodeConfigStatus implements INodeConfigStatus {

                        /**
                         * Constructs a new NodeConfigStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeConfigStatus);

                        /** NodeConfigStatus assigned. */
                        public assigned?: (k8s.io.api.core.v1.INodeConfigSource|null);

                        /** NodeConfigStatus active. */
                        public active?: (k8s.io.api.core.v1.INodeConfigSource|null);

                        /** NodeConfigStatus lastKnownGood. */
                        public lastKnownGood?: (k8s.io.api.core.v1.INodeConfigSource|null);

                        /** NodeConfigStatus error. */
                        public error: string;

                        /**
                         * Creates a new NodeConfigStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeConfigStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeConfigStatus): k8s.io.api.core.v1.NodeConfigStatus;

                        /**
                         * Encodes the specified NodeConfigStatus message. Does not implicitly {@link k8s.io.api.core.v1.NodeConfigStatus.verify|verify} messages.
                         * @param message NodeConfigStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeConfigStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeConfigStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeConfigStatus.verify|verify} messages.
                         * @param message NodeConfigStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeConfigStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeConfigStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeConfigStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeConfigStatus;

                        /**
                         * Decodes a NodeConfigStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeConfigStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeConfigStatus;

                        /**
                         * Verifies a NodeConfigStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeConfigStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeConfigStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeConfigStatus;

                        /**
                         * Creates a plain object from a NodeConfigStatus message. Also converts values to other types if specified.
                         * @param message NodeConfigStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeConfigStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeConfigStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeDaemonEndpoints. */
                    interface INodeDaemonEndpoints {

                        /** NodeDaemonEndpoints kubeletEndpoint */
                        kubeletEndpoint?: (k8s.io.api.core.v1.IDaemonEndpoint|null);
                    }

                    /** Represents a NodeDaemonEndpoints. */
                    class NodeDaemonEndpoints implements INodeDaemonEndpoints {

                        /**
                         * Constructs a new NodeDaemonEndpoints.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeDaemonEndpoints);

                        /** NodeDaemonEndpoints kubeletEndpoint. */
                        public kubeletEndpoint?: (k8s.io.api.core.v1.IDaemonEndpoint|null);

                        /**
                         * Creates a new NodeDaemonEndpoints instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeDaemonEndpoints instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeDaemonEndpoints): k8s.io.api.core.v1.NodeDaemonEndpoints;

                        /**
                         * Encodes the specified NodeDaemonEndpoints message. Does not implicitly {@link k8s.io.api.core.v1.NodeDaemonEndpoints.verify|verify} messages.
                         * @param message NodeDaemonEndpoints message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeDaemonEndpoints, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeDaemonEndpoints message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeDaemonEndpoints.verify|verify} messages.
                         * @param message NodeDaemonEndpoints message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeDaemonEndpoints, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeDaemonEndpoints message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeDaemonEndpoints
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeDaemonEndpoints;

                        /**
                         * Decodes a NodeDaemonEndpoints message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeDaemonEndpoints
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeDaemonEndpoints;

                        /**
                         * Verifies a NodeDaemonEndpoints message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeDaemonEndpoints message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeDaemonEndpoints
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeDaemonEndpoints;

                        /**
                         * Creates a plain object from a NodeDaemonEndpoints message. Also converts values to other types if specified.
                         * @param message NodeDaemonEndpoints
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeDaemonEndpoints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeDaemonEndpoints to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeList. */
                    interface INodeList {

                        /** NodeList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** NodeList items */
                        items?: (k8s.io.api.core.v1.INode[]|null);
                    }

                    /** Represents a NodeList. */
                    class NodeList implements INodeList {

                        /**
                         * Constructs a new NodeList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeList);

                        /** NodeList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** NodeList items. */
                        public items: k8s.io.api.core.v1.INode[];

                        /**
                         * Creates a new NodeList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeList): k8s.io.api.core.v1.NodeList;

                        /**
                         * Encodes the specified NodeList message. Does not implicitly {@link k8s.io.api.core.v1.NodeList.verify|verify} messages.
                         * @param message NodeList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeList.verify|verify} messages.
                         * @param message NodeList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeList;

                        /**
                         * Decodes a NodeList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeList;

                        /**
                         * Verifies a NodeList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeList;

                        /**
                         * Creates a plain object from a NodeList message. Also converts values to other types if specified.
                         * @param message NodeList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeProxyOptions. */
                    interface INodeProxyOptions {

                        /** NodeProxyOptions path */
                        path?: (string|null);
                    }

                    /** Represents a NodeProxyOptions. */
                    class NodeProxyOptions implements INodeProxyOptions {

                        /**
                         * Constructs a new NodeProxyOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeProxyOptions);

                        /** NodeProxyOptions path. */
                        public path: string;

                        /**
                         * Creates a new NodeProxyOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeProxyOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeProxyOptions): k8s.io.api.core.v1.NodeProxyOptions;

                        /**
                         * Encodes the specified NodeProxyOptions message. Does not implicitly {@link k8s.io.api.core.v1.NodeProxyOptions.verify|verify} messages.
                         * @param message NodeProxyOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeProxyOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeProxyOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeProxyOptions.verify|verify} messages.
                         * @param message NodeProxyOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeProxyOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeProxyOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeProxyOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeProxyOptions;

                        /**
                         * Decodes a NodeProxyOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeProxyOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeProxyOptions;

                        /**
                         * Verifies a NodeProxyOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeProxyOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeProxyOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeProxyOptions;

                        /**
                         * Creates a plain object from a NodeProxyOptions message. Also converts values to other types if specified.
                         * @param message NodeProxyOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeProxyOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeProxyOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeResources. */
                    interface INodeResources {

                        /** NodeResources capacity */
                        capacity?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);
                    }

                    /** Represents a NodeResources. */
                    class NodeResources implements INodeResources {

                        /**
                         * Constructs a new NodeResources.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeResources);

                        /** NodeResources capacity. */
                        public capacity: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /**
                         * Creates a new NodeResources instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeResources instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeResources): k8s.io.api.core.v1.NodeResources;

                        /**
                         * Encodes the specified NodeResources message. Does not implicitly {@link k8s.io.api.core.v1.NodeResources.verify|verify} messages.
                         * @param message NodeResources message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeResources, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeResources message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeResources.verify|verify} messages.
                         * @param message NodeResources message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeResources, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeResources message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeResources
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeResources;

                        /**
                         * Decodes a NodeResources message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeResources
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeResources;

                        /**
                         * Verifies a NodeResources message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeResources message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeResources
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeResources;

                        /**
                         * Creates a plain object from a NodeResources message. Also converts values to other types if specified.
                         * @param message NodeResources
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeResources to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeSelector. */
                    interface INodeSelector {

                        /** NodeSelector nodeSelectorTerms */
                        nodeSelectorTerms?: (k8s.io.api.core.v1.INodeSelectorTerm[]|null);
                    }

                    /** Represents a NodeSelector. */
                    class NodeSelector implements INodeSelector {

                        /**
                         * Constructs a new NodeSelector.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeSelector);

                        /** NodeSelector nodeSelectorTerms. */
                        public nodeSelectorTerms: k8s.io.api.core.v1.INodeSelectorTerm[];

                        /**
                         * Creates a new NodeSelector instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeSelector instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeSelector): k8s.io.api.core.v1.NodeSelector;

                        /**
                         * Encodes the specified NodeSelector message. Does not implicitly {@link k8s.io.api.core.v1.NodeSelector.verify|verify} messages.
                         * @param message NodeSelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeSelector message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeSelector.verify|verify} messages.
                         * @param message NodeSelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeSelector message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeSelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeSelector;

                        /**
                         * Decodes a NodeSelector message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeSelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeSelector;

                        /**
                         * Verifies a NodeSelector message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeSelector message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeSelector
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeSelector;

                        /**
                         * Creates a plain object from a NodeSelector message. Also converts values to other types if specified.
                         * @param message NodeSelector
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeSelector to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeSelectorRequirement. */
                    interface INodeSelectorRequirement {

                        /** NodeSelectorRequirement key */
                        key?: (string|null);

                        /** NodeSelectorRequirement operator */
                        operator?: (string|null);

                        /** NodeSelectorRequirement values */
                        values?: (string[]|null);
                    }

                    /** Represents a NodeSelectorRequirement. */
                    class NodeSelectorRequirement implements INodeSelectorRequirement {

                        /**
                         * Constructs a new NodeSelectorRequirement.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeSelectorRequirement);

                        /** NodeSelectorRequirement key. */
                        public key: string;

                        /** NodeSelectorRequirement operator. */
                        public operator: string;

                        /** NodeSelectorRequirement values. */
                        public values: string[];

                        /**
                         * Creates a new NodeSelectorRequirement instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeSelectorRequirement instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeSelectorRequirement): k8s.io.api.core.v1.NodeSelectorRequirement;

                        /**
                         * Encodes the specified NodeSelectorRequirement message. Does not implicitly {@link k8s.io.api.core.v1.NodeSelectorRequirement.verify|verify} messages.
                         * @param message NodeSelectorRequirement message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeSelectorRequirement, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeSelectorRequirement message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeSelectorRequirement.verify|verify} messages.
                         * @param message NodeSelectorRequirement message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeSelectorRequirement, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeSelectorRequirement message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeSelectorRequirement
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeSelectorRequirement;

                        /**
                         * Decodes a NodeSelectorRequirement message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeSelectorRequirement
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeSelectorRequirement;

                        /**
                         * Verifies a NodeSelectorRequirement message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeSelectorRequirement message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeSelectorRequirement
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeSelectorRequirement;

                        /**
                         * Creates a plain object from a NodeSelectorRequirement message. Also converts values to other types if specified.
                         * @param message NodeSelectorRequirement
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeSelectorRequirement, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeSelectorRequirement to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeSelectorTerm. */
                    interface INodeSelectorTerm {

                        /** NodeSelectorTerm matchExpressions */
                        matchExpressions?: (k8s.io.api.core.v1.INodeSelectorRequirement[]|null);

                        /** NodeSelectorTerm matchFields */
                        matchFields?: (k8s.io.api.core.v1.INodeSelectorRequirement[]|null);
                    }

                    /** Represents a NodeSelectorTerm. */
                    class NodeSelectorTerm implements INodeSelectorTerm {

                        /**
                         * Constructs a new NodeSelectorTerm.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeSelectorTerm);

                        /** NodeSelectorTerm matchExpressions. */
                        public matchExpressions: k8s.io.api.core.v1.INodeSelectorRequirement[];

                        /** NodeSelectorTerm matchFields. */
                        public matchFields: k8s.io.api.core.v1.INodeSelectorRequirement[];

                        /**
                         * Creates a new NodeSelectorTerm instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeSelectorTerm instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeSelectorTerm): k8s.io.api.core.v1.NodeSelectorTerm;

                        /**
                         * Encodes the specified NodeSelectorTerm message. Does not implicitly {@link k8s.io.api.core.v1.NodeSelectorTerm.verify|verify} messages.
                         * @param message NodeSelectorTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeSelectorTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeSelectorTerm message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeSelectorTerm.verify|verify} messages.
                         * @param message NodeSelectorTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeSelectorTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeSelectorTerm message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeSelectorTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeSelectorTerm;

                        /**
                         * Decodes a NodeSelectorTerm message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeSelectorTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeSelectorTerm;

                        /**
                         * Verifies a NodeSelectorTerm message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeSelectorTerm message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeSelectorTerm
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeSelectorTerm;

                        /**
                         * Creates a plain object from a NodeSelectorTerm message. Also converts values to other types if specified.
                         * @param message NodeSelectorTerm
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeSelectorTerm, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeSelectorTerm to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeSpec. */
                    interface INodeSpec {

                        /** NodeSpec podCIDR */
                        podCIDR?: (string|null);

                        /** NodeSpec podCIDRs */
                        podCIDRs?: (string[]|null);

                        /** NodeSpec providerID */
                        providerID?: (string|null);

                        /** NodeSpec unschedulable */
                        unschedulable?: (boolean|null);

                        /** NodeSpec taints */
                        taints?: (k8s.io.api.core.v1.ITaint[]|null);

                        /** NodeSpec configSource */
                        configSource?: (k8s.io.api.core.v1.INodeConfigSource|null);

                        /** NodeSpec externalID */
                        externalID?: (string|null);
                    }

                    /** Represents a NodeSpec. */
                    class NodeSpec implements INodeSpec {

                        /**
                         * Constructs a new NodeSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeSpec);

                        /** NodeSpec podCIDR. */
                        public podCIDR: string;

                        /** NodeSpec podCIDRs. */
                        public podCIDRs: string[];

                        /** NodeSpec providerID. */
                        public providerID: string;

                        /** NodeSpec unschedulable. */
                        public unschedulable: boolean;

                        /** NodeSpec taints. */
                        public taints: k8s.io.api.core.v1.ITaint[];

                        /** NodeSpec configSource. */
                        public configSource?: (k8s.io.api.core.v1.INodeConfigSource|null);

                        /** NodeSpec externalID. */
                        public externalID: string;

                        /**
                         * Creates a new NodeSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeSpec): k8s.io.api.core.v1.NodeSpec;

                        /**
                         * Encodes the specified NodeSpec message. Does not implicitly {@link k8s.io.api.core.v1.NodeSpec.verify|verify} messages.
                         * @param message NodeSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeSpec.verify|verify} messages.
                         * @param message NodeSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeSpec;

                        /**
                         * Decodes a NodeSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeSpec;

                        /**
                         * Verifies a NodeSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeSpec;

                        /**
                         * Creates a plain object from a NodeSpec message. Also converts values to other types if specified.
                         * @param message NodeSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeStatus. */
                    interface INodeStatus {

                        /** NodeStatus capacity */
                        capacity?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** NodeStatus allocatable */
                        allocatable?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** NodeStatus phase */
                        phase?: (string|null);

                        /** NodeStatus conditions */
                        conditions?: (k8s.io.api.core.v1.INodeCondition[]|null);

                        /** NodeStatus addresses */
                        addresses?: (k8s.io.api.core.v1.INodeAddress[]|null);

                        /** NodeStatus daemonEndpoints */
                        daemonEndpoints?: (k8s.io.api.core.v1.INodeDaemonEndpoints|null);

                        /** NodeStatus nodeInfo */
                        nodeInfo?: (k8s.io.api.core.v1.INodeSystemInfo|null);

                        /** NodeStatus images */
                        images?: (k8s.io.api.core.v1.IContainerImage[]|null);

                        /** NodeStatus volumesInUse */
                        volumesInUse?: (string[]|null);

                        /** NodeStatus volumesAttached */
                        volumesAttached?: (k8s.io.api.core.v1.IAttachedVolume[]|null);

                        /** NodeStatus config */
                        config?: (k8s.io.api.core.v1.INodeConfigStatus|null);
                    }

                    /** Represents a NodeStatus. */
                    class NodeStatus implements INodeStatus {

                        /**
                         * Constructs a new NodeStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeStatus);

                        /** NodeStatus capacity. */
                        public capacity: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** NodeStatus allocatable. */
                        public allocatable: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** NodeStatus phase. */
                        public phase: string;

                        /** NodeStatus conditions. */
                        public conditions: k8s.io.api.core.v1.INodeCondition[];

                        /** NodeStatus addresses. */
                        public addresses: k8s.io.api.core.v1.INodeAddress[];

                        /** NodeStatus daemonEndpoints. */
                        public daemonEndpoints?: (k8s.io.api.core.v1.INodeDaemonEndpoints|null);

                        /** NodeStatus nodeInfo. */
                        public nodeInfo?: (k8s.io.api.core.v1.INodeSystemInfo|null);

                        /** NodeStatus images. */
                        public images: k8s.io.api.core.v1.IContainerImage[];

                        /** NodeStatus volumesInUse. */
                        public volumesInUse: string[];

                        /** NodeStatus volumesAttached. */
                        public volumesAttached: k8s.io.api.core.v1.IAttachedVolume[];

                        /** NodeStatus config. */
                        public config?: (k8s.io.api.core.v1.INodeConfigStatus|null);

                        /**
                         * Creates a new NodeStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeStatus): k8s.io.api.core.v1.NodeStatus;

                        /**
                         * Encodes the specified NodeStatus message. Does not implicitly {@link k8s.io.api.core.v1.NodeStatus.verify|verify} messages.
                         * @param message NodeStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeStatus.verify|verify} messages.
                         * @param message NodeStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeStatus;

                        /**
                         * Decodes a NodeStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeStatus;

                        /**
                         * Verifies a NodeStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeStatus;

                        /**
                         * Creates a plain object from a NodeStatus message. Also converts values to other types if specified.
                         * @param message NodeStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a NodeSystemInfo. */
                    interface INodeSystemInfo {

                        /** NodeSystemInfo machineID */
                        machineID?: (string|null);

                        /** NodeSystemInfo systemUUID */
                        systemUUID?: (string|null);

                        /** NodeSystemInfo bootID */
                        bootID?: (string|null);

                        /** NodeSystemInfo kernelVersion */
                        kernelVersion?: (string|null);

                        /** NodeSystemInfo osImage */
                        osImage?: (string|null);

                        /** NodeSystemInfo containerRuntimeVersion */
                        containerRuntimeVersion?: (string|null);

                        /** NodeSystemInfo kubeletVersion */
                        kubeletVersion?: (string|null);

                        /** NodeSystemInfo kubeProxyVersion */
                        kubeProxyVersion?: (string|null);

                        /** NodeSystemInfo operatingSystem */
                        operatingSystem?: (string|null);

                        /** NodeSystemInfo architecture */
                        architecture?: (string|null);
                    }

                    /** Represents a NodeSystemInfo. */
                    class NodeSystemInfo implements INodeSystemInfo {

                        /**
                         * Constructs a new NodeSystemInfo.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.INodeSystemInfo);

                        /** NodeSystemInfo machineID. */
                        public machineID: string;

                        /** NodeSystemInfo systemUUID. */
                        public systemUUID: string;

                        /** NodeSystemInfo bootID. */
                        public bootID: string;

                        /** NodeSystemInfo kernelVersion. */
                        public kernelVersion: string;

                        /** NodeSystemInfo osImage. */
                        public osImage: string;

                        /** NodeSystemInfo containerRuntimeVersion. */
                        public containerRuntimeVersion: string;

                        /** NodeSystemInfo kubeletVersion. */
                        public kubeletVersion: string;

                        /** NodeSystemInfo kubeProxyVersion. */
                        public kubeProxyVersion: string;

                        /** NodeSystemInfo operatingSystem. */
                        public operatingSystem: string;

                        /** NodeSystemInfo architecture. */
                        public architecture: string;

                        /**
                         * Creates a new NodeSystemInfo instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NodeSystemInfo instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.INodeSystemInfo): k8s.io.api.core.v1.NodeSystemInfo;

                        /**
                         * Encodes the specified NodeSystemInfo message. Does not implicitly {@link k8s.io.api.core.v1.NodeSystemInfo.verify|verify} messages.
                         * @param message NodeSystemInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.INodeSystemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NodeSystemInfo message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.NodeSystemInfo.verify|verify} messages.
                         * @param message NodeSystemInfo message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.INodeSystemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NodeSystemInfo message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NodeSystemInfo
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.NodeSystemInfo;

                        /**
                         * Decodes a NodeSystemInfo message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NodeSystemInfo
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.NodeSystemInfo;

                        /**
                         * Verifies a NodeSystemInfo message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NodeSystemInfo message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NodeSystemInfo
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.NodeSystemInfo;

                        /**
                         * Creates a plain object from a NodeSystemInfo message. Also converts values to other types if specified.
                         * @param message NodeSystemInfo
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.NodeSystemInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NodeSystemInfo to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an ObjectFieldSelector. */
                    interface IObjectFieldSelector {

                        /** ObjectFieldSelector apiVersion */
                        apiVersion?: (string|null);

                        /** ObjectFieldSelector fieldPath */
                        fieldPath?: (string|null);
                    }

                    /** Represents an ObjectFieldSelector. */
                    class ObjectFieldSelector implements IObjectFieldSelector {

                        /**
                         * Constructs a new ObjectFieldSelector.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IObjectFieldSelector);

                        /** ObjectFieldSelector apiVersion. */
                        public apiVersion: string;

                        /** ObjectFieldSelector fieldPath. */
                        public fieldPath: string;

                        /**
                         * Creates a new ObjectFieldSelector instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ObjectFieldSelector instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IObjectFieldSelector): k8s.io.api.core.v1.ObjectFieldSelector;

                        /**
                         * Encodes the specified ObjectFieldSelector message. Does not implicitly {@link k8s.io.api.core.v1.ObjectFieldSelector.verify|verify} messages.
                         * @param message ObjectFieldSelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IObjectFieldSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ObjectFieldSelector message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ObjectFieldSelector.verify|verify} messages.
                         * @param message ObjectFieldSelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IObjectFieldSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ObjectFieldSelector message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ObjectFieldSelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ObjectFieldSelector;

                        /**
                         * Decodes an ObjectFieldSelector message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ObjectFieldSelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ObjectFieldSelector;

                        /**
                         * Verifies an ObjectFieldSelector message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an ObjectFieldSelector message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ObjectFieldSelector
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ObjectFieldSelector;

                        /**
                         * Creates a plain object from an ObjectFieldSelector message. Also converts values to other types if specified.
                         * @param message ObjectFieldSelector
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ObjectFieldSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ObjectFieldSelector to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an ObjectReference. */
                    interface IObjectReference {

                        /** ObjectReference kind */
                        kind?: (string|null);

                        /** ObjectReference namespace */
                        namespace?: (string|null);

                        /** ObjectReference name */
                        name?: (string|null);

                        /** ObjectReference uid */
                        uid?: (string|null);

                        /** ObjectReference apiVersion */
                        apiVersion?: (string|null);

                        /** ObjectReference resourceVersion */
                        resourceVersion?: (string|null);

                        /** ObjectReference fieldPath */
                        fieldPath?: (string|null);
                    }

                    /** Represents an ObjectReference. */
                    class ObjectReference implements IObjectReference {

                        /**
                         * Constructs a new ObjectReference.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IObjectReference);

                        /** ObjectReference kind. */
                        public kind: string;

                        /** ObjectReference namespace. */
                        public namespace: string;

                        /** ObjectReference name. */
                        public name: string;

                        /** ObjectReference uid. */
                        public uid: string;

                        /** ObjectReference apiVersion. */
                        public apiVersion: string;

                        /** ObjectReference resourceVersion. */
                        public resourceVersion: string;

                        /** ObjectReference fieldPath. */
                        public fieldPath: string;

                        /**
                         * Creates a new ObjectReference instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ObjectReference instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IObjectReference): k8s.io.api.core.v1.ObjectReference;

                        /**
                         * Encodes the specified ObjectReference message. Does not implicitly {@link k8s.io.api.core.v1.ObjectReference.verify|verify} messages.
                         * @param message ObjectReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IObjectReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ObjectReference message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ObjectReference.verify|verify} messages.
                         * @param message ObjectReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IObjectReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ObjectReference message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ObjectReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ObjectReference;

                        /**
                         * Decodes an ObjectReference message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ObjectReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ObjectReference;

                        /**
                         * Verifies an ObjectReference message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an ObjectReference message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ObjectReference
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ObjectReference;

                        /**
                         * Creates a plain object from an ObjectReference message. Also converts values to other types if specified.
                         * @param message ObjectReference
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ObjectReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ObjectReference to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolume. */
                    interface IPersistentVolume {

                        /** PersistentVolume metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PersistentVolume spec */
                        spec?: (k8s.io.api.core.v1.IPersistentVolumeSpec|null);

                        /** PersistentVolume status */
                        status?: (k8s.io.api.core.v1.IPersistentVolumeStatus|null);
                    }

                    /** Represents a PersistentVolume. */
                    class PersistentVolume implements IPersistentVolume {

                        /**
                         * Constructs a new PersistentVolume.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolume);

                        /** PersistentVolume metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PersistentVolume spec. */
                        public spec?: (k8s.io.api.core.v1.IPersistentVolumeSpec|null);

                        /** PersistentVolume status. */
                        public status?: (k8s.io.api.core.v1.IPersistentVolumeStatus|null);

                        /**
                         * Creates a new PersistentVolume instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolume instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolume): k8s.io.api.core.v1.PersistentVolume;

                        /**
                         * Encodes the specified PersistentVolume message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolume.verify|verify} messages.
                         * @param message PersistentVolume message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolume, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolume message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolume.verify|verify} messages.
                         * @param message PersistentVolume message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolume, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolume message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolume
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolume;

                        /**
                         * Decodes a PersistentVolume message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolume
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolume;

                        /**
                         * Verifies a PersistentVolume message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolume message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolume
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolume;

                        /**
                         * Creates a plain object from a PersistentVolume message. Also converts values to other types if specified.
                         * @param message PersistentVolume
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolume, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolume to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeClaim. */
                    interface IPersistentVolumeClaim {

                        /** PersistentVolumeClaim metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PersistentVolumeClaim spec */
                        spec?: (k8s.io.api.core.v1.IPersistentVolumeClaimSpec|null);

                        /** PersistentVolumeClaim status */
                        status?: (k8s.io.api.core.v1.IPersistentVolumeClaimStatus|null);
                    }

                    /** Represents a PersistentVolumeClaim. */
                    class PersistentVolumeClaim implements IPersistentVolumeClaim {

                        /**
                         * Constructs a new PersistentVolumeClaim.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeClaim);

                        /** PersistentVolumeClaim metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PersistentVolumeClaim spec. */
                        public spec?: (k8s.io.api.core.v1.IPersistentVolumeClaimSpec|null);

                        /** PersistentVolumeClaim status. */
                        public status?: (k8s.io.api.core.v1.IPersistentVolumeClaimStatus|null);

                        /**
                         * Creates a new PersistentVolumeClaim instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeClaim instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeClaim): k8s.io.api.core.v1.PersistentVolumeClaim;

                        /**
                         * Encodes the specified PersistentVolumeClaim message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaim.verify|verify} messages.
                         * @param message PersistentVolumeClaim message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeClaim, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeClaim message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaim.verify|verify} messages.
                         * @param message PersistentVolumeClaim message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeClaim, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeClaim message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeClaim
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeClaim;

                        /**
                         * Decodes a PersistentVolumeClaim message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeClaim
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeClaim;

                        /**
                         * Verifies a PersistentVolumeClaim message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeClaim message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeClaim
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeClaim;

                        /**
                         * Creates a plain object from a PersistentVolumeClaim message. Also converts values to other types if specified.
                         * @param message PersistentVolumeClaim
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeClaim, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeClaim to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeClaimCondition. */
                    interface IPersistentVolumeClaimCondition {

                        /** PersistentVolumeClaimCondition type */
                        type?: (string|null);

                        /** PersistentVolumeClaimCondition status */
                        status?: (string|null);

                        /** PersistentVolumeClaimCondition lastProbeTime */
                        lastProbeTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PersistentVolumeClaimCondition lastTransitionTime */
                        lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PersistentVolumeClaimCondition reason */
                        reason?: (string|null);

                        /** PersistentVolumeClaimCondition message */
                        message?: (string|null);
                    }

                    /** Represents a PersistentVolumeClaimCondition. */
                    class PersistentVolumeClaimCondition implements IPersistentVolumeClaimCondition {

                        /**
                         * Constructs a new PersistentVolumeClaimCondition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimCondition);

                        /** PersistentVolumeClaimCondition type. */
                        public type: string;

                        /** PersistentVolumeClaimCondition status. */
                        public status: string;

                        /** PersistentVolumeClaimCondition lastProbeTime. */
                        public lastProbeTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PersistentVolumeClaimCondition lastTransitionTime. */
                        public lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PersistentVolumeClaimCondition reason. */
                        public reason: string;

                        /** PersistentVolumeClaimCondition message. */
                        public message: string;

                        /**
                         * Creates a new PersistentVolumeClaimCondition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeClaimCondition instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimCondition): k8s.io.api.core.v1.PersistentVolumeClaimCondition;

                        /**
                         * Encodes the specified PersistentVolumeClaimCondition message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimCondition.verify|verify} messages.
                         * @param message PersistentVolumeClaimCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeClaimCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeClaimCondition message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimCondition.verify|verify} messages.
                         * @param message PersistentVolumeClaimCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeClaimCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeClaimCondition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeClaimCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeClaimCondition;

                        /**
                         * Decodes a PersistentVolumeClaimCondition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeClaimCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeClaimCondition;

                        /**
                         * Verifies a PersistentVolumeClaimCondition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeClaimCondition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeClaimCondition
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeClaimCondition;

                        /**
                         * Creates a plain object from a PersistentVolumeClaimCondition message. Also converts values to other types if specified.
                         * @param message PersistentVolumeClaimCondition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeClaimCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeClaimCondition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeClaimList. */
                    interface IPersistentVolumeClaimList {

                        /** PersistentVolumeClaimList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** PersistentVolumeClaimList items */
                        items?: (k8s.io.api.core.v1.IPersistentVolumeClaim[]|null);
                    }

                    /** Represents a PersistentVolumeClaimList. */
                    class PersistentVolumeClaimList implements IPersistentVolumeClaimList {

                        /**
                         * Constructs a new PersistentVolumeClaimList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimList);

                        /** PersistentVolumeClaimList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** PersistentVolumeClaimList items. */
                        public items: k8s.io.api.core.v1.IPersistentVolumeClaim[];

                        /**
                         * Creates a new PersistentVolumeClaimList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeClaimList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimList): k8s.io.api.core.v1.PersistentVolumeClaimList;

                        /**
                         * Encodes the specified PersistentVolumeClaimList message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimList.verify|verify} messages.
                         * @param message PersistentVolumeClaimList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeClaimList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeClaimList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimList.verify|verify} messages.
                         * @param message PersistentVolumeClaimList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeClaimList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeClaimList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeClaimList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeClaimList;

                        /**
                         * Decodes a PersistentVolumeClaimList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeClaimList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeClaimList;

                        /**
                         * Verifies a PersistentVolumeClaimList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeClaimList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeClaimList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeClaimList;

                        /**
                         * Creates a plain object from a PersistentVolumeClaimList message. Also converts values to other types if specified.
                         * @param message PersistentVolumeClaimList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeClaimList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeClaimList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeClaimSpec. */
                    interface IPersistentVolumeClaimSpec {

                        /** PersistentVolumeClaimSpec accessModes */
                        accessModes?: (string[]|null);

                        /** PersistentVolumeClaimSpec selector */
                        selector?: (k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector|null);

                        /** PersistentVolumeClaimSpec resources */
                        resources?: (k8s.io.api.core.v1.IResourceRequirements|null);

                        /** PersistentVolumeClaimSpec volumeName */
                        volumeName?: (string|null);

                        /** PersistentVolumeClaimSpec storageClassName */
                        storageClassName?: (string|null);

                        /** PersistentVolumeClaimSpec volumeMode */
                        volumeMode?: (string|null);

                        /** PersistentVolumeClaimSpec dataSource */
                        dataSource?: (k8s.io.api.core.v1.ITypedLocalObjectReference|null);
                    }

                    /** Represents a PersistentVolumeClaimSpec. */
                    class PersistentVolumeClaimSpec implements IPersistentVolumeClaimSpec {

                        /**
                         * Constructs a new PersistentVolumeClaimSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimSpec);

                        /** PersistentVolumeClaimSpec accessModes. */
                        public accessModes: string[];

                        /** PersistentVolumeClaimSpec selector. */
                        public selector?: (k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector|null);

                        /** PersistentVolumeClaimSpec resources. */
                        public resources?: (k8s.io.api.core.v1.IResourceRequirements|null);

                        /** PersistentVolumeClaimSpec volumeName. */
                        public volumeName: string;

                        /** PersistentVolumeClaimSpec storageClassName. */
                        public storageClassName: string;

                        /** PersistentVolumeClaimSpec volumeMode. */
                        public volumeMode: string;

                        /** PersistentVolumeClaimSpec dataSource. */
                        public dataSource?: (k8s.io.api.core.v1.ITypedLocalObjectReference|null);

                        /**
                         * Creates a new PersistentVolumeClaimSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeClaimSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimSpec): k8s.io.api.core.v1.PersistentVolumeClaimSpec;

                        /**
                         * Encodes the specified PersistentVolumeClaimSpec message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimSpec.verify|verify} messages.
                         * @param message PersistentVolumeClaimSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeClaimSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeClaimSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimSpec.verify|verify} messages.
                         * @param message PersistentVolumeClaimSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeClaimSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeClaimSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeClaimSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeClaimSpec;

                        /**
                         * Decodes a PersistentVolumeClaimSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeClaimSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeClaimSpec;

                        /**
                         * Verifies a PersistentVolumeClaimSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeClaimSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeClaimSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeClaimSpec;

                        /**
                         * Creates a plain object from a PersistentVolumeClaimSpec message. Also converts values to other types if specified.
                         * @param message PersistentVolumeClaimSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeClaimSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeClaimSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeClaimStatus. */
                    interface IPersistentVolumeClaimStatus {

                        /** PersistentVolumeClaimStatus phase */
                        phase?: (string|null);

                        /** PersistentVolumeClaimStatus accessModes */
                        accessModes?: (string[]|null);

                        /** PersistentVolumeClaimStatus capacity */
                        capacity?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** PersistentVolumeClaimStatus conditions */
                        conditions?: (k8s.io.api.core.v1.IPersistentVolumeClaimCondition[]|null);
                    }

                    /** Represents a PersistentVolumeClaimStatus. */
                    class PersistentVolumeClaimStatus implements IPersistentVolumeClaimStatus {

                        /**
                         * Constructs a new PersistentVolumeClaimStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimStatus);

                        /** PersistentVolumeClaimStatus phase. */
                        public phase: string;

                        /** PersistentVolumeClaimStatus accessModes. */
                        public accessModes: string[];

                        /** PersistentVolumeClaimStatus capacity. */
                        public capacity: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** PersistentVolumeClaimStatus conditions. */
                        public conditions: k8s.io.api.core.v1.IPersistentVolumeClaimCondition[];

                        /**
                         * Creates a new PersistentVolumeClaimStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeClaimStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimStatus): k8s.io.api.core.v1.PersistentVolumeClaimStatus;

                        /**
                         * Encodes the specified PersistentVolumeClaimStatus message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimStatus.verify|verify} messages.
                         * @param message PersistentVolumeClaimStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeClaimStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeClaimStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimStatus.verify|verify} messages.
                         * @param message PersistentVolumeClaimStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeClaimStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeClaimStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeClaimStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeClaimStatus;

                        /**
                         * Decodes a PersistentVolumeClaimStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeClaimStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeClaimStatus;

                        /**
                         * Verifies a PersistentVolumeClaimStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeClaimStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeClaimStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeClaimStatus;

                        /**
                         * Creates a plain object from a PersistentVolumeClaimStatus message. Also converts values to other types if specified.
                         * @param message PersistentVolumeClaimStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeClaimStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeClaimStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeClaimTemplate. */
                    interface IPersistentVolumeClaimTemplate {

                        /** PersistentVolumeClaimTemplate metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PersistentVolumeClaimTemplate spec */
                        spec?: (k8s.io.api.core.v1.IPersistentVolumeClaimSpec|null);
                    }

                    /** Represents a PersistentVolumeClaimTemplate. */
                    class PersistentVolumeClaimTemplate implements IPersistentVolumeClaimTemplate {

                        /**
                         * Constructs a new PersistentVolumeClaimTemplate.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimTemplate);

                        /** PersistentVolumeClaimTemplate metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PersistentVolumeClaimTemplate spec. */
                        public spec?: (k8s.io.api.core.v1.IPersistentVolumeClaimSpec|null);

                        /**
                         * Creates a new PersistentVolumeClaimTemplate instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeClaimTemplate instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimTemplate): k8s.io.api.core.v1.PersistentVolumeClaimTemplate;

                        /**
                         * Encodes the specified PersistentVolumeClaimTemplate message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimTemplate.verify|verify} messages.
                         * @param message PersistentVolumeClaimTemplate message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeClaimTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeClaimTemplate message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimTemplate.verify|verify} messages.
                         * @param message PersistentVolumeClaimTemplate message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeClaimTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeClaimTemplate message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeClaimTemplate
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeClaimTemplate;

                        /**
                         * Decodes a PersistentVolumeClaimTemplate message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeClaimTemplate
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeClaimTemplate;

                        /**
                         * Verifies a PersistentVolumeClaimTemplate message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeClaimTemplate message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeClaimTemplate
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeClaimTemplate;

                        /**
                         * Creates a plain object from a PersistentVolumeClaimTemplate message. Also converts values to other types if specified.
                         * @param message PersistentVolumeClaimTemplate
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeClaimTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeClaimTemplate to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeClaimVolumeSource. */
                    interface IPersistentVolumeClaimVolumeSource {

                        /** PersistentVolumeClaimVolumeSource claimName */
                        claimName?: (string|null);

                        /** PersistentVolumeClaimVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a PersistentVolumeClaimVolumeSource. */
                    class PersistentVolumeClaimVolumeSource implements IPersistentVolumeClaimVolumeSource {

                        /**
                         * Constructs a new PersistentVolumeClaimVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimVolumeSource);

                        /** PersistentVolumeClaimVolumeSource claimName. */
                        public claimName: string;

                        /** PersistentVolumeClaimVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new PersistentVolumeClaimVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeClaimVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeClaimVolumeSource): k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource;

                        /**
                         * Encodes the specified PersistentVolumeClaimVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource.verify|verify} messages.
                         * @param message PersistentVolumeClaimVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeClaimVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeClaimVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource.verify|verify} messages.
                         * @param message PersistentVolumeClaimVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeClaimVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeClaimVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeClaimVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource;

                        /**
                         * Decodes a PersistentVolumeClaimVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeClaimVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource;

                        /**
                         * Verifies a PersistentVolumeClaimVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeClaimVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeClaimVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource;

                        /**
                         * Creates a plain object from a PersistentVolumeClaimVolumeSource message. Also converts values to other types if specified.
                         * @param message PersistentVolumeClaimVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeClaimVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeList. */
                    interface IPersistentVolumeList {

                        /** PersistentVolumeList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** PersistentVolumeList items */
                        items?: (k8s.io.api.core.v1.IPersistentVolume[]|null);
                    }

                    /** Represents a PersistentVolumeList. */
                    class PersistentVolumeList implements IPersistentVolumeList {

                        /**
                         * Constructs a new PersistentVolumeList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeList);

                        /** PersistentVolumeList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** PersistentVolumeList items. */
                        public items: k8s.io.api.core.v1.IPersistentVolume[];

                        /**
                         * Creates a new PersistentVolumeList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeList): k8s.io.api.core.v1.PersistentVolumeList;

                        /**
                         * Encodes the specified PersistentVolumeList message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeList.verify|verify} messages.
                         * @param message PersistentVolumeList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeList.verify|verify} messages.
                         * @param message PersistentVolumeList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeList;

                        /**
                         * Decodes a PersistentVolumeList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeList;

                        /**
                         * Verifies a PersistentVolumeList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeList;

                        /**
                         * Creates a plain object from a PersistentVolumeList message. Also converts values to other types if specified.
                         * @param message PersistentVolumeList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeSource. */
                    interface IPersistentVolumeSource {

                        /** PersistentVolumeSource gcePersistentDisk */
                        gcePersistentDisk?: (k8s.io.api.core.v1.IGCEPersistentDiskVolumeSource|null);

                        /** PersistentVolumeSource awsElasticBlockStore */
                        awsElasticBlockStore?: (k8s.io.api.core.v1.IAWSElasticBlockStoreVolumeSource|null);

                        /** PersistentVolumeSource hostPath */
                        hostPath?: (k8s.io.api.core.v1.IHostPathVolumeSource|null);

                        /** PersistentVolumeSource glusterfs */
                        glusterfs?: (k8s.io.api.core.v1.IGlusterfsPersistentVolumeSource|null);

                        /** PersistentVolumeSource nfs */
                        nfs?: (k8s.io.api.core.v1.INFSVolumeSource|null);

                        /** PersistentVolumeSource rbd */
                        rbd?: (k8s.io.api.core.v1.IRBDPersistentVolumeSource|null);

                        /** PersistentVolumeSource iscsi */
                        iscsi?: (k8s.io.api.core.v1.IISCSIPersistentVolumeSource|null);

                        /** PersistentVolumeSource cinder */
                        cinder?: (k8s.io.api.core.v1.ICinderPersistentVolumeSource|null);

                        /** PersistentVolumeSource cephfs */
                        cephfs?: (k8s.io.api.core.v1.ICephFSPersistentVolumeSource|null);

                        /** PersistentVolumeSource fc */
                        fc?: (k8s.io.api.core.v1.IFCVolumeSource|null);

                        /** PersistentVolumeSource flocker */
                        flocker?: (k8s.io.api.core.v1.IFlockerVolumeSource|null);

                        /** PersistentVolumeSource flexVolume */
                        flexVolume?: (k8s.io.api.core.v1.IFlexPersistentVolumeSource|null);

                        /** PersistentVolumeSource azureFile */
                        azureFile?: (k8s.io.api.core.v1.IAzureFilePersistentVolumeSource|null);

                        /** PersistentVolumeSource vsphereVolume */
                        vsphereVolume?: (k8s.io.api.core.v1.IVsphereVirtualDiskVolumeSource|null);

                        /** PersistentVolumeSource quobyte */
                        quobyte?: (k8s.io.api.core.v1.IQuobyteVolumeSource|null);

                        /** PersistentVolumeSource azureDisk */
                        azureDisk?: (k8s.io.api.core.v1.IAzureDiskVolumeSource|null);

                        /** PersistentVolumeSource photonPersistentDisk */
                        photonPersistentDisk?: (k8s.io.api.core.v1.IPhotonPersistentDiskVolumeSource|null);

                        /** PersistentVolumeSource portworxVolume */
                        portworxVolume?: (k8s.io.api.core.v1.IPortworxVolumeSource|null);

                        /** PersistentVolumeSource scaleIO */
                        scaleIO?: (k8s.io.api.core.v1.IScaleIOPersistentVolumeSource|null);

                        /** PersistentVolumeSource local */
                        local?: (k8s.io.api.core.v1.ILocalVolumeSource|null);

                        /** PersistentVolumeSource storageos */
                        storageos?: (k8s.io.api.core.v1.IStorageOSPersistentVolumeSource|null);

                        /** PersistentVolumeSource csi */
                        csi?: (k8s.io.api.core.v1.ICSIPersistentVolumeSource|null);
                    }

                    /** Represents a PersistentVolumeSource. */
                    class PersistentVolumeSource implements IPersistentVolumeSource {

                        /**
                         * Constructs a new PersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeSource);

                        /** PersistentVolumeSource gcePersistentDisk. */
                        public gcePersistentDisk?: (k8s.io.api.core.v1.IGCEPersistentDiskVolumeSource|null);

                        /** PersistentVolumeSource awsElasticBlockStore. */
                        public awsElasticBlockStore?: (k8s.io.api.core.v1.IAWSElasticBlockStoreVolumeSource|null);

                        /** PersistentVolumeSource hostPath. */
                        public hostPath?: (k8s.io.api.core.v1.IHostPathVolumeSource|null);

                        /** PersistentVolumeSource glusterfs. */
                        public glusterfs?: (k8s.io.api.core.v1.IGlusterfsPersistentVolumeSource|null);

                        /** PersistentVolumeSource nfs. */
                        public nfs?: (k8s.io.api.core.v1.INFSVolumeSource|null);

                        /** PersistentVolumeSource rbd. */
                        public rbd?: (k8s.io.api.core.v1.IRBDPersistentVolumeSource|null);

                        /** PersistentVolumeSource iscsi. */
                        public iscsi?: (k8s.io.api.core.v1.IISCSIPersistentVolumeSource|null);

                        /** PersistentVolumeSource cinder. */
                        public cinder?: (k8s.io.api.core.v1.ICinderPersistentVolumeSource|null);

                        /** PersistentVolumeSource cephfs. */
                        public cephfs?: (k8s.io.api.core.v1.ICephFSPersistentVolumeSource|null);

                        /** PersistentVolumeSource fc. */
                        public fc?: (k8s.io.api.core.v1.IFCVolumeSource|null);

                        /** PersistentVolumeSource flocker. */
                        public flocker?: (k8s.io.api.core.v1.IFlockerVolumeSource|null);

                        /** PersistentVolumeSource flexVolume. */
                        public flexVolume?: (k8s.io.api.core.v1.IFlexPersistentVolumeSource|null);

                        /** PersistentVolumeSource azureFile. */
                        public azureFile?: (k8s.io.api.core.v1.IAzureFilePersistentVolumeSource|null);

                        /** PersistentVolumeSource vsphereVolume. */
                        public vsphereVolume?: (k8s.io.api.core.v1.IVsphereVirtualDiskVolumeSource|null);

                        /** PersistentVolumeSource quobyte. */
                        public quobyte?: (k8s.io.api.core.v1.IQuobyteVolumeSource|null);

                        /** PersistentVolumeSource azureDisk. */
                        public azureDisk?: (k8s.io.api.core.v1.IAzureDiskVolumeSource|null);

                        /** PersistentVolumeSource photonPersistentDisk. */
                        public photonPersistentDisk?: (k8s.io.api.core.v1.IPhotonPersistentDiskVolumeSource|null);

                        /** PersistentVolumeSource portworxVolume. */
                        public portworxVolume?: (k8s.io.api.core.v1.IPortworxVolumeSource|null);

                        /** PersistentVolumeSource scaleIO. */
                        public scaleIO?: (k8s.io.api.core.v1.IScaleIOPersistentVolumeSource|null);

                        /** PersistentVolumeSource local. */
                        public local?: (k8s.io.api.core.v1.ILocalVolumeSource|null);

                        /** PersistentVolumeSource storageos. */
                        public storageos?: (k8s.io.api.core.v1.IStorageOSPersistentVolumeSource|null);

                        /** PersistentVolumeSource csi. */
                        public csi?: (k8s.io.api.core.v1.ICSIPersistentVolumeSource|null);

                        /**
                         * Creates a new PersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeSource): k8s.io.api.core.v1.PersistentVolumeSource;

                        /**
                         * Encodes the specified PersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeSource.verify|verify} messages.
                         * @param message PersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeSource.verify|verify} messages.
                         * @param message PersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeSource;

                        /**
                         * Decodes a PersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeSource;

                        /**
                         * Verifies a PersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeSource;

                        /**
                         * Creates a plain object from a PersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message PersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeSpec. */
                    interface IPersistentVolumeSpec {

                        /** PersistentVolumeSpec capacity */
                        capacity?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** PersistentVolumeSpec persistentVolumeSource */
                        persistentVolumeSource?: (k8s.io.api.core.v1.IPersistentVolumeSource|null);

                        /** PersistentVolumeSpec accessModes */
                        accessModes?: (string[]|null);

                        /** PersistentVolumeSpec claimRef */
                        claimRef?: (k8s.io.api.core.v1.IObjectReference|null);

                        /** PersistentVolumeSpec persistentVolumeReclaimPolicy */
                        persistentVolumeReclaimPolicy?: (string|null);

                        /** PersistentVolumeSpec storageClassName */
                        storageClassName?: (string|null);

                        /** PersistentVolumeSpec mountOptions */
                        mountOptions?: (string[]|null);

                        /** PersistentVolumeSpec volumeMode */
                        volumeMode?: (string|null);

                        /** PersistentVolumeSpec nodeAffinity */
                        nodeAffinity?: (k8s.io.api.core.v1.IVolumeNodeAffinity|null);
                    }

                    /** Represents a PersistentVolumeSpec. */
                    class PersistentVolumeSpec implements IPersistentVolumeSpec {

                        /**
                         * Constructs a new PersistentVolumeSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeSpec);

                        /** PersistentVolumeSpec capacity. */
                        public capacity: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** PersistentVolumeSpec persistentVolumeSource. */
                        public persistentVolumeSource?: (k8s.io.api.core.v1.IPersistentVolumeSource|null);

                        /** PersistentVolumeSpec accessModes. */
                        public accessModes: string[];

                        /** PersistentVolumeSpec claimRef. */
                        public claimRef?: (k8s.io.api.core.v1.IObjectReference|null);

                        /** PersistentVolumeSpec persistentVolumeReclaimPolicy. */
                        public persistentVolumeReclaimPolicy: string;

                        /** PersistentVolumeSpec storageClassName. */
                        public storageClassName: string;

                        /** PersistentVolumeSpec mountOptions. */
                        public mountOptions: string[];

                        /** PersistentVolumeSpec volumeMode. */
                        public volumeMode: string;

                        /** PersistentVolumeSpec nodeAffinity. */
                        public nodeAffinity?: (k8s.io.api.core.v1.IVolumeNodeAffinity|null);

                        /**
                         * Creates a new PersistentVolumeSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeSpec): k8s.io.api.core.v1.PersistentVolumeSpec;

                        /**
                         * Encodes the specified PersistentVolumeSpec message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeSpec.verify|verify} messages.
                         * @param message PersistentVolumeSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeSpec.verify|verify} messages.
                         * @param message PersistentVolumeSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeSpec;

                        /**
                         * Decodes a PersistentVolumeSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeSpec;

                        /**
                         * Verifies a PersistentVolumeSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeSpec;

                        /**
                         * Creates a plain object from a PersistentVolumeSpec message. Also converts values to other types if specified.
                         * @param message PersistentVolumeSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PersistentVolumeStatus. */
                    interface IPersistentVolumeStatus {

                        /** PersistentVolumeStatus phase */
                        phase?: (string|null);

                        /** PersistentVolumeStatus message */
                        message?: (string|null);

                        /** PersistentVolumeStatus reason */
                        reason?: (string|null);
                    }

                    /** Represents a PersistentVolumeStatus. */
                    class PersistentVolumeStatus implements IPersistentVolumeStatus {

                        /**
                         * Constructs a new PersistentVolumeStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPersistentVolumeStatus);

                        /** PersistentVolumeStatus phase. */
                        public phase: string;

                        /** PersistentVolumeStatus message. */
                        public message: string;

                        /** PersistentVolumeStatus reason. */
                        public reason: string;

                        /**
                         * Creates a new PersistentVolumeStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PersistentVolumeStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPersistentVolumeStatus): k8s.io.api.core.v1.PersistentVolumeStatus;

                        /**
                         * Encodes the specified PersistentVolumeStatus message. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeStatus.verify|verify} messages.
                         * @param message PersistentVolumeStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPersistentVolumeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PersistentVolumeStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PersistentVolumeStatus.verify|verify} messages.
                         * @param message PersistentVolumeStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPersistentVolumeStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PersistentVolumeStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PersistentVolumeStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PersistentVolumeStatus;

                        /**
                         * Decodes a PersistentVolumeStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PersistentVolumeStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PersistentVolumeStatus;

                        /**
                         * Verifies a PersistentVolumeStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PersistentVolumeStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PersistentVolumeStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PersistentVolumeStatus;

                        /**
                         * Creates a plain object from a PersistentVolumeStatus message. Also converts values to other types if specified.
                         * @param message PersistentVolumeStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PersistentVolumeStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PersistentVolumeStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PhotonPersistentDiskVolumeSource. */
                    interface IPhotonPersistentDiskVolumeSource {

                        /** PhotonPersistentDiskVolumeSource pdID */
                        pdID?: (string|null);

                        /** PhotonPersistentDiskVolumeSource fsType */
                        fsType?: (string|null);
                    }

                    /** Represents a PhotonPersistentDiskVolumeSource. */
                    class PhotonPersistentDiskVolumeSource implements IPhotonPersistentDiskVolumeSource {

                        /**
                         * Constructs a new PhotonPersistentDiskVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPhotonPersistentDiskVolumeSource);

                        /** PhotonPersistentDiskVolumeSource pdID. */
                        public pdID: string;

                        /** PhotonPersistentDiskVolumeSource fsType. */
                        public fsType: string;

                        /**
                         * Creates a new PhotonPersistentDiskVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PhotonPersistentDiskVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPhotonPersistentDiskVolumeSource): k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource;

                        /**
                         * Encodes the specified PhotonPersistentDiskVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource.verify|verify} messages.
                         * @param message PhotonPersistentDiskVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPhotonPersistentDiskVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PhotonPersistentDiskVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource.verify|verify} messages.
                         * @param message PhotonPersistentDiskVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPhotonPersistentDiskVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PhotonPersistentDiskVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PhotonPersistentDiskVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource;

                        /**
                         * Decodes a PhotonPersistentDiskVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PhotonPersistentDiskVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource;

                        /**
                         * Verifies a PhotonPersistentDiskVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PhotonPersistentDiskVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PhotonPersistentDiskVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource;

                        /**
                         * Creates a plain object from a PhotonPersistentDiskVolumeSource message. Also converts values to other types if specified.
                         * @param message PhotonPersistentDiskVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PhotonPersistentDiskVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Pod. */
                    interface IPod {

                        /** Pod metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Pod spec */
                        spec?: (k8s.io.api.core.v1.IPodSpec|null);

                        /** Pod status */
                        status?: (k8s.io.api.core.v1.IPodStatus|null);
                    }

                    /** Represents a Pod. */
                    class Pod implements IPod {

                        /**
                         * Constructs a new Pod.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPod);

                        /** Pod metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Pod spec. */
                        public spec?: (k8s.io.api.core.v1.IPodSpec|null);

                        /** Pod status. */
                        public status?: (k8s.io.api.core.v1.IPodStatus|null);

                        /**
                         * Creates a new Pod instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Pod instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPod): k8s.io.api.core.v1.Pod;

                        /**
                         * Encodes the specified Pod message. Does not implicitly {@link k8s.io.api.core.v1.Pod.verify|verify} messages.
                         * @param message Pod message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPod, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Pod message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Pod.verify|verify} messages.
                         * @param message Pod message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPod, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Pod message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Pod
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Pod;

                        /**
                         * Decodes a Pod message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Pod
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Pod;

                        /**
                         * Verifies a Pod message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Pod message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Pod
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Pod;

                        /**
                         * Creates a plain object from a Pod message. Also converts values to other types if specified.
                         * @param message Pod
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Pod, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Pod to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodAffinity. */
                    interface IPodAffinity {

                        /** PodAffinity requiredDuringSchedulingIgnoredDuringExecution */
                        requiredDuringSchedulingIgnoredDuringExecution?: (k8s.io.api.core.v1.IPodAffinityTerm[]|null);

                        /** PodAffinity preferredDuringSchedulingIgnoredDuringExecution */
                        preferredDuringSchedulingIgnoredDuringExecution?: (k8s.io.api.core.v1.IWeightedPodAffinityTerm[]|null);
                    }

                    /** Represents a PodAffinity. */
                    class PodAffinity implements IPodAffinity {

                        /**
                         * Constructs a new PodAffinity.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodAffinity);

                        /** PodAffinity requiredDuringSchedulingIgnoredDuringExecution. */
                        public requiredDuringSchedulingIgnoredDuringExecution: k8s.io.api.core.v1.IPodAffinityTerm[];

                        /** PodAffinity preferredDuringSchedulingIgnoredDuringExecution. */
                        public preferredDuringSchedulingIgnoredDuringExecution: k8s.io.api.core.v1.IWeightedPodAffinityTerm[];

                        /**
                         * Creates a new PodAffinity instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodAffinity instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodAffinity): k8s.io.api.core.v1.PodAffinity;

                        /**
                         * Encodes the specified PodAffinity message. Does not implicitly {@link k8s.io.api.core.v1.PodAffinity.verify|verify} messages.
                         * @param message PodAffinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodAffinity message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodAffinity.verify|verify} messages.
                         * @param message PodAffinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodAffinity message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodAffinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodAffinity;

                        /**
                         * Decodes a PodAffinity message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodAffinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodAffinity;

                        /**
                         * Verifies a PodAffinity message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodAffinity message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodAffinity
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodAffinity;

                        /**
                         * Creates a plain object from a PodAffinity message. Also converts values to other types if specified.
                         * @param message PodAffinity
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodAffinity to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodAffinityTerm. */
                    interface IPodAffinityTerm {

                        /** PodAffinityTerm labelSelector */
                        labelSelector?: (k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector|null);

                        /** PodAffinityTerm namespaces */
                        namespaces?: (string[]|null);

                        /** PodAffinityTerm topologyKey */
                        topologyKey?: (string|null);
                    }

                    /** Represents a PodAffinityTerm. */
                    class PodAffinityTerm implements IPodAffinityTerm {

                        /**
                         * Constructs a new PodAffinityTerm.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodAffinityTerm);

                        /** PodAffinityTerm labelSelector. */
                        public labelSelector?: (k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector|null);

                        /** PodAffinityTerm namespaces. */
                        public namespaces: string[];

                        /** PodAffinityTerm topologyKey. */
                        public topologyKey: string;

                        /**
                         * Creates a new PodAffinityTerm instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodAffinityTerm instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodAffinityTerm): k8s.io.api.core.v1.PodAffinityTerm;

                        /**
                         * Encodes the specified PodAffinityTerm message. Does not implicitly {@link k8s.io.api.core.v1.PodAffinityTerm.verify|verify} messages.
                         * @param message PodAffinityTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodAffinityTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodAffinityTerm message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodAffinityTerm.verify|verify} messages.
                         * @param message PodAffinityTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodAffinityTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodAffinityTerm message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodAffinityTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodAffinityTerm;

                        /**
                         * Decodes a PodAffinityTerm message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodAffinityTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodAffinityTerm;

                        /**
                         * Verifies a PodAffinityTerm message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodAffinityTerm message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodAffinityTerm
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodAffinityTerm;

                        /**
                         * Creates a plain object from a PodAffinityTerm message. Also converts values to other types if specified.
                         * @param message PodAffinityTerm
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodAffinityTerm, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodAffinityTerm to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodAntiAffinity. */
                    interface IPodAntiAffinity {

                        /** PodAntiAffinity requiredDuringSchedulingIgnoredDuringExecution */
                        requiredDuringSchedulingIgnoredDuringExecution?: (k8s.io.api.core.v1.IPodAffinityTerm[]|null);

                        /** PodAntiAffinity preferredDuringSchedulingIgnoredDuringExecution */
                        preferredDuringSchedulingIgnoredDuringExecution?: (k8s.io.api.core.v1.IWeightedPodAffinityTerm[]|null);
                    }

                    /** Represents a PodAntiAffinity. */
                    class PodAntiAffinity implements IPodAntiAffinity {

                        /**
                         * Constructs a new PodAntiAffinity.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodAntiAffinity);

                        /** PodAntiAffinity requiredDuringSchedulingIgnoredDuringExecution. */
                        public requiredDuringSchedulingIgnoredDuringExecution: k8s.io.api.core.v1.IPodAffinityTerm[];

                        /** PodAntiAffinity preferredDuringSchedulingIgnoredDuringExecution. */
                        public preferredDuringSchedulingIgnoredDuringExecution: k8s.io.api.core.v1.IWeightedPodAffinityTerm[];

                        /**
                         * Creates a new PodAntiAffinity instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodAntiAffinity instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodAntiAffinity): k8s.io.api.core.v1.PodAntiAffinity;

                        /**
                         * Encodes the specified PodAntiAffinity message. Does not implicitly {@link k8s.io.api.core.v1.PodAntiAffinity.verify|verify} messages.
                         * @param message PodAntiAffinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodAntiAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodAntiAffinity message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodAntiAffinity.verify|verify} messages.
                         * @param message PodAntiAffinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodAntiAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodAntiAffinity message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodAntiAffinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodAntiAffinity;

                        /**
                         * Decodes a PodAntiAffinity message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodAntiAffinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodAntiAffinity;

                        /**
                         * Verifies a PodAntiAffinity message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodAntiAffinity message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodAntiAffinity
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodAntiAffinity;

                        /**
                         * Creates a plain object from a PodAntiAffinity message. Also converts values to other types if specified.
                         * @param message PodAntiAffinity
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodAntiAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodAntiAffinity to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodAttachOptions. */
                    interface IPodAttachOptions {

                        /** PodAttachOptions stdin */
                        stdin?: (boolean|null);

                        /** PodAttachOptions stdout */
                        stdout?: (boolean|null);

                        /** PodAttachOptions stderr */
                        stderr?: (boolean|null);

                        /** PodAttachOptions tty */
                        tty?: (boolean|null);

                        /** PodAttachOptions container */
                        container?: (string|null);
                    }

                    /** Represents a PodAttachOptions. */
                    class PodAttachOptions implements IPodAttachOptions {

                        /**
                         * Constructs a new PodAttachOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodAttachOptions);

                        /** PodAttachOptions stdin. */
                        public stdin: boolean;

                        /** PodAttachOptions stdout. */
                        public stdout: boolean;

                        /** PodAttachOptions stderr. */
                        public stderr: boolean;

                        /** PodAttachOptions tty. */
                        public tty: boolean;

                        /** PodAttachOptions container. */
                        public container: string;

                        /**
                         * Creates a new PodAttachOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodAttachOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodAttachOptions): k8s.io.api.core.v1.PodAttachOptions;

                        /**
                         * Encodes the specified PodAttachOptions message. Does not implicitly {@link k8s.io.api.core.v1.PodAttachOptions.verify|verify} messages.
                         * @param message PodAttachOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodAttachOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodAttachOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodAttachOptions.verify|verify} messages.
                         * @param message PodAttachOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodAttachOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodAttachOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodAttachOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodAttachOptions;

                        /**
                         * Decodes a PodAttachOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodAttachOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodAttachOptions;

                        /**
                         * Verifies a PodAttachOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodAttachOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodAttachOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodAttachOptions;

                        /**
                         * Creates a plain object from a PodAttachOptions message. Also converts values to other types if specified.
                         * @param message PodAttachOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodAttachOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodAttachOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodCondition. */
                    interface IPodCondition {

                        /** PodCondition type */
                        type?: (string|null);

                        /** PodCondition status */
                        status?: (string|null);

                        /** PodCondition lastProbeTime */
                        lastProbeTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PodCondition lastTransitionTime */
                        lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PodCondition reason */
                        reason?: (string|null);

                        /** PodCondition message */
                        message?: (string|null);
                    }

                    /** Represents a PodCondition. */
                    class PodCondition implements IPodCondition {

                        /**
                         * Constructs a new PodCondition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodCondition);

                        /** PodCondition type. */
                        public type: string;

                        /** PodCondition status. */
                        public status: string;

                        /** PodCondition lastProbeTime. */
                        public lastProbeTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PodCondition lastTransitionTime. */
                        public lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PodCondition reason. */
                        public reason: string;

                        /** PodCondition message. */
                        public message: string;

                        /**
                         * Creates a new PodCondition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodCondition instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodCondition): k8s.io.api.core.v1.PodCondition;

                        /**
                         * Encodes the specified PodCondition message. Does not implicitly {@link k8s.io.api.core.v1.PodCondition.verify|verify} messages.
                         * @param message PodCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodCondition message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodCondition.verify|verify} messages.
                         * @param message PodCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodCondition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodCondition;

                        /**
                         * Decodes a PodCondition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodCondition;

                        /**
                         * Verifies a PodCondition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodCondition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodCondition
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodCondition;

                        /**
                         * Creates a plain object from a PodCondition message. Also converts values to other types if specified.
                         * @param message PodCondition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodCondition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodDNSConfig. */
                    interface IPodDNSConfig {

                        /** PodDNSConfig nameservers */
                        nameservers?: (string[]|null);

                        /** PodDNSConfig searches */
                        searches?: (string[]|null);

                        /** PodDNSConfig options */
                        options?: (k8s.io.api.core.v1.IPodDNSConfigOption[]|null);
                    }

                    /** Represents a PodDNSConfig. */
                    class PodDNSConfig implements IPodDNSConfig {

                        /**
                         * Constructs a new PodDNSConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodDNSConfig);

                        /** PodDNSConfig nameservers. */
                        public nameservers: string[];

                        /** PodDNSConfig searches. */
                        public searches: string[];

                        /** PodDNSConfig options. */
                        public options: k8s.io.api.core.v1.IPodDNSConfigOption[];

                        /**
                         * Creates a new PodDNSConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodDNSConfig instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodDNSConfig): k8s.io.api.core.v1.PodDNSConfig;

                        /**
                         * Encodes the specified PodDNSConfig message. Does not implicitly {@link k8s.io.api.core.v1.PodDNSConfig.verify|verify} messages.
                         * @param message PodDNSConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodDNSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodDNSConfig message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodDNSConfig.verify|verify} messages.
                         * @param message PodDNSConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodDNSConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodDNSConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodDNSConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodDNSConfig;

                        /**
                         * Decodes a PodDNSConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodDNSConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodDNSConfig;

                        /**
                         * Verifies a PodDNSConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodDNSConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodDNSConfig
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodDNSConfig;

                        /**
                         * Creates a plain object from a PodDNSConfig message. Also converts values to other types if specified.
                         * @param message PodDNSConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodDNSConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodDNSConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodDNSConfigOption. */
                    interface IPodDNSConfigOption {

                        /** PodDNSConfigOption name */
                        name?: (string|null);

                        /** PodDNSConfigOption value */
                        value?: (string|null);
                    }

                    /** Represents a PodDNSConfigOption. */
                    class PodDNSConfigOption implements IPodDNSConfigOption {

                        /**
                         * Constructs a new PodDNSConfigOption.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodDNSConfigOption);

                        /** PodDNSConfigOption name. */
                        public name: string;

                        /** PodDNSConfigOption value. */
                        public value: string;

                        /**
                         * Creates a new PodDNSConfigOption instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodDNSConfigOption instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodDNSConfigOption): k8s.io.api.core.v1.PodDNSConfigOption;

                        /**
                         * Encodes the specified PodDNSConfigOption message. Does not implicitly {@link k8s.io.api.core.v1.PodDNSConfigOption.verify|verify} messages.
                         * @param message PodDNSConfigOption message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodDNSConfigOption, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodDNSConfigOption message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodDNSConfigOption.verify|verify} messages.
                         * @param message PodDNSConfigOption message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodDNSConfigOption, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodDNSConfigOption message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodDNSConfigOption
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodDNSConfigOption;

                        /**
                         * Decodes a PodDNSConfigOption message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodDNSConfigOption
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodDNSConfigOption;

                        /**
                         * Verifies a PodDNSConfigOption message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodDNSConfigOption message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodDNSConfigOption
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodDNSConfigOption;

                        /**
                         * Creates a plain object from a PodDNSConfigOption message. Also converts values to other types if specified.
                         * @param message PodDNSConfigOption
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodDNSConfigOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodDNSConfigOption to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodExecOptions. */
                    interface IPodExecOptions {

                        /** PodExecOptions stdin */
                        stdin?: (boolean|null);

                        /** PodExecOptions stdout */
                        stdout?: (boolean|null);

                        /** PodExecOptions stderr */
                        stderr?: (boolean|null);

                        /** PodExecOptions tty */
                        tty?: (boolean|null);

                        /** PodExecOptions container */
                        container?: (string|null);

                        /** PodExecOptions command */
                        command?: (string[]|null);
                    }

                    /** Represents a PodExecOptions. */
                    class PodExecOptions implements IPodExecOptions {

                        /**
                         * Constructs a new PodExecOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodExecOptions);

                        /** PodExecOptions stdin. */
                        public stdin: boolean;

                        /** PodExecOptions stdout. */
                        public stdout: boolean;

                        /** PodExecOptions stderr. */
                        public stderr: boolean;

                        /** PodExecOptions tty. */
                        public tty: boolean;

                        /** PodExecOptions container. */
                        public container: string;

                        /** PodExecOptions command. */
                        public command: string[];

                        /**
                         * Creates a new PodExecOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodExecOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodExecOptions): k8s.io.api.core.v1.PodExecOptions;

                        /**
                         * Encodes the specified PodExecOptions message. Does not implicitly {@link k8s.io.api.core.v1.PodExecOptions.verify|verify} messages.
                         * @param message PodExecOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodExecOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodExecOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodExecOptions.verify|verify} messages.
                         * @param message PodExecOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodExecOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodExecOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodExecOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodExecOptions;

                        /**
                         * Decodes a PodExecOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodExecOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodExecOptions;

                        /**
                         * Verifies a PodExecOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodExecOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodExecOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodExecOptions;

                        /**
                         * Creates a plain object from a PodExecOptions message. Also converts values to other types if specified.
                         * @param message PodExecOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodExecOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodExecOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodIP. */
                    interface IPodIP {

                        /** PodIP ip */
                        ip?: (string|null);
                    }

                    /** Represents a PodIP. */
                    class PodIP implements IPodIP {

                        /**
                         * Constructs a new PodIP.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodIP);

                        /** PodIP ip. */
                        public ip: string;

                        /**
                         * Creates a new PodIP instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodIP instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodIP): k8s.io.api.core.v1.PodIP;

                        /**
                         * Encodes the specified PodIP message. Does not implicitly {@link k8s.io.api.core.v1.PodIP.verify|verify} messages.
                         * @param message PodIP message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodIP, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodIP message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodIP.verify|verify} messages.
                         * @param message PodIP message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodIP, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodIP message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodIP
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodIP;

                        /**
                         * Decodes a PodIP message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodIP
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodIP;

                        /**
                         * Verifies a PodIP message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodIP message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodIP
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodIP;

                        /**
                         * Creates a plain object from a PodIP message. Also converts values to other types if specified.
                         * @param message PodIP
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodIP, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodIP to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodList. */
                    interface IPodList {

                        /** PodList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** PodList items */
                        items?: (k8s.io.api.core.v1.IPod[]|null);
                    }

                    /** Represents a PodList. */
                    class PodList implements IPodList {

                        /**
                         * Constructs a new PodList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodList);

                        /** PodList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** PodList items. */
                        public items: k8s.io.api.core.v1.IPod[];

                        /**
                         * Creates a new PodList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodList): k8s.io.api.core.v1.PodList;

                        /**
                         * Encodes the specified PodList message. Does not implicitly {@link k8s.io.api.core.v1.PodList.verify|verify} messages.
                         * @param message PodList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodList.verify|verify} messages.
                         * @param message PodList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodList;

                        /**
                         * Decodes a PodList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodList;

                        /**
                         * Verifies a PodList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodList;

                        /**
                         * Creates a plain object from a PodList message. Also converts values to other types if specified.
                         * @param message PodList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodLogOptions. */
                    interface IPodLogOptions {

                        /** PodLogOptions container */
                        container?: (string|null);

                        /** PodLogOptions follow */
                        follow?: (boolean|null);

                        /** PodLogOptions previous */
                        previous?: (boolean|null);

                        /** PodLogOptions sinceSeconds */
                        sinceSeconds?: (number|Long|null);

                        /** PodLogOptions sinceTime */
                        sinceTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PodLogOptions timestamps */
                        timestamps?: (boolean|null);

                        /** PodLogOptions tailLines */
                        tailLines?: (number|Long|null);

                        /** PodLogOptions limitBytes */
                        limitBytes?: (number|Long|null);

                        /** PodLogOptions insecureSkipTLSVerifyBackend */
                        insecureSkipTLSVerifyBackend?: (boolean|null);
                    }

                    /** Represents a PodLogOptions. */
                    class PodLogOptions implements IPodLogOptions {

                        /**
                         * Constructs a new PodLogOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodLogOptions);

                        /** PodLogOptions container. */
                        public container: string;

                        /** PodLogOptions follow. */
                        public follow: boolean;

                        /** PodLogOptions previous. */
                        public previous: boolean;

                        /** PodLogOptions sinceSeconds. */
                        public sinceSeconds: (number|Long);

                        /** PodLogOptions sinceTime. */
                        public sinceTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PodLogOptions timestamps. */
                        public timestamps: boolean;

                        /** PodLogOptions tailLines. */
                        public tailLines: (number|Long);

                        /** PodLogOptions limitBytes. */
                        public limitBytes: (number|Long);

                        /** PodLogOptions insecureSkipTLSVerifyBackend. */
                        public insecureSkipTLSVerifyBackend: boolean;

                        /**
                         * Creates a new PodLogOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodLogOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodLogOptions): k8s.io.api.core.v1.PodLogOptions;

                        /**
                         * Encodes the specified PodLogOptions message. Does not implicitly {@link k8s.io.api.core.v1.PodLogOptions.verify|verify} messages.
                         * @param message PodLogOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodLogOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodLogOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodLogOptions.verify|verify} messages.
                         * @param message PodLogOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodLogOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodLogOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodLogOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodLogOptions;

                        /**
                         * Decodes a PodLogOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodLogOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodLogOptions;

                        /**
                         * Verifies a PodLogOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodLogOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodLogOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodLogOptions;

                        /**
                         * Creates a plain object from a PodLogOptions message. Also converts values to other types if specified.
                         * @param message PodLogOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodLogOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodLogOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodPortForwardOptions. */
                    interface IPodPortForwardOptions {

                        /** PodPortForwardOptions ports */
                        ports?: (number[]|null);
                    }

                    /** Represents a PodPortForwardOptions. */
                    class PodPortForwardOptions implements IPodPortForwardOptions {

                        /**
                         * Constructs a new PodPortForwardOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodPortForwardOptions);

                        /** PodPortForwardOptions ports. */
                        public ports: number[];

                        /**
                         * Creates a new PodPortForwardOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodPortForwardOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodPortForwardOptions): k8s.io.api.core.v1.PodPortForwardOptions;

                        /**
                         * Encodes the specified PodPortForwardOptions message. Does not implicitly {@link k8s.io.api.core.v1.PodPortForwardOptions.verify|verify} messages.
                         * @param message PodPortForwardOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodPortForwardOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodPortForwardOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodPortForwardOptions.verify|verify} messages.
                         * @param message PodPortForwardOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodPortForwardOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodPortForwardOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodPortForwardOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodPortForwardOptions;

                        /**
                         * Decodes a PodPortForwardOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodPortForwardOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodPortForwardOptions;

                        /**
                         * Verifies a PodPortForwardOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodPortForwardOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodPortForwardOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodPortForwardOptions;

                        /**
                         * Creates a plain object from a PodPortForwardOptions message. Also converts values to other types if specified.
                         * @param message PodPortForwardOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodPortForwardOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodPortForwardOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodProxyOptions. */
                    interface IPodProxyOptions {

                        /** PodProxyOptions path */
                        path?: (string|null);
                    }

                    /** Represents a PodProxyOptions. */
                    class PodProxyOptions implements IPodProxyOptions {

                        /**
                         * Constructs a new PodProxyOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodProxyOptions);

                        /** PodProxyOptions path. */
                        public path: string;

                        /**
                         * Creates a new PodProxyOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodProxyOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodProxyOptions): k8s.io.api.core.v1.PodProxyOptions;

                        /**
                         * Encodes the specified PodProxyOptions message. Does not implicitly {@link k8s.io.api.core.v1.PodProxyOptions.verify|verify} messages.
                         * @param message PodProxyOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodProxyOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodProxyOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodProxyOptions.verify|verify} messages.
                         * @param message PodProxyOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodProxyOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodProxyOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodProxyOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodProxyOptions;

                        /**
                         * Decodes a PodProxyOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodProxyOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodProxyOptions;

                        /**
                         * Verifies a PodProxyOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodProxyOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodProxyOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodProxyOptions;

                        /**
                         * Creates a plain object from a PodProxyOptions message. Also converts values to other types if specified.
                         * @param message PodProxyOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodProxyOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodProxyOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodReadinessGate. */
                    interface IPodReadinessGate {

                        /** PodReadinessGate conditionType */
                        conditionType?: (string|null);
                    }

                    /** Represents a PodReadinessGate. */
                    class PodReadinessGate implements IPodReadinessGate {

                        /**
                         * Constructs a new PodReadinessGate.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodReadinessGate);

                        /** PodReadinessGate conditionType. */
                        public conditionType: string;

                        /**
                         * Creates a new PodReadinessGate instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodReadinessGate instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodReadinessGate): k8s.io.api.core.v1.PodReadinessGate;

                        /**
                         * Encodes the specified PodReadinessGate message. Does not implicitly {@link k8s.io.api.core.v1.PodReadinessGate.verify|verify} messages.
                         * @param message PodReadinessGate message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodReadinessGate, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodReadinessGate message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodReadinessGate.verify|verify} messages.
                         * @param message PodReadinessGate message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodReadinessGate, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodReadinessGate message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodReadinessGate
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodReadinessGate;

                        /**
                         * Decodes a PodReadinessGate message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodReadinessGate
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodReadinessGate;

                        /**
                         * Verifies a PodReadinessGate message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodReadinessGate message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodReadinessGate
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodReadinessGate;

                        /**
                         * Creates a plain object from a PodReadinessGate message. Also converts values to other types if specified.
                         * @param message PodReadinessGate
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodReadinessGate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodReadinessGate to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodSecurityContext. */
                    interface IPodSecurityContext {

                        /** PodSecurityContext seLinuxOptions */
                        seLinuxOptions?: (k8s.io.api.core.v1.ISELinuxOptions|null);

                        /** PodSecurityContext windowsOptions */
                        windowsOptions?: (k8s.io.api.core.v1.IWindowsSecurityContextOptions|null);

                        /** PodSecurityContext runAsUser */
                        runAsUser?: (number|Long|null);

                        /** PodSecurityContext runAsGroup */
                        runAsGroup?: (number|Long|null);

                        /** PodSecurityContext runAsNonRoot */
                        runAsNonRoot?: (boolean|null);

                        /** PodSecurityContext supplementalGroups */
                        supplementalGroups?: ((number|Long)[]|null);

                        /** PodSecurityContext fsGroup */
                        fsGroup?: (number|Long|null);

                        /** PodSecurityContext sysctls */
                        sysctls?: (k8s.io.api.core.v1.ISysctl[]|null);

                        /** PodSecurityContext fsGroupChangePolicy */
                        fsGroupChangePolicy?: (string|null);

                        /** PodSecurityContext seccompProfile */
                        seccompProfile?: (k8s.io.api.core.v1.ISeccompProfile|null);
                    }

                    /** Represents a PodSecurityContext. */
                    class PodSecurityContext implements IPodSecurityContext {

                        /**
                         * Constructs a new PodSecurityContext.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodSecurityContext);

                        /** PodSecurityContext seLinuxOptions. */
                        public seLinuxOptions?: (k8s.io.api.core.v1.ISELinuxOptions|null);

                        /** PodSecurityContext windowsOptions. */
                        public windowsOptions?: (k8s.io.api.core.v1.IWindowsSecurityContextOptions|null);

                        /** PodSecurityContext runAsUser. */
                        public runAsUser: (number|Long);

                        /** PodSecurityContext runAsGroup. */
                        public runAsGroup: (number|Long);

                        /** PodSecurityContext runAsNonRoot. */
                        public runAsNonRoot: boolean;

                        /** PodSecurityContext supplementalGroups. */
                        public supplementalGroups: (number|Long)[];

                        /** PodSecurityContext fsGroup. */
                        public fsGroup: (number|Long);

                        /** PodSecurityContext sysctls. */
                        public sysctls: k8s.io.api.core.v1.ISysctl[];

                        /** PodSecurityContext fsGroupChangePolicy. */
                        public fsGroupChangePolicy: string;

                        /** PodSecurityContext seccompProfile. */
                        public seccompProfile?: (k8s.io.api.core.v1.ISeccompProfile|null);

                        /**
                         * Creates a new PodSecurityContext instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodSecurityContext instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodSecurityContext): k8s.io.api.core.v1.PodSecurityContext;

                        /**
                         * Encodes the specified PodSecurityContext message. Does not implicitly {@link k8s.io.api.core.v1.PodSecurityContext.verify|verify} messages.
                         * @param message PodSecurityContext message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodSecurityContext, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodSecurityContext message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodSecurityContext.verify|verify} messages.
                         * @param message PodSecurityContext message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodSecurityContext, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodSecurityContext message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodSecurityContext
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodSecurityContext;

                        /**
                         * Decodes a PodSecurityContext message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodSecurityContext
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodSecurityContext;

                        /**
                         * Verifies a PodSecurityContext message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodSecurityContext message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodSecurityContext
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodSecurityContext;

                        /**
                         * Creates a plain object from a PodSecurityContext message. Also converts values to other types if specified.
                         * @param message PodSecurityContext
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodSecurityContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodSecurityContext to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodSignature. */
                    interface IPodSignature {

                        /** PodSignature podController */
                        podController?: (k8s.io.apimachinery.pkg.apis.meta.v1.IOwnerReference|null);
                    }

                    /** Represents a PodSignature. */
                    class PodSignature implements IPodSignature {

                        /**
                         * Constructs a new PodSignature.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodSignature);

                        /** PodSignature podController. */
                        public podController?: (k8s.io.apimachinery.pkg.apis.meta.v1.IOwnerReference|null);

                        /**
                         * Creates a new PodSignature instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodSignature instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodSignature): k8s.io.api.core.v1.PodSignature;

                        /**
                         * Encodes the specified PodSignature message. Does not implicitly {@link k8s.io.api.core.v1.PodSignature.verify|verify} messages.
                         * @param message PodSignature message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodSignature, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodSignature message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodSignature.verify|verify} messages.
                         * @param message PodSignature message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodSignature, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodSignature message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodSignature
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodSignature;

                        /**
                         * Decodes a PodSignature message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodSignature
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodSignature;

                        /**
                         * Verifies a PodSignature message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodSignature message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodSignature
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodSignature;

                        /**
                         * Creates a plain object from a PodSignature message. Also converts values to other types if specified.
                         * @param message PodSignature
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodSignature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodSignature to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodSpec. */
                    interface IPodSpec {

                        /** PodSpec volumes */
                        volumes?: (k8s.io.api.core.v1.IVolume[]|null);

                        /** PodSpec initContainers */
                        initContainers?: (k8s.io.api.core.v1.IContainer[]|null);

                        /** PodSpec containers */
                        containers?: (k8s.io.api.core.v1.IContainer[]|null);

                        /** PodSpec ephemeralContainers */
                        ephemeralContainers?: (k8s.io.api.core.v1.IEphemeralContainer[]|null);

                        /** PodSpec restartPolicy */
                        restartPolicy?: (string|null);

                        /** PodSpec terminationGracePeriodSeconds */
                        terminationGracePeriodSeconds?: (number|Long|null);

                        /** PodSpec activeDeadlineSeconds */
                        activeDeadlineSeconds?: (number|Long|null);

                        /** PodSpec dnsPolicy */
                        dnsPolicy?: (string|null);

                        /** PodSpec nodeSelector */
                        nodeSelector?: ({ [k: string]: string }|null);

                        /** PodSpec serviceAccountName */
                        serviceAccountName?: (string|null);

                        /** PodSpec serviceAccount */
                        serviceAccount?: (string|null);

                        /** PodSpec automountServiceAccountToken */
                        automountServiceAccountToken?: (boolean|null);

                        /** PodSpec nodeName */
                        nodeName?: (string|null);

                        /** PodSpec hostNetwork */
                        hostNetwork?: (boolean|null);

                        /** PodSpec hostPID */
                        hostPID?: (boolean|null);

                        /** PodSpec hostIPC */
                        hostIPC?: (boolean|null);

                        /** PodSpec shareProcessNamespace */
                        shareProcessNamespace?: (boolean|null);

                        /** PodSpec securityContext */
                        securityContext?: (k8s.io.api.core.v1.IPodSecurityContext|null);

                        /** PodSpec imagePullSecrets */
                        imagePullSecrets?: (k8s.io.api.core.v1.ILocalObjectReference[]|null);

                        /** PodSpec hostname */
                        hostname?: (string|null);

                        /** PodSpec subdomain */
                        subdomain?: (string|null);

                        /** PodSpec affinity */
                        affinity?: (k8s.io.api.core.v1.IAffinity|null);

                        /** PodSpec schedulerName */
                        schedulerName?: (string|null);

                        /** PodSpec tolerations */
                        tolerations?: (k8s.io.api.core.v1.IToleration[]|null);

                        /** PodSpec hostAliases */
                        hostAliases?: (k8s.io.api.core.v1.IHostAlias[]|null);

                        /** PodSpec priorityClassName */
                        priorityClassName?: (string|null);

                        /** PodSpec priority */
                        priority?: (number|null);

                        /** PodSpec dnsConfig */
                        dnsConfig?: (k8s.io.api.core.v1.IPodDNSConfig|null);

                        /** PodSpec readinessGates */
                        readinessGates?: (k8s.io.api.core.v1.IPodReadinessGate[]|null);

                        /** PodSpec runtimeClassName */
                        runtimeClassName?: (string|null);

                        /** PodSpec enableServiceLinks */
                        enableServiceLinks?: (boolean|null);

                        /** PodSpec preemptionPolicy */
                        preemptionPolicy?: (string|null);

                        /** PodSpec overhead */
                        overhead?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** PodSpec topologySpreadConstraints */
                        topologySpreadConstraints?: (k8s.io.api.core.v1.ITopologySpreadConstraint[]|null);

                        /** PodSpec setHostnameAsFQDN */
                        setHostnameAsFQDN?: (boolean|null);
                    }

                    /** Represents a PodSpec. */
                    class PodSpec implements IPodSpec {

                        /**
                         * Constructs a new PodSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodSpec);

                        /** PodSpec volumes. */
                        public volumes: k8s.io.api.core.v1.IVolume[];

                        /** PodSpec initContainers. */
                        public initContainers: k8s.io.api.core.v1.IContainer[];

                        /** PodSpec containers. */
                        public containers: k8s.io.api.core.v1.IContainer[];

                        /** PodSpec ephemeralContainers. */
                        public ephemeralContainers: k8s.io.api.core.v1.IEphemeralContainer[];

                        /** PodSpec restartPolicy. */
                        public restartPolicy: string;

                        /** PodSpec terminationGracePeriodSeconds. */
                        public terminationGracePeriodSeconds: (number|Long);

                        /** PodSpec activeDeadlineSeconds. */
                        public activeDeadlineSeconds: (number|Long);

                        /** PodSpec dnsPolicy. */
                        public dnsPolicy: string;

                        /** PodSpec nodeSelector. */
                        public nodeSelector: { [k: string]: string };

                        /** PodSpec serviceAccountName. */
                        public serviceAccountName: string;

                        /** PodSpec serviceAccount. */
                        public serviceAccount: string;

                        /** PodSpec automountServiceAccountToken. */
                        public automountServiceAccountToken: boolean;

                        /** PodSpec nodeName. */
                        public nodeName: string;

                        /** PodSpec hostNetwork. */
                        public hostNetwork: boolean;

                        /** PodSpec hostPID. */
                        public hostPID: boolean;

                        /** PodSpec hostIPC. */
                        public hostIPC: boolean;

                        /** PodSpec shareProcessNamespace. */
                        public shareProcessNamespace: boolean;

                        /** PodSpec securityContext. */
                        public securityContext?: (k8s.io.api.core.v1.IPodSecurityContext|null);

                        /** PodSpec imagePullSecrets. */
                        public imagePullSecrets: k8s.io.api.core.v1.ILocalObjectReference[];

                        /** PodSpec hostname. */
                        public hostname: string;

                        /** PodSpec subdomain. */
                        public subdomain: string;

                        /** PodSpec affinity. */
                        public affinity?: (k8s.io.api.core.v1.IAffinity|null);

                        /** PodSpec schedulerName. */
                        public schedulerName: string;

                        /** PodSpec tolerations. */
                        public tolerations: k8s.io.api.core.v1.IToleration[];

                        /** PodSpec hostAliases. */
                        public hostAliases: k8s.io.api.core.v1.IHostAlias[];

                        /** PodSpec priorityClassName. */
                        public priorityClassName: string;

                        /** PodSpec priority. */
                        public priority: number;

                        /** PodSpec dnsConfig. */
                        public dnsConfig?: (k8s.io.api.core.v1.IPodDNSConfig|null);

                        /** PodSpec readinessGates. */
                        public readinessGates: k8s.io.api.core.v1.IPodReadinessGate[];

                        /** PodSpec runtimeClassName. */
                        public runtimeClassName: string;

                        /** PodSpec enableServiceLinks. */
                        public enableServiceLinks: boolean;

                        /** PodSpec preemptionPolicy. */
                        public preemptionPolicy: string;

                        /** PodSpec overhead. */
                        public overhead: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** PodSpec topologySpreadConstraints. */
                        public topologySpreadConstraints: k8s.io.api.core.v1.ITopologySpreadConstraint[];

                        /** PodSpec setHostnameAsFQDN. */
                        public setHostnameAsFQDN: boolean;

                        /**
                         * Creates a new PodSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodSpec): k8s.io.api.core.v1.PodSpec;

                        /**
                         * Encodes the specified PodSpec message. Does not implicitly {@link k8s.io.api.core.v1.PodSpec.verify|verify} messages.
                         * @param message PodSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodSpec.verify|verify} messages.
                         * @param message PodSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodSpec;

                        /**
                         * Decodes a PodSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodSpec;

                        /**
                         * Verifies a PodSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodSpec;

                        /**
                         * Creates a plain object from a PodSpec message. Also converts values to other types if specified.
                         * @param message PodSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodStatus. */
                    interface IPodStatus {

                        /** PodStatus phase */
                        phase?: (string|null);

                        /** PodStatus conditions */
                        conditions?: (k8s.io.api.core.v1.IPodCondition[]|null);

                        /** PodStatus message */
                        message?: (string|null);

                        /** PodStatus reason */
                        reason?: (string|null);

                        /** PodStatus nominatedNodeName */
                        nominatedNodeName?: (string|null);

                        /** PodStatus hostIP */
                        hostIP?: (string|null);

                        /** PodStatus podIP */
                        podIP?: (string|null);

                        /** PodStatus podIPs */
                        podIPs?: (k8s.io.api.core.v1.IPodIP[]|null);

                        /** PodStatus startTime */
                        startTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PodStatus initContainerStatuses */
                        initContainerStatuses?: (k8s.io.api.core.v1.IContainerStatus[]|null);

                        /** PodStatus containerStatuses */
                        containerStatuses?: (k8s.io.api.core.v1.IContainerStatus[]|null);

                        /** PodStatus qosClass */
                        qosClass?: (string|null);

                        /** PodStatus ephemeralContainerStatuses */
                        ephemeralContainerStatuses?: (k8s.io.api.core.v1.IContainerStatus[]|null);
                    }

                    /** Represents a PodStatus. */
                    class PodStatus implements IPodStatus {

                        /**
                         * Constructs a new PodStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodStatus);

                        /** PodStatus phase. */
                        public phase: string;

                        /** PodStatus conditions. */
                        public conditions: k8s.io.api.core.v1.IPodCondition[];

                        /** PodStatus message. */
                        public message: string;

                        /** PodStatus reason. */
                        public reason: string;

                        /** PodStatus nominatedNodeName. */
                        public nominatedNodeName: string;

                        /** PodStatus hostIP. */
                        public hostIP: string;

                        /** PodStatus podIP. */
                        public podIP: string;

                        /** PodStatus podIPs. */
                        public podIPs: k8s.io.api.core.v1.IPodIP[];

                        /** PodStatus startTime. */
                        public startTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PodStatus initContainerStatuses. */
                        public initContainerStatuses: k8s.io.api.core.v1.IContainerStatus[];

                        /** PodStatus containerStatuses. */
                        public containerStatuses: k8s.io.api.core.v1.IContainerStatus[];

                        /** PodStatus qosClass. */
                        public qosClass: string;

                        /** PodStatus ephemeralContainerStatuses. */
                        public ephemeralContainerStatuses: k8s.io.api.core.v1.IContainerStatus[];

                        /**
                         * Creates a new PodStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodStatus): k8s.io.api.core.v1.PodStatus;

                        /**
                         * Encodes the specified PodStatus message. Does not implicitly {@link k8s.io.api.core.v1.PodStatus.verify|verify} messages.
                         * @param message PodStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodStatus.verify|verify} messages.
                         * @param message PodStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodStatus;

                        /**
                         * Decodes a PodStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodStatus;

                        /**
                         * Verifies a PodStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodStatus;

                        /**
                         * Creates a plain object from a PodStatus message. Also converts values to other types if specified.
                         * @param message PodStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodStatusResult. */
                    interface IPodStatusResult {

                        /** PodStatusResult metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PodStatusResult status */
                        status?: (k8s.io.api.core.v1.IPodStatus|null);
                    }

                    /** Represents a PodStatusResult. */
                    class PodStatusResult implements IPodStatusResult {

                        /**
                         * Constructs a new PodStatusResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodStatusResult);

                        /** PodStatusResult metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PodStatusResult status. */
                        public status?: (k8s.io.api.core.v1.IPodStatus|null);

                        /**
                         * Creates a new PodStatusResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodStatusResult instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodStatusResult): k8s.io.api.core.v1.PodStatusResult;

                        /**
                         * Encodes the specified PodStatusResult message. Does not implicitly {@link k8s.io.api.core.v1.PodStatusResult.verify|verify} messages.
                         * @param message PodStatusResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodStatusResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodStatusResult message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodStatusResult.verify|verify} messages.
                         * @param message PodStatusResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodStatusResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodStatusResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodStatusResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodStatusResult;

                        /**
                         * Decodes a PodStatusResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodStatusResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodStatusResult;

                        /**
                         * Verifies a PodStatusResult message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodStatusResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodStatusResult
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodStatusResult;

                        /**
                         * Creates a plain object from a PodStatusResult message. Also converts values to other types if specified.
                         * @param message PodStatusResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodStatusResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodStatusResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodTemplate. */
                    interface IPodTemplate {

                        /** PodTemplate metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PodTemplate template */
                        template?: (k8s.io.api.core.v1.IPodTemplateSpec|null);
                    }

                    /** Represents a PodTemplate. */
                    class PodTemplate implements IPodTemplate {

                        /**
                         * Constructs a new PodTemplate.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodTemplate);

                        /** PodTemplate metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PodTemplate template. */
                        public template?: (k8s.io.api.core.v1.IPodTemplateSpec|null);

                        /**
                         * Creates a new PodTemplate instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodTemplate instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodTemplate): k8s.io.api.core.v1.PodTemplate;

                        /**
                         * Encodes the specified PodTemplate message. Does not implicitly {@link k8s.io.api.core.v1.PodTemplate.verify|verify} messages.
                         * @param message PodTemplate message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodTemplate message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodTemplate.verify|verify} messages.
                         * @param message PodTemplate message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodTemplate message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodTemplate
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodTemplate;

                        /**
                         * Decodes a PodTemplate message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodTemplate
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodTemplate;

                        /**
                         * Verifies a PodTemplate message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodTemplate message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodTemplate
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodTemplate;

                        /**
                         * Creates a plain object from a PodTemplate message. Also converts values to other types if specified.
                         * @param message PodTemplate
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodTemplate to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodTemplateList. */
                    interface IPodTemplateList {

                        /** PodTemplateList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** PodTemplateList items */
                        items?: (k8s.io.api.core.v1.IPodTemplate[]|null);
                    }

                    /** Represents a PodTemplateList. */
                    class PodTemplateList implements IPodTemplateList {

                        /**
                         * Constructs a new PodTemplateList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodTemplateList);

                        /** PodTemplateList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** PodTemplateList items. */
                        public items: k8s.io.api.core.v1.IPodTemplate[];

                        /**
                         * Creates a new PodTemplateList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodTemplateList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodTemplateList): k8s.io.api.core.v1.PodTemplateList;

                        /**
                         * Encodes the specified PodTemplateList message. Does not implicitly {@link k8s.io.api.core.v1.PodTemplateList.verify|verify} messages.
                         * @param message PodTemplateList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodTemplateList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodTemplateList.verify|verify} messages.
                         * @param message PodTemplateList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodTemplateList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodTemplateList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodTemplateList;

                        /**
                         * Decodes a PodTemplateList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodTemplateList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodTemplateList;

                        /**
                         * Verifies a PodTemplateList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodTemplateList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodTemplateList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodTemplateList;

                        /**
                         * Creates a plain object from a PodTemplateList message. Also converts values to other types if specified.
                         * @param message PodTemplateList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodTemplateList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodTemplateList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PodTemplateSpec. */
                    interface IPodTemplateSpec {

                        /** PodTemplateSpec metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PodTemplateSpec spec */
                        spec?: (k8s.io.api.core.v1.IPodSpec|null);
                    }

                    /** Represents a PodTemplateSpec. */
                    class PodTemplateSpec implements IPodTemplateSpec {

                        /**
                         * Constructs a new PodTemplateSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPodTemplateSpec);

                        /** PodTemplateSpec metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** PodTemplateSpec spec. */
                        public spec?: (k8s.io.api.core.v1.IPodSpec|null);

                        /**
                         * Creates a new PodTemplateSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PodTemplateSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPodTemplateSpec): k8s.io.api.core.v1.PodTemplateSpec;

                        /**
                         * Encodes the specified PodTemplateSpec message. Does not implicitly {@link k8s.io.api.core.v1.PodTemplateSpec.verify|verify} messages.
                         * @param message PodTemplateSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPodTemplateSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PodTemplateSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PodTemplateSpec.verify|verify} messages.
                         * @param message PodTemplateSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPodTemplateSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PodTemplateSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PodTemplateSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PodTemplateSpec;

                        /**
                         * Decodes a PodTemplateSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PodTemplateSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PodTemplateSpec;

                        /**
                         * Verifies a PodTemplateSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PodTemplateSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PodTemplateSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PodTemplateSpec;

                        /**
                         * Creates a plain object from a PodTemplateSpec message. Also converts values to other types if specified.
                         * @param message PodTemplateSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PodTemplateSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PodTemplateSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PortStatus. */
                    interface IPortStatus {

                        /** PortStatus port */
                        port?: (number|null);

                        /** PortStatus protocol */
                        protocol?: (string|null);

                        /** PortStatus error */
                        error?: (string|null);
                    }

                    /** Represents a PortStatus. */
                    class PortStatus implements IPortStatus {

                        /**
                         * Constructs a new PortStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPortStatus);

                        /** PortStatus port. */
                        public port: number;

                        /** PortStatus protocol. */
                        public protocol: string;

                        /** PortStatus error. */
                        public error: string;

                        /**
                         * Creates a new PortStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PortStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPortStatus): k8s.io.api.core.v1.PortStatus;

                        /**
                         * Encodes the specified PortStatus message. Does not implicitly {@link k8s.io.api.core.v1.PortStatus.verify|verify} messages.
                         * @param message PortStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPortStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PortStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PortStatus.verify|verify} messages.
                         * @param message PortStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPortStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PortStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PortStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PortStatus;

                        /**
                         * Decodes a PortStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PortStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PortStatus;

                        /**
                         * Verifies a PortStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PortStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PortStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PortStatus;

                        /**
                         * Creates a plain object from a PortStatus message. Also converts values to other types if specified.
                         * @param message PortStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PortStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PortStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PortworxVolumeSource. */
                    interface IPortworxVolumeSource {

                        /** PortworxVolumeSource volumeID */
                        volumeID?: (string|null);

                        /** PortworxVolumeSource fsType */
                        fsType?: (string|null);

                        /** PortworxVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a PortworxVolumeSource. */
                    class PortworxVolumeSource implements IPortworxVolumeSource {

                        /**
                         * Constructs a new PortworxVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPortworxVolumeSource);

                        /** PortworxVolumeSource volumeID. */
                        public volumeID: string;

                        /** PortworxVolumeSource fsType. */
                        public fsType: string;

                        /** PortworxVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new PortworxVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PortworxVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPortworxVolumeSource): k8s.io.api.core.v1.PortworxVolumeSource;

                        /**
                         * Encodes the specified PortworxVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.PortworxVolumeSource.verify|verify} messages.
                         * @param message PortworxVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPortworxVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PortworxVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PortworxVolumeSource.verify|verify} messages.
                         * @param message PortworxVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPortworxVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PortworxVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PortworxVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PortworxVolumeSource;

                        /**
                         * Decodes a PortworxVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PortworxVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PortworxVolumeSource;

                        /**
                         * Verifies a PortworxVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PortworxVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PortworxVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PortworxVolumeSource;

                        /**
                         * Creates a plain object from a PortworxVolumeSource message. Also converts values to other types if specified.
                         * @param message PortworxVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PortworxVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PortworxVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Preconditions. */
                    interface IPreconditions {

                        /** Preconditions uid */
                        uid?: (string|null);
                    }

                    /** Represents a Preconditions. */
                    class Preconditions implements IPreconditions {

                        /**
                         * Constructs a new Preconditions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPreconditions);

                        /** Preconditions uid. */
                        public uid: string;

                        /**
                         * Creates a new Preconditions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Preconditions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPreconditions): k8s.io.api.core.v1.Preconditions;

                        /**
                         * Encodes the specified Preconditions message. Does not implicitly {@link k8s.io.api.core.v1.Preconditions.verify|verify} messages.
                         * @param message Preconditions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPreconditions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Preconditions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Preconditions.verify|verify} messages.
                         * @param message Preconditions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPreconditions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Preconditions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Preconditions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Preconditions;

                        /**
                         * Decodes a Preconditions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Preconditions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Preconditions;

                        /**
                         * Verifies a Preconditions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Preconditions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Preconditions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Preconditions;

                        /**
                         * Creates a plain object from a Preconditions message. Also converts values to other types if specified.
                         * @param message Preconditions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Preconditions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Preconditions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PreferAvoidPodsEntry. */
                    interface IPreferAvoidPodsEntry {

                        /** PreferAvoidPodsEntry podSignature */
                        podSignature?: (k8s.io.api.core.v1.IPodSignature|null);

                        /** PreferAvoidPodsEntry evictionTime */
                        evictionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PreferAvoidPodsEntry reason */
                        reason?: (string|null);

                        /** PreferAvoidPodsEntry message */
                        message?: (string|null);
                    }

                    /** Represents a PreferAvoidPodsEntry. */
                    class PreferAvoidPodsEntry implements IPreferAvoidPodsEntry {

                        /**
                         * Constructs a new PreferAvoidPodsEntry.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPreferAvoidPodsEntry);

                        /** PreferAvoidPodsEntry podSignature. */
                        public podSignature?: (k8s.io.api.core.v1.IPodSignature|null);

                        /** PreferAvoidPodsEntry evictionTime. */
                        public evictionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** PreferAvoidPodsEntry reason. */
                        public reason: string;

                        /** PreferAvoidPodsEntry message. */
                        public message: string;

                        /**
                         * Creates a new PreferAvoidPodsEntry instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PreferAvoidPodsEntry instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPreferAvoidPodsEntry): k8s.io.api.core.v1.PreferAvoidPodsEntry;

                        /**
                         * Encodes the specified PreferAvoidPodsEntry message. Does not implicitly {@link k8s.io.api.core.v1.PreferAvoidPodsEntry.verify|verify} messages.
                         * @param message PreferAvoidPodsEntry message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPreferAvoidPodsEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PreferAvoidPodsEntry message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PreferAvoidPodsEntry.verify|verify} messages.
                         * @param message PreferAvoidPodsEntry message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPreferAvoidPodsEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PreferAvoidPodsEntry message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PreferAvoidPodsEntry
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PreferAvoidPodsEntry;

                        /**
                         * Decodes a PreferAvoidPodsEntry message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PreferAvoidPodsEntry
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PreferAvoidPodsEntry;

                        /**
                         * Verifies a PreferAvoidPodsEntry message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PreferAvoidPodsEntry message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PreferAvoidPodsEntry
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PreferAvoidPodsEntry;

                        /**
                         * Creates a plain object from a PreferAvoidPodsEntry message. Also converts values to other types if specified.
                         * @param message PreferAvoidPodsEntry
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PreferAvoidPodsEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PreferAvoidPodsEntry to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a PreferredSchedulingTerm. */
                    interface IPreferredSchedulingTerm {

                        /** PreferredSchedulingTerm weight */
                        weight?: (number|null);

                        /** PreferredSchedulingTerm preference */
                        preference?: (k8s.io.api.core.v1.INodeSelectorTerm|null);
                    }

                    /** Represents a PreferredSchedulingTerm. */
                    class PreferredSchedulingTerm implements IPreferredSchedulingTerm {

                        /**
                         * Constructs a new PreferredSchedulingTerm.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IPreferredSchedulingTerm);

                        /** PreferredSchedulingTerm weight. */
                        public weight: number;

                        /** PreferredSchedulingTerm preference. */
                        public preference?: (k8s.io.api.core.v1.INodeSelectorTerm|null);

                        /**
                         * Creates a new PreferredSchedulingTerm instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PreferredSchedulingTerm instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IPreferredSchedulingTerm): k8s.io.api.core.v1.PreferredSchedulingTerm;

                        /**
                         * Encodes the specified PreferredSchedulingTerm message. Does not implicitly {@link k8s.io.api.core.v1.PreferredSchedulingTerm.verify|verify} messages.
                         * @param message PreferredSchedulingTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IPreferredSchedulingTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PreferredSchedulingTerm message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.PreferredSchedulingTerm.verify|verify} messages.
                         * @param message PreferredSchedulingTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IPreferredSchedulingTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PreferredSchedulingTerm message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PreferredSchedulingTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.PreferredSchedulingTerm;

                        /**
                         * Decodes a PreferredSchedulingTerm message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PreferredSchedulingTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.PreferredSchedulingTerm;

                        /**
                         * Verifies a PreferredSchedulingTerm message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PreferredSchedulingTerm message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PreferredSchedulingTerm
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.PreferredSchedulingTerm;

                        /**
                         * Creates a plain object from a PreferredSchedulingTerm message. Also converts values to other types if specified.
                         * @param message PreferredSchedulingTerm
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.PreferredSchedulingTerm, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PreferredSchedulingTerm to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Probe. */
                    interface IProbe {

                        /** Probe handler */
                        handler?: (k8s.io.api.core.v1.IHandler|null);

                        /** Probe initialDelaySeconds */
                        initialDelaySeconds?: (number|null);

                        /** Probe timeoutSeconds */
                        timeoutSeconds?: (number|null);

                        /** Probe periodSeconds */
                        periodSeconds?: (number|null);

                        /** Probe successThreshold */
                        successThreshold?: (number|null);

                        /** Probe failureThreshold */
                        failureThreshold?: (number|null);
                    }

                    /** Represents a Probe. */
                    class Probe implements IProbe {

                        /**
                         * Constructs a new Probe.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IProbe);

                        /** Probe handler. */
                        public handler?: (k8s.io.api.core.v1.IHandler|null);

                        /** Probe initialDelaySeconds. */
                        public initialDelaySeconds: number;

                        /** Probe timeoutSeconds. */
                        public timeoutSeconds: number;

                        /** Probe periodSeconds. */
                        public periodSeconds: number;

                        /** Probe successThreshold. */
                        public successThreshold: number;

                        /** Probe failureThreshold. */
                        public failureThreshold: number;

                        /**
                         * Creates a new Probe instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Probe instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IProbe): k8s.io.api.core.v1.Probe;

                        /**
                         * Encodes the specified Probe message. Does not implicitly {@link k8s.io.api.core.v1.Probe.verify|verify} messages.
                         * @param message Probe message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IProbe, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Probe message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Probe.verify|verify} messages.
                         * @param message Probe message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IProbe, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Probe message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Probe
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Probe;

                        /**
                         * Decodes a Probe message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Probe
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Probe;

                        /**
                         * Verifies a Probe message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Probe message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Probe
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Probe;

                        /**
                         * Creates a plain object from a Probe message. Also converts values to other types if specified.
                         * @param message Probe
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Probe, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Probe to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ProjectedVolumeSource. */
                    interface IProjectedVolumeSource {

                        /** ProjectedVolumeSource sources */
                        sources?: (k8s.io.api.core.v1.IVolumeProjection[]|null);

                        /** ProjectedVolumeSource defaultMode */
                        defaultMode?: (number|null);
                    }

                    /** Represents a ProjectedVolumeSource. */
                    class ProjectedVolumeSource implements IProjectedVolumeSource {

                        /**
                         * Constructs a new ProjectedVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IProjectedVolumeSource);

                        /** ProjectedVolumeSource sources. */
                        public sources: k8s.io.api.core.v1.IVolumeProjection[];

                        /** ProjectedVolumeSource defaultMode. */
                        public defaultMode: number;

                        /**
                         * Creates a new ProjectedVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ProjectedVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IProjectedVolumeSource): k8s.io.api.core.v1.ProjectedVolumeSource;

                        /**
                         * Encodes the specified ProjectedVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.ProjectedVolumeSource.verify|verify} messages.
                         * @param message ProjectedVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IProjectedVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ProjectedVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ProjectedVolumeSource.verify|verify} messages.
                         * @param message ProjectedVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IProjectedVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ProjectedVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ProjectedVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ProjectedVolumeSource;

                        /**
                         * Decodes a ProjectedVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ProjectedVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ProjectedVolumeSource;

                        /**
                         * Verifies a ProjectedVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ProjectedVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ProjectedVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ProjectedVolumeSource;

                        /**
                         * Creates a plain object from a ProjectedVolumeSource message. Also converts values to other types if specified.
                         * @param message ProjectedVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ProjectedVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ProjectedVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a QuobyteVolumeSource. */
                    interface IQuobyteVolumeSource {

                        /** QuobyteVolumeSource registry */
                        registry?: (string|null);

                        /** QuobyteVolumeSource volume */
                        volume?: (string|null);

                        /** QuobyteVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** QuobyteVolumeSource user */
                        user?: (string|null);

                        /** QuobyteVolumeSource group */
                        group?: (string|null);

                        /** QuobyteVolumeSource tenant */
                        tenant?: (string|null);
                    }

                    /** Represents a QuobyteVolumeSource. */
                    class QuobyteVolumeSource implements IQuobyteVolumeSource {

                        /**
                         * Constructs a new QuobyteVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IQuobyteVolumeSource);

                        /** QuobyteVolumeSource registry. */
                        public registry: string;

                        /** QuobyteVolumeSource volume. */
                        public volume: string;

                        /** QuobyteVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** QuobyteVolumeSource user. */
                        public user: string;

                        /** QuobyteVolumeSource group. */
                        public group: string;

                        /** QuobyteVolumeSource tenant. */
                        public tenant: string;

                        /**
                         * Creates a new QuobyteVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns QuobyteVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IQuobyteVolumeSource): k8s.io.api.core.v1.QuobyteVolumeSource;

                        /**
                         * Encodes the specified QuobyteVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.QuobyteVolumeSource.verify|verify} messages.
                         * @param message QuobyteVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IQuobyteVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified QuobyteVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.QuobyteVolumeSource.verify|verify} messages.
                         * @param message QuobyteVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IQuobyteVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a QuobyteVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns QuobyteVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.QuobyteVolumeSource;

                        /**
                         * Decodes a QuobyteVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns QuobyteVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.QuobyteVolumeSource;

                        /**
                         * Verifies a QuobyteVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a QuobyteVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns QuobyteVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.QuobyteVolumeSource;

                        /**
                         * Creates a plain object from a QuobyteVolumeSource message. Also converts values to other types if specified.
                         * @param message QuobyteVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.QuobyteVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this QuobyteVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a RBDPersistentVolumeSource. */
                    interface IRBDPersistentVolumeSource {

                        /** RBDPersistentVolumeSource monitors */
                        monitors?: (string[]|null);

                        /** RBDPersistentVolumeSource image */
                        image?: (string|null);

                        /** RBDPersistentVolumeSource fsType */
                        fsType?: (string|null);

                        /** RBDPersistentVolumeSource pool */
                        pool?: (string|null);

                        /** RBDPersistentVolumeSource user */
                        user?: (string|null);

                        /** RBDPersistentVolumeSource keyring */
                        keyring?: (string|null);

                        /** RBDPersistentVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** RBDPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a RBDPersistentVolumeSource. */
                    class RBDPersistentVolumeSource implements IRBDPersistentVolumeSource {

                        /**
                         * Constructs a new RBDPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IRBDPersistentVolumeSource);

                        /** RBDPersistentVolumeSource monitors. */
                        public monitors: string[];

                        /** RBDPersistentVolumeSource image. */
                        public image: string;

                        /** RBDPersistentVolumeSource fsType. */
                        public fsType: string;

                        /** RBDPersistentVolumeSource pool. */
                        public pool: string;

                        /** RBDPersistentVolumeSource user. */
                        public user: string;

                        /** RBDPersistentVolumeSource keyring. */
                        public keyring: string;

                        /** RBDPersistentVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** RBDPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new RBDPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RBDPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IRBDPersistentVolumeSource): k8s.io.api.core.v1.RBDPersistentVolumeSource;

                        /**
                         * Encodes the specified RBDPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.RBDPersistentVolumeSource.verify|verify} messages.
                         * @param message RBDPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IRBDPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RBDPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.RBDPersistentVolumeSource.verify|verify} messages.
                         * @param message RBDPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IRBDPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RBDPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RBDPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.RBDPersistentVolumeSource;

                        /**
                         * Decodes a RBDPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RBDPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.RBDPersistentVolumeSource;

                        /**
                         * Verifies a RBDPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a RBDPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RBDPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.RBDPersistentVolumeSource;

                        /**
                         * Creates a plain object from a RBDPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message RBDPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.RBDPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this RBDPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a RBDVolumeSource. */
                    interface IRBDVolumeSource {

                        /** RBDVolumeSource monitors */
                        monitors?: (string[]|null);

                        /** RBDVolumeSource image */
                        image?: (string|null);

                        /** RBDVolumeSource fsType */
                        fsType?: (string|null);

                        /** RBDVolumeSource pool */
                        pool?: (string|null);

                        /** RBDVolumeSource user */
                        user?: (string|null);

                        /** RBDVolumeSource keyring */
                        keyring?: (string|null);

                        /** RBDVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** RBDVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a RBDVolumeSource. */
                    class RBDVolumeSource implements IRBDVolumeSource {

                        /**
                         * Constructs a new RBDVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IRBDVolumeSource);

                        /** RBDVolumeSource monitors. */
                        public monitors: string[];

                        /** RBDVolumeSource image. */
                        public image: string;

                        /** RBDVolumeSource fsType. */
                        public fsType: string;

                        /** RBDVolumeSource pool. */
                        public pool: string;

                        /** RBDVolumeSource user. */
                        public user: string;

                        /** RBDVolumeSource keyring. */
                        public keyring: string;

                        /** RBDVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** RBDVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new RBDVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RBDVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IRBDVolumeSource): k8s.io.api.core.v1.RBDVolumeSource;

                        /**
                         * Encodes the specified RBDVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.RBDVolumeSource.verify|verify} messages.
                         * @param message RBDVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IRBDVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RBDVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.RBDVolumeSource.verify|verify} messages.
                         * @param message RBDVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IRBDVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RBDVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RBDVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.RBDVolumeSource;

                        /**
                         * Decodes a RBDVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RBDVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.RBDVolumeSource;

                        /**
                         * Verifies a RBDVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a RBDVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RBDVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.RBDVolumeSource;

                        /**
                         * Creates a plain object from a RBDVolumeSource message. Also converts values to other types if specified.
                         * @param message RBDVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.RBDVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this RBDVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a RangeAllocation. */
                    interface IRangeAllocation {

                        /** RangeAllocation metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** RangeAllocation range */
                        range?: (string|null);

                        /** RangeAllocation data */
                        data?: (Uint8Array|null);
                    }

                    /** Represents a RangeAllocation. */
                    class RangeAllocation implements IRangeAllocation {

                        /**
                         * Constructs a new RangeAllocation.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IRangeAllocation);

                        /** RangeAllocation metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** RangeAllocation range. */
                        public range: string;

                        /** RangeAllocation data. */
                        public data: Uint8Array;

                        /**
                         * Creates a new RangeAllocation instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RangeAllocation instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IRangeAllocation): k8s.io.api.core.v1.RangeAllocation;

                        /**
                         * Encodes the specified RangeAllocation message. Does not implicitly {@link k8s.io.api.core.v1.RangeAllocation.verify|verify} messages.
                         * @param message RangeAllocation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IRangeAllocation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RangeAllocation message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.RangeAllocation.verify|verify} messages.
                         * @param message RangeAllocation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IRangeAllocation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RangeAllocation message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RangeAllocation
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.RangeAllocation;

                        /**
                         * Decodes a RangeAllocation message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RangeAllocation
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.RangeAllocation;

                        /**
                         * Verifies a RangeAllocation message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a RangeAllocation message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RangeAllocation
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.RangeAllocation;

                        /**
                         * Creates a plain object from a RangeAllocation message. Also converts values to other types if specified.
                         * @param message RangeAllocation
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.RangeAllocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this RangeAllocation to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ReplicationController. */
                    interface IReplicationController {

                        /** ReplicationController metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ReplicationController spec */
                        spec?: (k8s.io.api.core.v1.IReplicationControllerSpec|null);

                        /** ReplicationController status */
                        status?: (k8s.io.api.core.v1.IReplicationControllerStatus|null);
                    }

                    /** Represents a ReplicationController. */
                    class ReplicationController implements IReplicationController {

                        /**
                         * Constructs a new ReplicationController.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IReplicationController);

                        /** ReplicationController metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ReplicationController spec. */
                        public spec?: (k8s.io.api.core.v1.IReplicationControllerSpec|null);

                        /** ReplicationController status. */
                        public status?: (k8s.io.api.core.v1.IReplicationControllerStatus|null);

                        /**
                         * Creates a new ReplicationController instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ReplicationController instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IReplicationController): k8s.io.api.core.v1.ReplicationController;

                        /**
                         * Encodes the specified ReplicationController message. Does not implicitly {@link k8s.io.api.core.v1.ReplicationController.verify|verify} messages.
                         * @param message ReplicationController message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IReplicationController, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ReplicationController message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ReplicationController.verify|verify} messages.
                         * @param message ReplicationController message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IReplicationController, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ReplicationController message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ReplicationController
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ReplicationController;

                        /**
                         * Decodes a ReplicationController message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ReplicationController
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ReplicationController;

                        /**
                         * Verifies a ReplicationController message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ReplicationController message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ReplicationController
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ReplicationController;

                        /**
                         * Creates a plain object from a ReplicationController message. Also converts values to other types if specified.
                         * @param message ReplicationController
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ReplicationController, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ReplicationController to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ReplicationControllerCondition. */
                    interface IReplicationControllerCondition {

                        /** ReplicationControllerCondition type */
                        type?: (string|null);

                        /** ReplicationControllerCondition status */
                        status?: (string|null);

                        /** ReplicationControllerCondition lastTransitionTime */
                        lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** ReplicationControllerCondition reason */
                        reason?: (string|null);

                        /** ReplicationControllerCondition message */
                        message?: (string|null);
                    }

                    /** Represents a ReplicationControllerCondition. */
                    class ReplicationControllerCondition implements IReplicationControllerCondition {

                        /**
                         * Constructs a new ReplicationControllerCondition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IReplicationControllerCondition);

                        /** ReplicationControllerCondition type. */
                        public type: string;

                        /** ReplicationControllerCondition status. */
                        public status: string;

                        /** ReplicationControllerCondition lastTransitionTime. */
                        public lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /** ReplicationControllerCondition reason. */
                        public reason: string;

                        /** ReplicationControllerCondition message. */
                        public message: string;

                        /**
                         * Creates a new ReplicationControllerCondition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ReplicationControllerCondition instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IReplicationControllerCondition): k8s.io.api.core.v1.ReplicationControllerCondition;

                        /**
                         * Encodes the specified ReplicationControllerCondition message. Does not implicitly {@link k8s.io.api.core.v1.ReplicationControllerCondition.verify|verify} messages.
                         * @param message ReplicationControllerCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IReplicationControllerCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ReplicationControllerCondition message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ReplicationControllerCondition.verify|verify} messages.
                         * @param message ReplicationControllerCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IReplicationControllerCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ReplicationControllerCondition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ReplicationControllerCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ReplicationControllerCondition;

                        /**
                         * Decodes a ReplicationControllerCondition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ReplicationControllerCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ReplicationControllerCondition;

                        /**
                         * Verifies a ReplicationControllerCondition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ReplicationControllerCondition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ReplicationControllerCondition
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ReplicationControllerCondition;

                        /**
                         * Creates a plain object from a ReplicationControllerCondition message. Also converts values to other types if specified.
                         * @param message ReplicationControllerCondition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ReplicationControllerCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ReplicationControllerCondition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ReplicationControllerList. */
                    interface IReplicationControllerList {

                        /** ReplicationControllerList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ReplicationControllerList items */
                        items?: (k8s.io.api.core.v1.IReplicationController[]|null);
                    }

                    /** Represents a ReplicationControllerList. */
                    class ReplicationControllerList implements IReplicationControllerList {

                        /**
                         * Constructs a new ReplicationControllerList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IReplicationControllerList);

                        /** ReplicationControllerList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ReplicationControllerList items. */
                        public items: k8s.io.api.core.v1.IReplicationController[];

                        /**
                         * Creates a new ReplicationControllerList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ReplicationControllerList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IReplicationControllerList): k8s.io.api.core.v1.ReplicationControllerList;

                        /**
                         * Encodes the specified ReplicationControllerList message. Does not implicitly {@link k8s.io.api.core.v1.ReplicationControllerList.verify|verify} messages.
                         * @param message ReplicationControllerList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IReplicationControllerList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ReplicationControllerList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ReplicationControllerList.verify|verify} messages.
                         * @param message ReplicationControllerList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IReplicationControllerList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ReplicationControllerList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ReplicationControllerList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ReplicationControllerList;

                        /**
                         * Decodes a ReplicationControllerList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ReplicationControllerList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ReplicationControllerList;

                        /**
                         * Verifies a ReplicationControllerList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ReplicationControllerList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ReplicationControllerList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ReplicationControllerList;

                        /**
                         * Creates a plain object from a ReplicationControllerList message. Also converts values to other types if specified.
                         * @param message ReplicationControllerList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ReplicationControllerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ReplicationControllerList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ReplicationControllerSpec. */
                    interface IReplicationControllerSpec {

                        /** ReplicationControllerSpec replicas */
                        replicas?: (number|null);

                        /** ReplicationControllerSpec minReadySeconds */
                        minReadySeconds?: (number|null);

                        /** ReplicationControllerSpec selector */
                        selector?: ({ [k: string]: string }|null);

                        /** ReplicationControllerSpec template */
                        template?: (k8s.io.api.core.v1.IPodTemplateSpec|null);
                    }

                    /** Represents a ReplicationControllerSpec. */
                    class ReplicationControllerSpec implements IReplicationControllerSpec {

                        /**
                         * Constructs a new ReplicationControllerSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IReplicationControllerSpec);

                        /** ReplicationControllerSpec replicas. */
                        public replicas: number;

                        /** ReplicationControllerSpec minReadySeconds. */
                        public minReadySeconds: number;

                        /** ReplicationControllerSpec selector. */
                        public selector: { [k: string]: string };

                        /** ReplicationControllerSpec template. */
                        public template?: (k8s.io.api.core.v1.IPodTemplateSpec|null);

                        /**
                         * Creates a new ReplicationControllerSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ReplicationControllerSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IReplicationControllerSpec): k8s.io.api.core.v1.ReplicationControllerSpec;

                        /**
                         * Encodes the specified ReplicationControllerSpec message. Does not implicitly {@link k8s.io.api.core.v1.ReplicationControllerSpec.verify|verify} messages.
                         * @param message ReplicationControllerSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IReplicationControllerSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ReplicationControllerSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ReplicationControllerSpec.verify|verify} messages.
                         * @param message ReplicationControllerSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IReplicationControllerSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ReplicationControllerSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ReplicationControllerSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ReplicationControllerSpec;

                        /**
                         * Decodes a ReplicationControllerSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ReplicationControllerSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ReplicationControllerSpec;

                        /**
                         * Verifies a ReplicationControllerSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ReplicationControllerSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ReplicationControllerSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ReplicationControllerSpec;

                        /**
                         * Creates a plain object from a ReplicationControllerSpec message. Also converts values to other types if specified.
                         * @param message ReplicationControllerSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ReplicationControllerSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ReplicationControllerSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ReplicationControllerStatus. */
                    interface IReplicationControllerStatus {

                        /** ReplicationControllerStatus replicas */
                        replicas?: (number|null);

                        /** ReplicationControllerStatus fullyLabeledReplicas */
                        fullyLabeledReplicas?: (number|null);

                        /** ReplicationControllerStatus readyReplicas */
                        readyReplicas?: (number|null);

                        /** ReplicationControllerStatus availableReplicas */
                        availableReplicas?: (number|null);

                        /** ReplicationControllerStatus observedGeneration */
                        observedGeneration?: (number|Long|null);

                        /** ReplicationControllerStatus conditions */
                        conditions?: (k8s.io.api.core.v1.IReplicationControllerCondition[]|null);
                    }

                    /** Represents a ReplicationControllerStatus. */
                    class ReplicationControllerStatus implements IReplicationControllerStatus {

                        /**
                         * Constructs a new ReplicationControllerStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IReplicationControllerStatus);

                        /** ReplicationControllerStatus replicas. */
                        public replicas: number;

                        /** ReplicationControllerStatus fullyLabeledReplicas. */
                        public fullyLabeledReplicas: number;

                        /** ReplicationControllerStatus readyReplicas. */
                        public readyReplicas: number;

                        /** ReplicationControllerStatus availableReplicas. */
                        public availableReplicas: number;

                        /** ReplicationControllerStatus observedGeneration. */
                        public observedGeneration: (number|Long);

                        /** ReplicationControllerStatus conditions. */
                        public conditions: k8s.io.api.core.v1.IReplicationControllerCondition[];

                        /**
                         * Creates a new ReplicationControllerStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ReplicationControllerStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IReplicationControllerStatus): k8s.io.api.core.v1.ReplicationControllerStatus;

                        /**
                         * Encodes the specified ReplicationControllerStatus message. Does not implicitly {@link k8s.io.api.core.v1.ReplicationControllerStatus.verify|verify} messages.
                         * @param message ReplicationControllerStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IReplicationControllerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ReplicationControllerStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ReplicationControllerStatus.verify|verify} messages.
                         * @param message ReplicationControllerStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IReplicationControllerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ReplicationControllerStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ReplicationControllerStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ReplicationControllerStatus;

                        /**
                         * Decodes a ReplicationControllerStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ReplicationControllerStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ReplicationControllerStatus;

                        /**
                         * Verifies a ReplicationControllerStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ReplicationControllerStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ReplicationControllerStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ReplicationControllerStatus;

                        /**
                         * Creates a plain object from a ReplicationControllerStatus message. Also converts values to other types if specified.
                         * @param message ReplicationControllerStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ReplicationControllerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ReplicationControllerStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ResourceFieldSelector. */
                    interface IResourceFieldSelector {

                        /** ResourceFieldSelector containerName */
                        containerName?: (string|null);

                        /** ResourceFieldSelector resource */
                        resource?: (string|null);

                        /** ResourceFieldSelector divisor */
                        divisor?: (k8s.io.apimachinery.pkg.api.resource.IQuantity|null);
                    }

                    /** Represents a ResourceFieldSelector. */
                    class ResourceFieldSelector implements IResourceFieldSelector {

                        /**
                         * Constructs a new ResourceFieldSelector.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IResourceFieldSelector);

                        /** ResourceFieldSelector containerName. */
                        public containerName: string;

                        /** ResourceFieldSelector resource. */
                        public resource: string;

                        /** ResourceFieldSelector divisor. */
                        public divisor?: (k8s.io.apimachinery.pkg.api.resource.IQuantity|null);

                        /**
                         * Creates a new ResourceFieldSelector instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ResourceFieldSelector instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IResourceFieldSelector): k8s.io.api.core.v1.ResourceFieldSelector;

                        /**
                         * Encodes the specified ResourceFieldSelector message. Does not implicitly {@link k8s.io.api.core.v1.ResourceFieldSelector.verify|verify} messages.
                         * @param message ResourceFieldSelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IResourceFieldSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ResourceFieldSelector message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ResourceFieldSelector.verify|verify} messages.
                         * @param message ResourceFieldSelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IResourceFieldSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ResourceFieldSelector message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ResourceFieldSelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ResourceFieldSelector;

                        /**
                         * Decodes a ResourceFieldSelector message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ResourceFieldSelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ResourceFieldSelector;

                        /**
                         * Verifies a ResourceFieldSelector message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ResourceFieldSelector message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ResourceFieldSelector
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ResourceFieldSelector;

                        /**
                         * Creates a plain object from a ResourceFieldSelector message. Also converts values to other types if specified.
                         * @param message ResourceFieldSelector
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ResourceFieldSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ResourceFieldSelector to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ResourceQuota. */
                    interface IResourceQuota {

                        /** ResourceQuota metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ResourceQuota spec */
                        spec?: (k8s.io.api.core.v1.IResourceQuotaSpec|null);

                        /** ResourceQuota status */
                        status?: (k8s.io.api.core.v1.IResourceQuotaStatus|null);
                    }

                    /** Represents a ResourceQuota. */
                    class ResourceQuota implements IResourceQuota {

                        /**
                         * Constructs a new ResourceQuota.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IResourceQuota);

                        /** ResourceQuota metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ResourceQuota spec. */
                        public spec?: (k8s.io.api.core.v1.IResourceQuotaSpec|null);

                        /** ResourceQuota status. */
                        public status?: (k8s.io.api.core.v1.IResourceQuotaStatus|null);

                        /**
                         * Creates a new ResourceQuota instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ResourceQuota instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IResourceQuota): k8s.io.api.core.v1.ResourceQuota;

                        /**
                         * Encodes the specified ResourceQuota message. Does not implicitly {@link k8s.io.api.core.v1.ResourceQuota.verify|verify} messages.
                         * @param message ResourceQuota message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IResourceQuota, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ResourceQuota message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ResourceQuota.verify|verify} messages.
                         * @param message ResourceQuota message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IResourceQuota, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ResourceQuota message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ResourceQuota
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ResourceQuota;

                        /**
                         * Decodes a ResourceQuota message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ResourceQuota
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ResourceQuota;

                        /**
                         * Verifies a ResourceQuota message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ResourceQuota message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ResourceQuota
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ResourceQuota;

                        /**
                         * Creates a plain object from a ResourceQuota message. Also converts values to other types if specified.
                         * @param message ResourceQuota
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ResourceQuota, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ResourceQuota to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ResourceQuotaList. */
                    interface IResourceQuotaList {

                        /** ResourceQuotaList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ResourceQuotaList items */
                        items?: (k8s.io.api.core.v1.IResourceQuota[]|null);
                    }

                    /** Represents a ResourceQuotaList. */
                    class ResourceQuotaList implements IResourceQuotaList {

                        /**
                         * Constructs a new ResourceQuotaList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IResourceQuotaList);

                        /** ResourceQuotaList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ResourceQuotaList items. */
                        public items: k8s.io.api.core.v1.IResourceQuota[];

                        /**
                         * Creates a new ResourceQuotaList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ResourceQuotaList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IResourceQuotaList): k8s.io.api.core.v1.ResourceQuotaList;

                        /**
                         * Encodes the specified ResourceQuotaList message. Does not implicitly {@link k8s.io.api.core.v1.ResourceQuotaList.verify|verify} messages.
                         * @param message ResourceQuotaList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IResourceQuotaList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ResourceQuotaList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ResourceQuotaList.verify|verify} messages.
                         * @param message ResourceQuotaList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IResourceQuotaList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ResourceQuotaList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ResourceQuotaList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ResourceQuotaList;

                        /**
                         * Decodes a ResourceQuotaList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ResourceQuotaList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ResourceQuotaList;

                        /**
                         * Verifies a ResourceQuotaList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ResourceQuotaList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ResourceQuotaList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ResourceQuotaList;

                        /**
                         * Creates a plain object from a ResourceQuotaList message. Also converts values to other types if specified.
                         * @param message ResourceQuotaList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ResourceQuotaList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ResourceQuotaList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ResourceQuotaSpec. */
                    interface IResourceQuotaSpec {

                        /** ResourceQuotaSpec hard */
                        hard?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** ResourceQuotaSpec scopes */
                        scopes?: (string[]|null);

                        /** ResourceQuotaSpec scopeSelector */
                        scopeSelector?: (k8s.io.api.core.v1.IScopeSelector|null);
                    }

                    /** Represents a ResourceQuotaSpec. */
                    class ResourceQuotaSpec implements IResourceQuotaSpec {

                        /**
                         * Constructs a new ResourceQuotaSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IResourceQuotaSpec);

                        /** ResourceQuotaSpec hard. */
                        public hard: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** ResourceQuotaSpec scopes. */
                        public scopes: string[];

                        /** ResourceQuotaSpec scopeSelector. */
                        public scopeSelector?: (k8s.io.api.core.v1.IScopeSelector|null);

                        /**
                         * Creates a new ResourceQuotaSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ResourceQuotaSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IResourceQuotaSpec): k8s.io.api.core.v1.ResourceQuotaSpec;

                        /**
                         * Encodes the specified ResourceQuotaSpec message. Does not implicitly {@link k8s.io.api.core.v1.ResourceQuotaSpec.verify|verify} messages.
                         * @param message ResourceQuotaSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IResourceQuotaSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ResourceQuotaSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ResourceQuotaSpec.verify|verify} messages.
                         * @param message ResourceQuotaSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IResourceQuotaSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ResourceQuotaSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ResourceQuotaSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ResourceQuotaSpec;

                        /**
                         * Decodes a ResourceQuotaSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ResourceQuotaSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ResourceQuotaSpec;

                        /**
                         * Verifies a ResourceQuotaSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ResourceQuotaSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ResourceQuotaSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ResourceQuotaSpec;

                        /**
                         * Creates a plain object from a ResourceQuotaSpec message. Also converts values to other types if specified.
                         * @param message ResourceQuotaSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ResourceQuotaSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ResourceQuotaSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ResourceQuotaStatus. */
                    interface IResourceQuotaStatus {

                        /** ResourceQuotaStatus hard */
                        hard?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** ResourceQuotaStatus used */
                        used?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);
                    }

                    /** Represents a ResourceQuotaStatus. */
                    class ResourceQuotaStatus implements IResourceQuotaStatus {

                        /**
                         * Constructs a new ResourceQuotaStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IResourceQuotaStatus);

                        /** ResourceQuotaStatus hard. */
                        public hard: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** ResourceQuotaStatus used. */
                        public used: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /**
                         * Creates a new ResourceQuotaStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ResourceQuotaStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IResourceQuotaStatus): k8s.io.api.core.v1.ResourceQuotaStatus;

                        /**
                         * Encodes the specified ResourceQuotaStatus message. Does not implicitly {@link k8s.io.api.core.v1.ResourceQuotaStatus.verify|verify} messages.
                         * @param message ResourceQuotaStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IResourceQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ResourceQuotaStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ResourceQuotaStatus.verify|verify} messages.
                         * @param message ResourceQuotaStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IResourceQuotaStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ResourceQuotaStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ResourceQuotaStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ResourceQuotaStatus;

                        /**
                         * Decodes a ResourceQuotaStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ResourceQuotaStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ResourceQuotaStatus;

                        /**
                         * Verifies a ResourceQuotaStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ResourceQuotaStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ResourceQuotaStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ResourceQuotaStatus;

                        /**
                         * Creates a plain object from a ResourceQuotaStatus message. Also converts values to other types if specified.
                         * @param message ResourceQuotaStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ResourceQuotaStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ResourceQuotaStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ResourceRequirements. */
                    interface IResourceRequirements {

                        /** ResourceRequirements limits */
                        limits?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);

                        /** ResourceRequirements requests */
                        requests?: ({ [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity }|null);
                    }

                    /** Represents a ResourceRequirements. */
                    class ResourceRequirements implements IResourceRequirements {

                        /**
                         * Constructs a new ResourceRequirements.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IResourceRequirements);

                        /** ResourceRequirements limits. */
                        public limits: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /** ResourceRequirements requests. */
                        public requests: { [k: string]: k8s.io.apimachinery.pkg.api.resource.IQuantity };

                        /**
                         * Creates a new ResourceRequirements instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ResourceRequirements instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IResourceRequirements): k8s.io.api.core.v1.ResourceRequirements;

                        /**
                         * Encodes the specified ResourceRequirements message. Does not implicitly {@link k8s.io.api.core.v1.ResourceRequirements.verify|verify} messages.
                         * @param message ResourceRequirements message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IResourceRequirements, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ResourceRequirements message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ResourceRequirements.verify|verify} messages.
                         * @param message ResourceRequirements message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IResourceRequirements, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ResourceRequirements message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ResourceRequirements
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ResourceRequirements;

                        /**
                         * Decodes a ResourceRequirements message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ResourceRequirements
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ResourceRequirements;

                        /**
                         * Verifies a ResourceRequirements message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ResourceRequirements message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ResourceRequirements
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ResourceRequirements;

                        /**
                         * Creates a plain object from a ResourceRequirements message. Also converts values to other types if specified.
                         * @param message ResourceRequirements
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ResourceRequirements, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ResourceRequirements to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SELinuxOptions. */
                    interface ISELinuxOptions {

                        /** SELinuxOptions user */
                        user?: (string|null);

                        /** SELinuxOptions role */
                        role?: (string|null);

                        /** SELinuxOptions type */
                        type?: (string|null);

                        /** SELinuxOptions level */
                        level?: (string|null);
                    }

                    /** Represents a SELinuxOptions. */
                    class SELinuxOptions implements ISELinuxOptions {

                        /**
                         * Constructs a new SELinuxOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISELinuxOptions);

                        /** SELinuxOptions user. */
                        public user: string;

                        /** SELinuxOptions role. */
                        public role: string;

                        /** SELinuxOptions type. */
                        public type: string;

                        /** SELinuxOptions level. */
                        public level: string;

                        /**
                         * Creates a new SELinuxOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SELinuxOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISELinuxOptions): k8s.io.api.core.v1.SELinuxOptions;

                        /**
                         * Encodes the specified SELinuxOptions message. Does not implicitly {@link k8s.io.api.core.v1.SELinuxOptions.verify|verify} messages.
                         * @param message SELinuxOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISELinuxOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SELinuxOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SELinuxOptions.verify|verify} messages.
                         * @param message SELinuxOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISELinuxOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SELinuxOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SELinuxOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SELinuxOptions;

                        /**
                         * Decodes a SELinuxOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SELinuxOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SELinuxOptions;

                        /**
                         * Verifies a SELinuxOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SELinuxOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SELinuxOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SELinuxOptions;

                        /**
                         * Creates a plain object from a SELinuxOptions message. Also converts values to other types if specified.
                         * @param message SELinuxOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SELinuxOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SELinuxOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ScaleIOPersistentVolumeSource. */
                    interface IScaleIOPersistentVolumeSource {

                        /** ScaleIOPersistentVolumeSource gateway */
                        gateway?: (string|null);

                        /** ScaleIOPersistentVolumeSource system */
                        system?: (string|null);

                        /** ScaleIOPersistentVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** ScaleIOPersistentVolumeSource sslEnabled */
                        sslEnabled?: (boolean|null);

                        /** ScaleIOPersistentVolumeSource protectionDomain */
                        protectionDomain?: (string|null);

                        /** ScaleIOPersistentVolumeSource storagePool */
                        storagePool?: (string|null);

                        /** ScaleIOPersistentVolumeSource storageMode */
                        storageMode?: (string|null);

                        /** ScaleIOPersistentVolumeSource volumeName */
                        volumeName?: (string|null);

                        /** ScaleIOPersistentVolumeSource fsType */
                        fsType?: (string|null);

                        /** ScaleIOPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a ScaleIOPersistentVolumeSource. */
                    class ScaleIOPersistentVolumeSource implements IScaleIOPersistentVolumeSource {

                        /**
                         * Constructs a new ScaleIOPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IScaleIOPersistentVolumeSource);

                        /** ScaleIOPersistentVolumeSource gateway. */
                        public gateway: string;

                        /** ScaleIOPersistentVolumeSource system. */
                        public system: string;

                        /** ScaleIOPersistentVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ISecretReference|null);

                        /** ScaleIOPersistentVolumeSource sslEnabled. */
                        public sslEnabled: boolean;

                        /** ScaleIOPersistentVolumeSource protectionDomain. */
                        public protectionDomain: string;

                        /** ScaleIOPersistentVolumeSource storagePool. */
                        public storagePool: string;

                        /** ScaleIOPersistentVolumeSource storageMode. */
                        public storageMode: string;

                        /** ScaleIOPersistentVolumeSource volumeName. */
                        public volumeName: string;

                        /** ScaleIOPersistentVolumeSource fsType. */
                        public fsType: string;

                        /** ScaleIOPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new ScaleIOPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ScaleIOPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IScaleIOPersistentVolumeSource): k8s.io.api.core.v1.ScaleIOPersistentVolumeSource;

                        /**
                         * Encodes the specified ScaleIOPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.ScaleIOPersistentVolumeSource.verify|verify} messages.
                         * @param message ScaleIOPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IScaleIOPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ScaleIOPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ScaleIOPersistentVolumeSource.verify|verify} messages.
                         * @param message ScaleIOPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IScaleIOPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ScaleIOPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ScaleIOPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ScaleIOPersistentVolumeSource;

                        /**
                         * Decodes a ScaleIOPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ScaleIOPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ScaleIOPersistentVolumeSource;

                        /**
                         * Verifies a ScaleIOPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ScaleIOPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ScaleIOPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ScaleIOPersistentVolumeSource;

                        /**
                         * Creates a plain object from a ScaleIOPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message ScaleIOPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ScaleIOPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ScaleIOPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ScaleIOVolumeSource. */
                    interface IScaleIOVolumeSource {

                        /** ScaleIOVolumeSource gateway */
                        gateway?: (string|null);

                        /** ScaleIOVolumeSource system */
                        system?: (string|null);

                        /** ScaleIOVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ScaleIOVolumeSource sslEnabled */
                        sslEnabled?: (boolean|null);

                        /** ScaleIOVolumeSource protectionDomain */
                        protectionDomain?: (string|null);

                        /** ScaleIOVolumeSource storagePool */
                        storagePool?: (string|null);

                        /** ScaleIOVolumeSource storageMode */
                        storageMode?: (string|null);

                        /** ScaleIOVolumeSource volumeName */
                        volumeName?: (string|null);

                        /** ScaleIOVolumeSource fsType */
                        fsType?: (string|null);

                        /** ScaleIOVolumeSource readOnly */
                        readOnly?: (boolean|null);
                    }

                    /** Represents a ScaleIOVolumeSource. */
                    class ScaleIOVolumeSource implements IScaleIOVolumeSource {

                        /**
                         * Constructs a new ScaleIOVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IScaleIOVolumeSource);

                        /** ScaleIOVolumeSource gateway. */
                        public gateway: string;

                        /** ScaleIOVolumeSource system. */
                        public system: string;

                        /** ScaleIOVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** ScaleIOVolumeSource sslEnabled. */
                        public sslEnabled: boolean;

                        /** ScaleIOVolumeSource protectionDomain. */
                        public protectionDomain: string;

                        /** ScaleIOVolumeSource storagePool. */
                        public storagePool: string;

                        /** ScaleIOVolumeSource storageMode. */
                        public storageMode: string;

                        /** ScaleIOVolumeSource volumeName. */
                        public volumeName: string;

                        /** ScaleIOVolumeSource fsType. */
                        public fsType: string;

                        /** ScaleIOVolumeSource readOnly. */
                        public readOnly: boolean;

                        /**
                         * Creates a new ScaleIOVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ScaleIOVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IScaleIOVolumeSource): k8s.io.api.core.v1.ScaleIOVolumeSource;

                        /**
                         * Encodes the specified ScaleIOVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.ScaleIOVolumeSource.verify|verify} messages.
                         * @param message ScaleIOVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IScaleIOVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ScaleIOVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ScaleIOVolumeSource.verify|verify} messages.
                         * @param message ScaleIOVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IScaleIOVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ScaleIOVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ScaleIOVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ScaleIOVolumeSource;

                        /**
                         * Decodes a ScaleIOVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ScaleIOVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ScaleIOVolumeSource;

                        /**
                         * Verifies a ScaleIOVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ScaleIOVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ScaleIOVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ScaleIOVolumeSource;

                        /**
                         * Creates a plain object from a ScaleIOVolumeSource message. Also converts values to other types if specified.
                         * @param message ScaleIOVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ScaleIOVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ScaleIOVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ScopeSelector. */
                    interface IScopeSelector {

                        /** ScopeSelector matchExpressions */
                        matchExpressions?: (k8s.io.api.core.v1.IScopedResourceSelectorRequirement[]|null);
                    }

                    /** Represents a ScopeSelector. */
                    class ScopeSelector implements IScopeSelector {

                        /**
                         * Constructs a new ScopeSelector.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IScopeSelector);

                        /** ScopeSelector matchExpressions. */
                        public matchExpressions: k8s.io.api.core.v1.IScopedResourceSelectorRequirement[];

                        /**
                         * Creates a new ScopeSelector instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ScopeSelector instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IScopeSelector): k8s.io.api.core.v1.ScopeSelector;

                        /**
                         * Encodes the specified ScopeSelector message. Does not implicitly {@link k8s.io.api.core.v1.ScopeSelector.verify|verify} messages.
                         * @param message ScopeSelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IScopeSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ScopeSelector message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ScopeSelector.verify|verify} messages.
                         * @param message ScopeSelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IScopeSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ScopeSelector message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ScopeSelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ScopeSelector;

                        /**
                         * Decodes a ScopeSelector message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ScopeSelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ScopeSelector;

                        /**
                         * Verifies a ScopeSelector message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ScopeSelector message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ScopeSelector
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ScopeSelector;

                        /**
                         * Creates a plain object from a ScopeSelector message. Also converts values to other types if specified.
                         * @param message ScopeSelector
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ScopeSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ScopeSelector to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ScopedResourceSelectorRequirement. */
                    interface IScopedResourceSelectorRequirement {

                        /** ScopedResourceSelectorRequirement scopeName */
                        scopeName?: (string|null);

                        /** ScopedResourceSelectorRequirement operator */
                        operator?: (string|null);

                        /** ScopedResourceSelectorRequirement values */
                        values?: (string[]|null);
                    }

                    /** Represents a ScopedResourceSelectorRequirement. */
                    class ScopedResourceSelectorRequirement implements IScopedResourceSelectorRequirement {

                        /**
                         * Constructs a new ScopedResourceSelectorRequirement.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IScopedResourceSelectorRequirement);

                        /** ScopedResourceSelectorRequirement scopeName. */
                        public scopeName: string;

                        /** ScopedResourceSelectorRequirement operator. */
                        public operator: string;

                        /** ScopedResourceSelectorRequirement values. */
                        public values: string[];

                        /**
                         * Creates a new ScopedResourceSelectorRequirement instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ScopedResourceSelectorRequirement instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IScopedResourceSelectorRequirement): k8s.io.api.core.v1.ScopedResourceSelectorRequirement;

                        /**
                         * Encodes the specified ScopedResourceSelectorRequirement message. Does not implicitly {@link k8s.io.api.core.v1.ScopedResourceSelectorRequirement.verify|verify} messages.
                         * @param message ScopedResourceSelectorRequirement message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IScopedResourceSelectorRequirement, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ScopedResourceSelectorRequirement message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ScopedResourceSelectorRequirement.verify|verify} messages.
                         * @param message ScopedResourceSelectorRequirement message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IScopedResourceSelectorRequirement, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ScopedResourceSelectorRequirement message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ScopedResourceSelectorRequirement
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ScopedResourceSelectorRequirement;

                        /**
                         * Decodes a ScopedResourceSelectorRequirement message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ScopedResourceSelectorRequirement
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ScopedResourceSelectorRequirement;

                        /**
                         * Verifies a ScopedResourceSelectorRequirement message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ScopedResourceSelectorRequirement message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ScopedResourceSelectorRequirement
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ScopedResourceSelectorRequirement;

                        /**
                         * Creates a plain object from a ScopedResourceSelectorRequirement message. Also converts values to other types if specified.
                         * @param message ScopedResourceSelectorRequirement
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ScopedResourceSelectorRequirement, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ScopedResourceSelectorRequirement to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SeccompProfile. */
                    interface ISeccompProfile {

                        /** SeccompProfile type */
                        type?: (string|null);

                        /** SeccompProfile localhostProfile */
                        localhostProfile?: (string|null);
                    }

                    /** Represents a SeccompProfile. */
                    class SeccompProfile implements ISeccompProfile {

                        /**
                         * Constructs a new SeccompProfile.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISeccompProfile);

                        /** SeccompProfile type. */
                        public type: string;

                        /** SeccompProfile localhostProfile. */
                        public localhostProfile: string;

                        /**
                         * Creates a new SeccompProfile instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SeccompProfile instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISeccompProfile): k8s.io.api.core.v1.SeccompProfile;

                        /**
                         * Encodes the specified SeccompProfile message. Does not implicitly {@link k8s.io.api.core.v1.SeccompProfile.verify|verify} messages.
                         * @param message SeccompProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISeccompProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SeccompProfile message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SeccompProfile.verify|verify} messages.
                         * @param message SeccompProfile message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISeccompProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SeccompProfile message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SeccompProfile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SeccompProfile;

                        /**
                         * Decodes a SeccompProfile message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SeccompProfile
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SeccompProfile;

                        /**
                         * Verifies a SeccompProfile message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SeccompProfile message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SeccompProfile
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SeccompProfile;

                        /**
                         * Creates a plain object from a SeccompProfile message. Also converts values to other types if specified.
                         * @param message SeccompProfile
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SeccompProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SeccompProfile to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Secret. */
                    interface ISecret {

                        /** Secret metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Secret immutable */
                        immutable?: (boolean|null);

                        /** Secret data */
                        data?: ({ [k: string]: Uint8Array }|null);

                        /** Secret stringData */
                        stringData?: ({ [k: string]: string }|null);

                        /** Secret type */
                        type?: (string|null);
                    }

                    /** Represents a Secret. */
                    class Secret implements ISecret {

                        /**
                         * Constructs a new Secret.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISecret);

                        /** Secret metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Secret immutable. */
                        public immutable: boolean;

                        /** Secret data. */
                        public data: { [k: string]: Uint8Array };

                        /** Secret stringData. */
                        public stringData: { [k: string]: string };

                        /** Secret type. */
                        public type: string;

                        /**
                         * Creates a new Secret instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Secret instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISecret): k8s.io.api.core.v1.Secret;

                        /**
                         * Encodes the specified Secret message. Does not implicitly {@link k8s.io.api.core.v1.Secret.verify|verify} messages.
                         * @param message Secret message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISecret, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Secret message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Secret.verify|verify} messages.
                         * @param message Secret message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISecret, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Secret message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Secret
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Secret;

                        /**
                         * Decodes a Secret message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Secret
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Secret;

                        /**
                         * Verifies a Secret message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Secret message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Secret
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Secret;

                        /**
                         * Creates a plain object from a Secret message. Also converts values to other types if specified.
                         * @param message Secret
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Secret, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Secret to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SecretEnvSource. */
                    interface ISecretEnvSource {

                        /** SecretEnvSource localObjectReference */
                        localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** SecretEnvSource optional */
                        optional?: (boolean|null);
                    }

                    /** Represents a SecretEnvSource. */
                    class SecretEnvSource implements ISecretEnvSource {

                        /**
                         * Constructs a new SecretEnvSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISecretEnvSource);

                        /** SecretEnvSource localObjectReference. */
                        public localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** SecretEnvSource optional. */
                        public optional: boolean;

                        /**
                         * Creates a new SecretEnvSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SecretEnvSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISecretEnvSource): k8s.io.api.core.v1.SecretEnvSource;

                        /**
                         * Encodes the specified SecretEnvSource message. Does not implicitly {@link k8s.io.api.core.v1.SecretEnvSource.verify|verify} messages.
                         * @param message SecretEnvSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISecretEnvSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SecretEnvSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SecretEnvSource.verify|verify} messages.
                         * @param message SecretEnvSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISecretEnvSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SecretEnvSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SecretEnvSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SecretEnvSource;

                        /**
                         * Decodes a SecretEnvSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SecretEnvSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SecretEnvSource;

                        /**
                         * Verifies a SecretEnvSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SecretEnvSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SecretEnvSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SecretEnvSource;

                        /**
                         * Creates a plain object from a SecretEnvSource message. Also converts values to other types if specified.
                         * @param message SecretEnvSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SecretEnvSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SecretEnvSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SecretKeySelector. */
                    interface ISecretKeySelector {

                        /** SecretKeySelector localObjectReference */
                        localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** SecretKeySelector key */
                        key?: (string|null);

                        /** SecretKeySelector optional */
                        optional?: (boolean|null);
                    }

                    /** Represents a SecretKeySelector. */
                    class SecretKeySelector implements ISecretKeySelector {

                        /**
                         * Constructs a new SecretKeySelector.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISecretKeySelector);

                        /** SecretKeySelector localObjectReference. */
                        public localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** SecretKeySelector key. */
                        public key: string;

                        /** SecretKeySelector optional. */
                        public optional: boolean;

                        /**
                         * Creates a new SecretKeySelector instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SecretKeySelector instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISecretKeySelector): k8s.io.api.core.v1.SecretKeySelector;

                        /**
                         * Encodes the specified SecretKeySelector message. Does not implicitly {@link k8s.io.api.core.v1.SecretKeySelector.verify|verify} messages.
                         * @param message SecretKeySelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISecretKeySelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SecretKeySelector message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SecretKeySelector.verify|verify} messages.
                         * @param message SecretKeySelector message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISecretKeySelector, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SecretKeySelector message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SecretKeySelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SecretKeySelector;

                        /**
                         * Decodes a SecretKeySelector message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SecretKeySelector
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SecretKeySelector;

                        /**
                         * Verifies a SecretKeySelector message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SecretKeySelector message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SecretKeySelector
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SecretKeySelector;

                        /**
                         * Creates a plain object from a SecretKeySelector message. Also converts values to other types if specified.
                         * @param message SecretKeySelector
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SecretKeySelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SecretKeySelector to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SecretList. */
                    interface ISecretList {

                        /** SecretList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** SecretList items */
                        items?: (k8s.io.api.core.v1.ISecret[]|null);
                    }

                    /** Represents a SecretList. */
                    class SecretList implements ISecretList {

                        /**
                         * Constructs a new SecretList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISecretList);

                        /** SecretList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** SecretList items. */
                        public items: k8s.io.api.core.v1.ISecret[];

                        /**
                         * Creates a new SecretList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SecretList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISecretList): k8s.io.api.core.v1.SecretList;

                        /**
                         * Encodes the specified SecretList message. Does not implicitly {@link k8s.io.api.core.v1.SecretList.verify|verify} messages.
                         * @param message SecretList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISecretList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SecretList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SecretList.verify|verify} messages.
                         * @param message SecretList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISecretList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SecretList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SecretList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SecretList;

                        /**
                         * Decodes a SecretList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SecretList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SecretList;

                        /**
                         * Verifies a SecretList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SecretList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SecretList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SecretList;

                        /**
                         * Creates a plain object from a SecretList message. Also converts values to other types if specified.
                         * @param message SecretList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SecretList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SecretList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SecretProjection. */
                    interface ISecretProjection {

                        /** SecretProjection localObjectReference */
                        localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** SecretProjection items */
                        items?: (k8s.io.api.core.v1.IKeyToPath[]|null);

                        /** SecretProjection optional */
                        optional?: (boolean|null);
                    }

                    /** Represents a SecretProjection. */
                    class SecretProjection implements ISecretProjection {

                        /**
                         * Constructs a new SecretProjection.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISecretProjection);

                        /** SecretProjection localObjectReference. */
                        public localObjectReference?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /** SecretProjection items. */
                        public items: k8s.io.api.core.v1.IKeyToPath[];

                        /** SecretProjection optional. */
                        public optional: boolean;

                        /**
                         * Creates a new SecretProjection instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SecretProjection instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISecretProjection): k8s.io.api.core.v1.SecretProjection;

                        /**
                         * Encodes the specified SecretProjection message. Does not implicitly {@link k8s.io.api.core.v1.SecretProjection.verify|verify} messages.
                         * @param message SecretProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISecretProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SecretProjection message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SecretProjection.verify|verify} messages.
                         * @param message SecretProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISecretProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SecretProjection message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SecretProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SecretProjection;

                        /**
                         * Decodes a SecretProjection message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SecretProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SecretProjection;

                        /**
                         * Verifies a SecretProjection message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SecretProjection message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SecretProjection
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SecretProjection;

                        /**
                         * Creates a plain object from a SecretProjection message. Also converts values to other types if specified.
                         * @param message SecretProjection
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SecretProjection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SecretProjection to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SecretReference. */
                    interface ISecretReference {

                        /** SecretReference name */
                        name?: (string|null);

                        /** SecretReference namespace */
                        namespace?: (string|null);
                    }

                    /** Represents a SecretReference. */
                    class SecretReference implements ISecretReference {

                        /**
                         * Constructs a new SecretReference.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISecretReference);

                        /** SecretReference name. */
                        public name: string;

                        /** SecretReference namespace. */
                        public namespace: string;

                        /**
                         * Creates a new SecretReference instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SecretReference instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISecretReference): k8s.io.api.core.v1.SecretReference;

                        /**
                         * Encodes the specified SecretReference message. Does not implicitly {@link k8s.io.api.core.v1.SecretReference.verify|verify} messages.
                         * @param message SecretReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISecretReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SecretReference message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SecretReference.verify|verify} messages.
                         * @param message SecretReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISecretReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SecretReference message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SecretReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SecretReference;

                        /**
                         * Decodes a SecretReference message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SecretReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SecretReference;

                        /**
                         * Verifies a SecretReference message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SecretReference message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SecretReference
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SecretReference;

                        /**
                         * Creates a plain object from a SecretReference message. Also converts values to other types if specified.
                         * @param message SecretReference
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SecretReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SecretReference to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SecretVolumeSource. */
                    interface ISecretVolumeSource {

                        /** SecretVolumeSource secretName */
                        secretName?: (string|null);

                        /** SecretVolumeSource items */
                        items?: (k8s.io.api.core.v1.IKeyToPath[]|null);

                        /** SecretVolumeSource defaultMode */
                        defaultMode?: (number|null);

                        /** SecretVolumeSource optional */
                        optional?: (boolean|null);
                    }

                    /** Represents a SecretVolumeSource. */
                    class SecretVolumeSource implements ISecretVolumeSource {

                        /**
                         * Constructs a new SecretVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISecretVolumeSource);

                        /** SecretVolumeSource secretName. */
                        public secretName: string;

                        /** SecretVolumeSource items. */
                        public items: k8s.io.api.core.v1.IKeyToPath[];

                        /** SecretVolumeSource defaultMode. */
                        public defaultMode: number;

                        /** SecretVolumeSource optional. */
                        public optional: boolean;

                        /**
                         * Creates a new SecretVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SecretVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISecretVolumeSource): k8s.io.api.core.v1.SecretVolumeSource;

                        /**
                         * Encodes the specified SecretVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.SecretVolumeSource.verify|verify} messages.
                         * @param message SecretVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISecretVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SecretVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SecretVolumeSource.verify|verify} messages.
                         * @param message SecretVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISecretVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SecretVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SecretVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SecretVolumeSource;

                        /**
                         * Decodes a SecretVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SecretVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SecretVolumeSource;

                        /**
                         * Verifies a SecretVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SecretVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SecretVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SecretVolumeSource;

                        /**
                         * Creates a plain object from a SecretVolumeSource message. Also converts values to other types if specified.
                         * @param message SecretVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SecretVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SecretVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SecurityContext. */
                    interface ISecurityContext {

                        /** SecurityContext capabilities */
                        capabilities?: (k8s.io.api.core.v1.ICapabilities|null);

                        /** SecurityContext privileged */
                        privileged?: (boolean|null);

                        /** SecurityContext seLinuxOptions */
                        seLinuxOptions?: (k8s.io.api.core.v1.ISELinuxOptions|null);

                        /** SecurityContext windowsOptions */
                        windowsOptions?: (k8s.io.api.core.v1.IWindowsSecurityContextOptions|null);

                        /** SecurityContext runAsUser */
                        runAsUser?: (number|Long|null);

                        /** SecurityContext runAsGroup */
                        runAsGroup?: (number|Long|null);

                        /** SecurityContext runAsNonRoot */
                        runAsNonRoot?: (boolean|null);

                        /** SecurityContext readOnlyRootFilesystem */
                        readOnlyRootFilesystem?: (boolean|null);

                        /** SecurityContext allowPrivilegeEscalation */
                        allowPrivilegeEscalation?: (boolean|null);

                        /** SecurityContext procMount */
                        procMount?: (string|null);

                        /** SecurityContext seccompProfile */
                        seccompProfile?: (k8s.io.api.core.v1.ISeccompProfile|null);
                    }

                    /** Represents a SecurityContext. */
                    class SecurityContext implements ISecurityContext {

                        /**
                         * Constructs a new SecurityContext.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISecurityContext);

                        /** SecurityContext capabilities. */
                        public capabilities?: (k8s.io.api.core.v1.ICapabilities|null);

                        /** SecurityContext privileged. */
                        public privileged: boolean;

                        /** SecurityContext seLinuxOptions. */
                        public seLinuxOptions?: (k8s.io.api.core.v1.ISELinuxOptions|null);

                        /** SecurityContext windowsOptions. */
                        public windowsOptions?: (k8s.io.api.core.v1.IWindowsSecurityContextOptions|null);

                        /** SecurityContext runAsUser. */
                        public runAsUser: (number|Long);

                        /** SecurityContext runAsGroup. */
                        public runAsGroup: (number|Long);

                        /** SecurityContext runAsNonRoot. */
                        public runAsNonRoot: boolean;

                        /** SecurityContext readOnlyRootFilesystem. */
                        public readOnlyRootFilesystem: boolean;

                        /** SecurityContext allowPrivilegeEscalation. */
                        public allowPrivilegeEscalation: boolean;

                        /** SecurityContext procMount. */
                        public procMount: string;

                        /** SecurityContext seccompProfile. */
                        public seccompProfile?: (k8s.io.api.core.v1.ISeccompProfile|null);

                        /**
                         * Creates a new SecurityContext instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SecurityContext instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISecurityContext): k8s.io.api.core.v1.SecurityContext;

                        /**
                         * Encodes the specified SecurityContext message. Does not implicitly {@link k8s.io.api.core.v1.SecurityContext.verify|verify} messages.
                         * @param message SecurityContext message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISecurityContext, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SecurityContext message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SecurityContext.verify|verify} messages.
                         * @param message SecurityContext message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISecurityContext, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SecurityContext message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SecurityContext
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SecurityContext;

                        /**
                         * Decodes a SecurityContext message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SecurityContext
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SecurityContext;

                        /**
                         * Verifies a SecurityContext message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SecurityContext message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SecurityContext
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SecurityContext;

                        /**
                         * Creates a plain object from a SecurityContext message. Also converts values to other types if specified.
                         * @param message SecurityContext
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SecurityContext, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SecurityContext to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SerializedReference. */
                    interface ISerializedReference {

                        /** SerializedReference reference */
                        reference?: (k8s.io.api.core.v1.IObjectReference|null);
                    }

                    /** Represents a SerializedReference. */
                    class SerializedReference implements ISerializedReference {

                        /**
                         * Constructs a new SerializedReference.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISerializedReference);

                        /** SerializedReference reference. */
                        public reference?: (k8s.io.api.core.v1.IObjectReference|null);

                        /**
                         * Creates a new SerializedReference instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SerializedReference instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISerializedReference): k8s.io.api.core.v1.SerializedReference;

                        /**
                         * Encodes the specified SerializedReference message. Does not implicitly {@link k8s.io.api.core.v1.SerializedReference.verify|verify} messages.
                         * @param message SerializedReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISerializedReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SerializedReference message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SerializedReference.verify|verify} messages.
                         * @param message SerializedReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISerializedReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SerializedReference message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SerializedReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SerializedReference;

                        /**
                         * Decodes a SerializedReference message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SerializedReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SerializedReference;

                        /**
                         * Verifies a SerializedReference message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SerializedReference message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SerializedReference
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SerializedReference;

                        /**
                         * Creates a plain object from a SerializedReference message. Also converts values to other types if specified.
                         * @param message SerializedReference
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SerializedReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SerializedReference to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Service. */
                    interface IService {

                        /** Service metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Service spec */
                        spec?: (k8s.io.api.core.v1.IServiceSpec|null);

                        /** Service status */
                        status?: (k8s.io.api.core.v1.IServiceStatus|null);
                    }

                    /** Represents a Service. */
                    class Service implements IService {

                        /**
                         * Constructs a new Service.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IService);

                        /** Service metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** Service spec. */
                        public spec?: (k8s.io.api.core.v1.IServiceSpec|null);

                        /** Service status. */
                        public status?: (k8s.io.api.core.v1.IServiceStatus|null);

                        /**
                         * Creates a new Service instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Service instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IService): k8s.io.api.core.v1.Service;

                        /**
                         * Encodes the specified Service message. Does not implicitly {@link k8s.io.api.core.v1.Service.verify|verify} messages.
                         * @param message Service message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IService, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Service message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Service.verify|verify} messages.
                         * @param message Service message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IService, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Service message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Service
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Service;

                        /**
                         * Decodes a Service message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Service
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Service;

                        /**
                         * Verifies a Service message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Service message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Service
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Service;

                        /**
                         * Creates a plain object from a Service message. Also converts values to other types if specified.
                         * @param message Service
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Service, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Service to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ServiceAccount. */
                    interface IServiceAccount {

                        /** ServiceAccount metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ServiceAccount secrets */
                        secrets?: (k8s.io.api.core.v1.IObjectReference[]|null);

                        /** ServiceAccount imagePullSecrets */
                        imagePullSecrets?: (k8s.io.api.core.v1.ILocalObjectReference[]|null);

                        /** ServiceAccount automountServiceAccountToken */
                        automountServiceAccountToken?: (boolean|null);
                    }

                    /** Represents a ServiceAccount. */
                    class ServiceAccount implements IServiceAccount {

                        /**
                         * Constructs a new ServiceAccount.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IServiceAccount);

                        /** ServiceAccount metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                        /** ServiceAccount secrets. */
                        public secrets: k8s.io.api.core.v1.IObjectReference[];

                        /** ServiceAccount imagePullSecrets. */
                        public imagePullSecrets: k8s.io.api.core.v1.ILocalObjectReference[];

                        /** ServiceAccount automountServiceAccountToken. */
                        public automountServiceAccountToken: boolean;

                        /**
                         * Creates a new ServiceAccount instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceAccount instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IServiceAccount): k8s.io.api.core.v1.ServiceAccount;

                        /**
                         * Encodes the specified ServiceAccount message. Does not implicitly {@link k8s.io.api.core.v1.ServiceAccount.verify|verify} messages.
                         * @param message ServiceAccount message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IServiceAccount, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceAccount message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ServiceAccount.verify|verify} messages.
                         * @param message ServiceAccount message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IServiceAccount, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceAccount message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceAccount
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ServiceAccount;

                        /**
                         * Decodes a ServiceAccount message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceAccount
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ServiceAccount;

                        /**
                         * Verifies a ServiceAccount message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServiceAccount message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceAccount
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ServiceAccount;

                        /**
                         * Creates a plain object from a ServiceAccount message. Also converts values to other types if specified.
                         * @param message ServiceAccount
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ServiceAccount, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServiceAccount to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ServiceAccountList. */
                    interface IServiceAccountList {

                        /** ServiceAccountList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ServiceAccountList items */
                        items?: (k8s.io.api.core.v1.IServiceAccount[]|null);
                    }

                    /** Represents a ServiceAccountList. */
                    class ServiceAccountList implements IServiceAccountList {

                        /**
                         * Constructs a new ServiceAccountList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IServiceAccountList);

                        /** ServiceAccountList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ServiceAccountList items. */
                        public items: k8s.io.api.core.v1.IServiceAccount[];

                        /**
                         * Creates a new ServiceAccountList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceAccountList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IServiceAccountList): k8s.io.api.core.v1.ServiceAccountList;

                        /**
                         * Encodes the specified ServiceAccountList message. Does not implicitly {@link k8s.io.api.core.v1.ServiceAccountList.verify|verify} messages.
                         * @param message ServiceAccountList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IServiceAccountList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceAccountList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ServiceAccountList.verify|verify} messages.
                         * @param message ServiceAccountList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IServiceAccountList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceAccountList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceAccountList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ServiceAccountList;

                        /**
                         * Decodes a ServiceAccountList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceAccountList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ServiceAccountList;

                        /**
                         * Verifies a ServiceAccountList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServiceAccountList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceAccountList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ServiceAccountList;

                        /**
                         * Creates a plain object from a ServiceAccountList message. Also converts values to other types if specified.
                         * @param message ServiceAccountList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ServiceAccountList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServiceAccountList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ServiceAccountTokenProjection. */
                    interface IServiceAccountTokenProjection {

                        /** ServiceAccountTokenProjection audience */
                        audience?: (string|null);

                        /** ServiceAccountTokenProjection expirationSeconds */
                        expirationSeconds?: (number|Long|null);

                        /** ServiceAccountTokenProjection path */
                        path?: (string|null);
                    }

                    /** Represents a ServiceAccountTokenProjection. */
                    class ServiceAccountTokenProjection implements IServiceAccountTokenProjection {

                        /**
                         * Constructs a new ServiceAccountTokenProjection.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IServiceAccountTokenProjection);

                        /** ServiceAccountTokenProjection audience. */
                        public audience: string;

                        /** ServiceAccountTokenProjection expirationSeconds. */
                        public expirationSeconds: (number|Long);

                        /** ServiceAccountTokenProjection path. */
                        public path: string;

                        /**
                         * Creates a new ServiceAccountTokenProjection instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceAccountTokenProjection instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IServiceAccountTokenProjection): k8s.io.api.core.v1.ServiceAccountTokenProjection;

                        /**
                         * Encodes the specified ServiceAccountTokenProjection message. Does not implicitly {@link k8s.io.api.core.v1.ServiceAccountTokenProjection.verify|verify} messages.
                         * @param message ServiceAccountTokenProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IServiceAccountTokenProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceAccountTokenProjection message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ServiceAccountTokenProjection.verify|verify} messages.
                         * @param message ServiceAccountTokenProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IServiceAccountTokenProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceAccountTokenProjection message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceAccountTokenProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ServiceAccountTokenProjection;

                        /**
                         * Decodes a ServiceAccountTokenProjection message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceAccountTokenProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ServiceAccountTokenProjection;

                        /**
                         * Verifies a ServiceAccountTokenProjection message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServiceAccountTokenProjection message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceAccountTokenProjection
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ServiceAccountTokenProjection;

                        /**
                         * Creates a plain object from a ServiceAccountTokenProjection message. Also converts values to other types if specified.
                         * @param message ServiceAccountTokenProjection
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ServiceAccountTokenProjection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServiceAccountTokenProjection to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ServiceList. */
                    interface IServiceList {

                        /** ServiceList metadata */
                        metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ServiceList items */
                        items?: (k8s.io.api.core.v1.IService[]|null);
                    }

                    /** Represents a ServiceList. */
                    class ServiceList implements IServiceList {

                        /**
                         * Constructs a new ServiceList.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IServiceList);

                        /** ServiceList metadata. */
                        public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                        /** ServiceList items. */
                        public items: k8s.io.api.core.v1.IService[];

                        /**
                         * Creates a new ServiceList instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceList instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IServiceList): k8s.io.api.core.v1.ServiceList;

                        /**
                         * Encodes the specified ServiceList message. Does not implicitly {@link k8s.io.api.core.v1.ServiceList.verify|verify} messages.
                         * @param message ServiceList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IServiceList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceList message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ServiceList.verify|verify} messages.
                         * @param message ServiceList message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IServiceList, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceList message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ServiceList;

                        /**
                         * Decodes a ServiceList message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceList
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ServiceList;

                        /**
                         * Verifies a ServiceList message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServiceList message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceList
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ServiceList;

                        /**
                         * Creates a plain object from a ServiceList message. Also converts values to other types if specified.
                         * @param message ServiceList
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ServiceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServiceList to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ServicePort. */
                    interface IServicePort {

                        /** ServicePort name */
                        name?: (string|null);

                        /** ServicePort protocol */
                        protocol?: (string|null);

                        /** ServicePort appProtocol */
                        appProtocol?: (string|null);

                        /** ServicePort port */
                        port?: (number|null);

                        /** ServicePort targetPort */
                        targetPort?: (k8s.io.apimachinery.pkg.util.intstr.IIntOrString|null);

                        /** ServicePort nodePort */
                        nodePort?: (number|null);
                    }

                    /** Represents a ServicePort. */
                    class ServicePort implements IServicePort {

                        /**
                         * Constructs a new ServicePort.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IServicePort);

                        /** ServicePort name. */
                        public name: string;

                        /** ServicePort protocol. */
                        public protocol: string;

                        /** ServicePort appProtocol. */
                        public appProtocol: string;

                        /** ServicePort port. */
                        public port: number;

                        /** ServicePort targetPort. */
                        public targetPort?: (k8s.io.apimachinery.pkg.util.intstr.IIntOrString|null);

                        /** ServicePort nodePort. */
                        public nodePort: number;

                        /**
                         * Creates a new ServicePort instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServicePort instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IServicePort): k8s.io.api.core.v1.ServicePort;

                        /**
                         * Encodes the specified ServicePort message. Does not implicitly {@link k8s.io.api.core.v1.ServicePort.verify|verify} messages.
                         * @param message ServicePort message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IServicePort, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServicePort message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ServicePort.verify|verify} messages.
                         * @param message ServicePort message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IServicePort, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServicePort message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServicePort
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ServicePort;

                        /**
                         * Decodes a ServicePort message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServicePort
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ServicePort;

                        /**
                         * Verifies a ServicePort message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServicePort message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServicePort
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ServicePort;

                        /**
                         * Creates a plain object from a ServicePort message. Also converts values to other types if specified.
                         * @param message ServicePort
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ServicePort, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServicePort to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ServiceProxyOptions. */
                    interface IServiceProxyOptions {

                        /** ServiceProxyOptions path */
                        path?: (string|null);
                    }

                    /** Represents a ServiceProxyOptions. */
                    class ServiceProxyOptions implements IServiceProxyOptions {

                        /**
                         * Constructs a new ServiceProxyOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IServiceProxyOptions);

                        /** ServiceProxyOptions path. */
                        public path: string;

                        /**
                         * Creates a new ServiceProxyOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceProxyOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IServiceProxyOptions): k8s.io.api.core.v1.ServiceProxyOptions;

                        /**
                         * Encodes the specified ServiceProxyOptions message. Does not implicitly {@link k8s.io.api.core.v1.ServiceProxyOptions.verify|verify} messages.
                         * @param message ServiceProxyOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IServiceProxyOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceProxyOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ServiceProxyOptions.verify|verify} messages.
                         * @param message ServiceProxyOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IServiceProxyOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceProxyOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceProxyOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ServiceProxyOptions;

                        /**
                         * Decodes a ServiceProxyOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceProxyOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ServiceProxyOptions;

                        /**
                         * Verifies a ServiceProxyOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServiceProxyOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceProxyOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ServiceProxyOptions;

                        /**
                         * Creates a plain object from a ServiceProxyOptions message. Also converts values to other types if specified.
                         * @param message ServiceProxyOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ServiceProxyOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServiceProxyOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ServiceSpec. */
                    interface IServiceSpec {

                        /** ServiceSpec ports */
                        ports?: (k8s.io.api.core.v1.IServicePort[]|null);

                        /** ServiceSpec selector */
                        selector?: ({ [k: string]: string }|null);

                        /** ServiceSpec clusterIP */
                        clusterIP?: (string|null);

                        /** ServiceSpec clusterIPs */
                        clusterIPs?: (string[]|null);

                        /** ServiceSpec type */
                        type?: (string|null);

                        /** ServiceSpec externalIPs */
                        externalIPs?: (string[]|null);

                        /** ServiceSpec sessionAffinity */
                        sessionAffinity?: (string|null);

                        /** ServiceSpec loadBalancerIP */
                        loadBalancerIP?: (string|null);

                        /** ServiceSpec loadBalancerSourceRanges */
                        loadBalancerSourceRanges?: (string[]|null);

                        /** ServiceSpec externalName */
                        externalName?: (string|null);

                        /** ServiceSpec externalTrafficPolicy */
                        externalTrafficPolicy?: (string|null);

                        /** ServiceSpec healthCheckNodePort */
                        healthCheckNodePort?: (number|null);

                        /** ServiceSpec publishNotReadyAddresses */
                        publishNotReadyAddresses?: (boolean|null);

                        /** ServiceSpec sessionAffinityConfig */
                        sessionAffinityConfig?: (k8s.io.api.core.v1.ISessionAffinityConfig|null);

                        /** ServiceSpec topologyKeys */
                        topologyKeys?: (string[]|null);

                        /** ServiceSpec ipFamilies */
                        ipFamilies?: (string[]|null);

                        /** ServiceSpec ipFamilyPolicy */
                        ipFamilyPolicy?: (string|null);

                        /** ServiceSpec allocateLoadBalancerNodePorts */
                        allocateLoadBalancerNodePorts?: (boolean|null);
                    }

                    /** Represents a ServiceSpec. */
                    class ServiceSpec implements IServiceSpec {

                        /**
                         * Constructs a new ServiceSpec.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IServiceSpec);

                        /** ServiceSpec ports. */
                        public ports: k8s.io.api.core.v1.IServicePort[];

                        /** ServiceSpec selector. */
                        public selector: { [k: string]: string };

                        /** ServiceSpec clusterIP. */
                        public clusterIP: string;

                        /** ServiceSpec clusterIPs. */
                        public clusterIPs: string[];

                        /** ServiceSpec type. */
                        public type: string;

                        /** ServiceSpec externalIPs. */
                        public externalIPs: string[];

                        /** ServiceSpec sessionAffinity. */
                        public sessionAffinity: string;

                        /** ServiceSpec loadBalancerIP. */
                        public loadBalancerIP: string;

                        /** ServiceSpec loadBalancerSourceRanges. */
                        public loadBalancerSourceRanges: string[];

                        /** ServiceSpec externalName. */
                        public externalName: string;

                        /** ServiceSpec externalTrafficPolicy. */
                        public externalTrafficPolicy: string;

                        /** ServiceSpec healthCheckNodePort. */
                        public healthCheckNodePort: number;

                        /** ServiceSpec publishNotReadyAddresses. */
                        public publishNotReadyAddresses: boolean;

                        /** ServiceSpec sessionAffinityConfig. */
                        public sessionAffinityConfig?: (k8s.io.api.core.v1.ISessionAffinityConfig|null);

                        /** ServiceSpec topologyKeys. */
                        public topologyKeys: string[];

                        /** ServiceSpec ipFamilies. */
                        public ipFamilies: string[];

                        /** ServiceSpec ipFamilyPolicy. */
                        public ipFamilyPolicy: string;

                        /** ServiceSpec allocateLoadBalancerNodePorts. */
                        public allocateLoadBalancerNodePorts: boolean;

                        /**
                         * Creates a new ServiceSpec instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceSpec instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IServiceSpec): k8s.io.api.core.v1.ServiceSpec;

                        /**
                         * Encodes the specified ServiceSpec message. Does not implicitly {@link k8s.io.api.core.v1.ServiceSpec.verify|verify} messages.
                         * @param message ServiceSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IServiceSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceSpec message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ServiceSpec.verify|verify} messages.
                         * @param message ServiceSpec message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IServiceSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceSpec message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ServiceSpec;

                        /**
                         * Decodes a ServiceSpec message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceSpec
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ServiceSpec;

                        /**
                         * Verifies a ServiceSpec message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServiceSpec message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceSpec
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ServiceSpec;

                        /**
                         * Creates a plain object from a ServiceSpec message. Also converts values to other types if specified.
                         * @param message ServiceSpec
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ServiceSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServiceSpec to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a ServiceStatus. */
                    interface IServiceStatus {

                        /** ServiceStatus loadBalancer */
                        loadBalancer?: (k8s.io.api.core.v1.ILoadBalancerStatus|null);

                        /** ServiceStatus conditions */
                        conditions?: (k8s.io.apimachinery.pkg.apis.meta.v1.ICondition[]|null);
                    }

                    /** Represents a ServiceStatus. */
                    class ServiceStatus implements IServiceStatus {

                        /**
                         * Constructs a new ServiceStatus.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IServiceStatus);

                        /** ServiceStatus loadBalancer. */
                        public loadBalancer?: (k8s.io.api.core.v1.ILoadBalancerStatus|null);

                        /** ServiceStatus conditions. */
                        public conditions: k8s.io.apimachinery.pkg.apis.meta.v1.ICondition[];

                        /**
                         * Creates a new ServiceStatus instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServiceStatus instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IServiceStatus): k8s.io.api.core.v1.ServiceStatus;

                        /**
                         * Encodes the specified ServiceStatus message. Does not implicitly {@link k8s.io.api.core.v1.ServiceStatus.verify|verify} messages.
                         * @param message ServiceStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IServiceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServiceStatus message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.ServiceStatus.verify|verify} messages.
                         * @param message ServiceStatus message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IServiceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServiceStatus message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServiceStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.ServiceStatus;

                        /**
                         * Decodes a ServiceStatus message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServiceStatus
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.ServiceStatus;

                        /**
                         * Verifies a ServiceStatus message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServiceStatus message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServiceStatus
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.ServiceStatus;

                        /**
                         * Creates a plain object from a ServiceStatus message. Also converts values to other types if specified.
                         * @param message ServiceStatus
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.ServiceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServiceStatus to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a SessionAffinityConfig. */
                    interface ISessionAffinityConfig {

                        /** SessionAffinityConfig clientIP */
                        clientIP?: (k8s.io.api.core.v1.IClientIPConfig|null);
                    }

                    /** Represents a SessionAffinityConfig. */
                    class SessionAffinityConfig implements ISessionAffinityConfig {

                        /**
                         * Constructs a new SessionAffinityConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISessionAffinityConfig);

                        /** SessionAffinityConfig clientIP. */
                        public clientIP?: (k8s.io.api.core.v1.IClientIPConfig|null);

                        /**
                         * Creates a new SessionAffinityConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SessionAffinityConfig instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISessionAffinityConfig): k8s.io.api.core.v1.SessionAffinityConfig;

                        /**
                         * Encodes the specified SessionAffinityConfig message. Does not implicitly {@link k8s.io.api.core.v1.SessionAffinityConfig.verify|verify} messages.
                         * @param message SessionAffinityConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISessionAffinityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SessionAffinityConfig message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.SessionAffinityConfig.verify|verify} messages.
                         * @param message SessionAffinityConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISessionAffinityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SessionAffinityConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SessionAffinityConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.SessionAffinityConfig;

                        /**
                         * Decodes a SessionAffinityConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SessionAffinityConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.SessionAffinityConfig;

                        /**
                         * Verifies a SessionAffinityConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SessionAffinityConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SessionAffinityConfig
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.SessionAffinityConfig;

                        /**
                         * Creates a plain object from a SessionAffinityConfig message. Also converts values to other types if specified.
                         * @param message SessionAffinityConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.SessionAffinityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SessionAffinityConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a StorageOSPersistentVolumeSource. */
                    interface IStorageOSPersistentVolumeSource {

                        /** StorageOSPersistentVolumeSource volumeName */
                        volumeName?: (string|null);

                        /** StorageOSPersistentVolumeSource volumeNamespace */
                        volumeNamespace?: (string|null);

                        /** StorageOSPersistentVolumeSource fsType */
                        fsType?: (string|null);

                        /** StorageOSPersistentVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** StorageOSPersistentVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.IObjectReference|null);
                    }

                    /** Represents a StorageOSPersistentVolumeSource. */
                    class StorageOSPersistentVolumeSource implements IStorageOSPersistentVolumeSource {

                        /**
                         * Constructs a new StorageOSPersistentVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IStorageOSPersistentVolumeSource);

                        /** StorageOSPersistentVolumeSource volumeName. */
                        public volumeName: string;

                        /** StorageOSPersistentVolumeSource volumeNamespace. */
                        public volumeNamespace: string;

                        /** StorageOSPersistentVolumeSource fsType. */
                        public fsType: string;

                        /** StorageOSPersistentVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** StorageOSPersistentVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.IObjectReference|null);

                        /**
                         * Creates a new StorageOSPersistentVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns StorageOSPersistentVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IStorageOSPersistentVolumeSource): k8s.io.api.core.v1.StorageOSPersistentVolumeSource;

                        /**
                         * Encodes the specified StorageOSPersistentVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.StorageOSPersistentVolumeSource.verify|verify} messages.
                         * @param message StorageOSPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IStorageOSPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified StorageOSPersistentVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.StorageOSPersistentVolumeSource.verify|verify} messages.
                         * @param message StorageOSPersistentVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IStorageOSPersistentVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a StorageOSPersistentVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns StorageOSPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.StorageOSPersistentVolumeSource;

                        /**
                         * Decodes a StorageOSPersistentVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns StorageOSPersistentVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.StorageOSPersistentVolumeSource;

                        /**
                         * Verifies a StorageOSPersistentVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a StorageOSPersistentVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns StorageOSPersistentVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.StorageOSPersistentVolumeSource;

                        /**
                         * Creates a plain object from a StorageOSPersistentVolumeSource message. Also converts values to other types if specified.
                         * @param message StorageOSPersistentVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.StorageOSPersistentVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this StorageOSPersistentVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a StorageOSVolumeSource. */
                    interface IStorageOSVolumeSource {

                        /** StorageOSVolumeSource volumeName */
                        volumeName?: (string|null);

                        /** StorageOSVolumeSource volumeNamespace */
                        volumeNamespace?: (string|null);

                        /** StorageOSVolumeSource fsType */
                        fsType?: (string|null);

                        /** StorageOSVolumeSource readOnly */
                        readOnly?: (boolean|null);

                        /** StorageOSVolumeSource secretRef */
                        secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);
                    }

                    /** Represents a StorageOSVolumeSource. */
                    class StorageOSVolumeSource implements IStorageOSVolumeSource {

                        /**
                         * Constructs a new StorageOSVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IStorageOSVolumeSource);

                        /** StorageOSVolumeSource volumeName. */
                        public volumeName: string;

                        /** StorageOSVolumeSource volumeNamespace. */
                        public volumeNamespace: string;

                        /** StorageOSVolumeSource fsType. */
                        public fsType: string;

                        /** StorageOSVolumeSource readOnly. */
                        public readOnly: boolean;

                        /** StorageOSVolumeSource secretRef. */
                        public secretRef?: (k8s.io.api.core.v1.ILocalObjectReference|null);

                        /**
                         * Creates a new StorageOSVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns StorageOSVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IStorageOSVolumeSource): k8s.io.api.core.v1.StorageOSVolumeSource;

                        /**
                         * Encodes the specified StorageOSVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.StorageOSVolumeSource.verify|verify} messages.
                         * @param message StorageOSVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IStorageOSVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified StorageOSVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.StorageOSVolumeSource.verify|verify} messages.
                         * @param message StorageOSVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IStorageOSVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a StorageOSVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns StorageOSVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.StorageOSVolumeSource;

                        /**
                         * Decodes a StorageOSVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns StorageOSVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.StorageOSVolumeSource;

                        /**
                         * Verifies a StorageOSVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a StorageOSVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns StorageOSVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.StorageOSVolumeSource;

                        /**
                         * Creates a plain object from a StorageOSVolumeSource message. Also converts values to other types if specified.
                         * @param message StorageOSVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.StorageOSVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this StorageOSVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Sysctl. */
                    interface ISysctl {

                        /** Sysctl name */
                        name?: (string|null);

                        /** Sysctl value */
                        value?: (string|null);
                    }

                    /** Represents a Sysctl. */
                    class Sysctl implements ISysctl {

                        /**
                         * Constructs a new Sysctl.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ISysctl);

                        /** Sysctl name. */
                        public name: string;

                        /** Sysctl value. */
                        public value: string;

                        /**
                         * Creates a new Sysctl instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Sysctl instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ISysctl): k8s.io.api.core.v1.Sysctl;

                        /**
                         * Encodes the specified Sysctl message. Does not implicitly {@link k8s.io.api.core.v1.Sysctl.verify|verify} messages.
                         * @param message Sysctl message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ISysctl, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Sysctl message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Sysctl.verify|verify} messages.
                         * @param message Sysctl message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ISysctl, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Sysctl message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Sysctl
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Sysctl;

                        /**
                         * Decodes a Sysctl message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Sysctl
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Sysctl;

                        /**
                         * Verifies a Sysctl message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Sysctl message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Sysctl
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Sysctl;

                        /**
                         * Creates a plain object from a Sysctl message. Also converts values to other types if specified.
                         * @param message Sysctl
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Sysctl, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Sysctl to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a TCPSocketAction. */
                    interface ITCPSocketAction {

                        /** TCPSocketAction port */
                        port?: (k8s.io.apimachinery.pkg.util.intstr.IIntOrString|null);

                        /** TCPSocketAction host */
                        host?: (string|null);
                    }

                    /** Represents a TCPSocketAction. */
                    class TCPSocketAction implements ITCPSocketAction {

                        /**
                         * Constructs a new TCPSocketAction.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ITCPSocketAction);

                        /** TCPSocketAction port. */
                        public port?: (k8s.io.apimachinery.pkg.util.intstr.IIntOrString|null);

                        /** TCPSocketAction host. */
                        public host: string;

                        /**
                         * Creates a new TCPSocketAction instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TCPSocketAction instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ITCPSocketAction): k8s.io.api.core.v1.TCPSocketAction;

                        /**
                         * Encodes the specified TCPSocketAction message. Does not implicitly {@link k8s.io.api.core.v1.TCPSocketAction.verify|verify} messages.
                         * @param message TCPSocketAction message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ITCPSocketAction, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TCPSocketAction message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.TCPSocketAction.verify|verify} messages.
                         * @param message TCPSocketAction message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ITCPSocketAction, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TCPSocketAction message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TCPSocketAction
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.TCPSocketAction;

                        /**
                         * Decodes a TCPSocketAction message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TCPSocketAction
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.TCPSocketAction;

                        /**
                         * Verifies a TCPSocketAction message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a TCPSocketAction message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TCPSocketAction
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.TCPSocketAction;

                        /**
                         * Creates a plain object from a TCPSocketAction message. Also converts values to other types if specified.
                         * @param message TCPSocketAction
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.TCPSocketAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TCPSocketAction to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Taint. */
                    interface ITaint {

                        /** Taint key */
                        key?: (string|null);

                        /** Taint value */
                        value?: (string|null);

                        /** Taint effect */
                        effect?: (string|null);

                        /** Taint timeAdded */
                        timeAdded?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);
                    }

                    /** Represents a Taint. */
                    class Taint implements ITaint {

                        /**
                         * Constructs a new Taint.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ITaint);

                        /** Taint key. */
                        public key: string;

                        /** Taint value. */
                        public value: string;

                        /** Taint effect. */
                        public effect: string;

                        /** Taint timeAdded. */
                        public timeAdded?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                        /**
                         * Creates a new Taint instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Taint instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ITaint): k8s.io.api.core.v1.Taint;

                        /**
                         * Encodes the specified Taint message. Does not implicitly {@link k8s.io.api.core.v1.Taint.verify|verify} messages.
                         * @param message Taint message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ITaint, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Taint message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Taint.verify|verify} messages.
                         * @param message Taint message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ITaint, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Taint message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Taint
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Taint;

                        /**
                         * Decodes a Taint message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Taint
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Taint;

                        /**
                         * Verifies a Taint message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Taint message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Taint
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Taint;

                        /**
                         * Creates a plain object from a Taint message. Also converts values to other types if specified.
                         * @param message Taint
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Taint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Taint to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Toleration. */
                    interface IToleration {

                        /** Toleration key */
                        key?: (string|null);

                        /** Toleration operator */
                        operator?: (string|null);

                        /** Toleration value */
                        value?: (string|null);

                        /** Toleration effect */
                        effect?: (string|null);

                        /** Toleration tolerationSeconds */
                        tolerationSeconds?: (number|Long|null);
                    }

                    /** Represents a Toleration. */
                    class Toleration implements IToleration {

                        /**
                         * Constructs a new Toleration.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IToleration);

                        /** Toleration key. */
                        public key: string;

                        /** Toleration operator. */
                        public operator: string;

                        /** Toleration value. */
                        public value: string;

                        /** Toleration effect. */
                        public effect: string;

                        /** Toleration tolerationSeconds. */
                        public tolerationSeconds: (number|Long);

                        /**
                         * Creates a new Toleration instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Toleration instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IToleration): k8s.io.api.core.v1.Toleration;

                        /**
                         * Encodes the specified Toleration message. Does not implicitly {@link k8s.io.api.core.v1.Toleration.verify|verify} messages.
                         * @param message Toleration message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IToleration, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Toleration message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Toleration.verify|verify} messages.
                         * @param message Toleration message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IToleration, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Toleration message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Toleration
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Toleration;

                        /**
                         * Decodes a Toleration message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Toleration
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Toleration;

                        /**
                         * Verifies a Toleration message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Toleration message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Toleration
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Toleration;

                        /**
                         * Creates a plain object from a Toleration message. Also converts values to other types if specified.
                         * @param message Toleration
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Toleration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Toleration to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a TopologySelectorLabelRequirement. */
                    interface ITopologySelectorLabelRequirement {

                        /** TopologySelectorLabelRequirement key */
                        key?: (string|null);

                        /** TopologySelectorLabelRequirement values */
                        values?: (string[]|null);
                    }

                    /** Represents a TopologySelectorLabelRequirement. */
                    class TopologySelectorLabelRequirement implements ITopologySelectorLabelRequirement {

                        /**
                         * Constructs a new TopologySelectorLabelRequirement.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ITopologySelectorLabelRequirement);

                        /** TopologySelectorLabelRequirement key. */
                        public key: string;

                        /** TopologySelectorLabelRequirement values. */
                        public values: string[];

                        /**
                         * Creates a new TopologySelectorLabelRequirement instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TopologySelectorLabelRequirement instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ITopologySelectorLabelRequirement): k8s.io.api.core.v1.TopologySelectorLabelRequirement;

                        /**
                         * Encodes the specified TopologySelectorLabelRequirement message. Does not implicitly {@link k8s.io.api.core.v1.TopologySelectorLabelRequirement.verify|verify} messages.
                         * @param message TopologySelectorLabelRequirement message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ITopologySelectorLabelRequirement, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TopologySelectorLabelRequirement message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.TopologySelectorLabelRequirement.verify|verify} messages.
                         * @param message TopologySelectorLabelRequirement message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ITopologySelectorLabelRequirement, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TopologySelectorLabelRequirement message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TopologySelectorLabelRequirement
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.TopologySelectorLabelRequirement;

                        /**
                         * Decodes a TopologySelectorLabelRequirement message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TopologySelectorLabelRequirement
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.TopologySelectorLabelRequirement;

                        /**
                         * Verifies a TopologySelectorLabelRequirement message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a TopologySelectorLabelRequirement message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TopologySelectorLabelRequirement
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.TopologySelectorLabelRequirement;

                        /**
                         * Creates a plain object from a TopologySelectorLabelRequirement message. Also converts values to other types if specified.
                         * @param message TopologySelectorLabelRequirement
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.TopologySelectorLabelRequirement, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TopologySelectorLabelRequirement to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a TopologySelectorTerm. */
                    interface ITopologySelectorTerm {

                        /** TopologySelectorTerm matchLabelExpressions */
                        matchLabelExpressions?: (k8s.io.api.core.v1.ITopologySelectorLabelRequirement[]|null);
                    }

                    /** Represents a TopologySelectorTerm. */
                    class TopologySelectorTerm implements ITopologySelectorTerm {

                        /**
                         * Constructs a new TopologySelectorTerm.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ITopologySelectorTerm);

                        /** TopologySelectorTerm matchLabelExpressions. */
                        public matchLabelExpressions: k8s.io.api.core.v1.ITopologySelectorLabelRequirement[];

                        /**
                         * Creates a new TopologySelectorTerm instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TopologySelectorTerm instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ITopologySelectorTerm): k8s.io.api.core.v1.TopologySelectorTerm;

                        /**
                         * Encodes the specified TopologySelectorTerm message. Does not implicitly {@link k8s.io.api.core.v1.TopologySelectorTerm.verify|verify} messages.
                         * @param message TopologySelectorTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ITopologySelectorTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TopologySelectorTerm message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.TopologySelectorTerm.verify|verify} messages.
                         * @param message TopologySelectorTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ITopologySelectorTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TopologySelectorTerm message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TopologySelectorTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.TopologySelectorTerm;

                        /**
                         * Decodes a TopologySelectorTerm message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TopologySelectorTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.TopologySelectorTerm;

                        /**
                         * Verifies a TopologySelectorTerm message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a TopologySelectorTerm message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TopologySelectorTerm
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.TopologySelectorTerm;

                        /**
                         * Creates a plain object from a TopologySelectorTerm message. Also converts values to other types if specified.
                         * @param message TopologySelectorTerm
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.TopologySelectorTerm, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TopologySelectorTerm to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a TopologySpreadConstraint. */
                    interface ITopologySpreadConstraint {

                        /** TopologySpreadConstraint maxSkew */
                        maxSkew?: (number|null);

                        /** TopologySpreadConstraint topologyKey */
                        topologyKey?: (string|null);

                        /** TopologySpreadConstraint whenUnsatisfiable */
                        whenUnsatisfiable?: (string|null);

                        /** TopologySpreadConstraint labelSelector */
                        labelSelector?: (k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector|null);
                    }

                    /** Represents a TopologySpreadConstraint. */
                    class TopologySpreadConstraint implements ITopologySpreadConstraint {

                        /**
                         * Constructs a new TopologySpreadConstraint.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ITopologySpreadConstraint);

                        /** TopologySpreadConstraint maxSkew. */
                        public maxSkew: number;

                        /** TopologySpreadConstraint topologyKey. */
                        public topologyKey: string;

                        /** TopologySpreadConstraint whenUnsatisfiable. */
                        public whenUnsatisfiable: string;

                        /** TopologySpreadConstraint labelSelector. */
                        public labelSelector?: (k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector|null);

                        /**
                         * Creates a new TopologySpreadConstraint instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TopologySpreadConstraint instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ITopologySpreadConstraint): k8s.io.api.core.v1.TopologySpreadConstraint;

                        /**
                         * Encodes the specified TopologySpreadConstraint message. Does not implicitly {@link k8s.io.api.core.v1.TopologySpreadConstraint.verify|verify} messages.
                         * @param message TopologySpreadConstraint message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ITopologySpreadConstraint, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TopologySpreadConstraint message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.TopologySpreadConstraint.verify|verify} messages.
                         * @param message TopologySpreadConstraint message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ITopologySpreadConstraint, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TopologySpreadConstraint message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TopologySpreadConstraint
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.TopologySpreadConstraint;

                        /**
                         * Decodes a TopologySpreadConstraint message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TopologySpreadConstraint
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.TopologySpreadConstraint;

                        /**
                         * Verifies a TopologySpreadConstraint message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a TopologySpreadConstraint message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TopologySpreadConstraint
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.TopologySpreadConstraint;

                        /**
                         * Creates a plain object from a TopologySpreadConstraint message. Also converts values to other types if specified.
                         * @param message TopologySpreadConstraint
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.TopologySpreadConstraint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TopologySpreadConstraint to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a TypedLocalObjectReference. */
                    interface ITypedLocalObjectReference {

                        /** TypedLocalObjectReference apiGroup */
                        apiGroup?: (string|null);

                        /** TypedLocalObjectReference kind */
                        kind?: (string|null);

                        /** TypedLocalObjectReference name */
                        name?: (string|null);
                    }

                    /** Represents a TypedLocalObjectReference. */
                    class TypedLocalObjectReference implements ITypedLocalObjectReference {

                        /**
                         * Constructs a new TypedLocalObjectReference.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.ITypedLocalObjectReference);

                        /** TypedLocalObjectReference apiGroup. */
                        public apiGroup: string;

                        /** TypedLocalObjectReference kind. */
                        public kind: string;

                        /** TypedLocalObjectReference name. */
                        public name: string;

                        /**
                         * Creates a new TypedLocalObjectReference instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TypedLocalObjectReference instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.ITypedLocalObjectReference): k8s.io.api.core.v1.TypedLocalObjectReference;

                        /**
                         * Encodes the specified TypedLocalObjectReference message. Does not implicitly {@link k8s.io.api.core.v1.TypedLocalObjectReference.verify|verify} messages.
                         * @param message TypedLocalObjectReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.ITypedLocalObjectReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TypedLocalObjectReference message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.TypedLocalObjectReference.verify|verify} messages.
                         * @param message TypedLocalObjectReference message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.ITypedLocalObjectReference, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TypedLocalObjectReference message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TypedLocalObjectReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.TypedLocalObjectReference;

                        /**
                         * Decodes a TypedLocalObjectReference message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TypedLocalObjectReference
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.TypedLocalObjectReference;

                        /**
                         * Verifies a TypedLocalObjectReference message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a TypedLocalObjectReference message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TypedLocalObjectReference
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.TypedLocalObjectReference;

                        /**
                         * Creates a plain object from a TypedLocalObjectReference message. Also converts values to other types if specified.
                         * @param message TypedLocalObjectReference
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.TypedLocalObjectReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TypedLocalObjectReference to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a Volume. */
                    interface IVolume {

                        /** Volume name */
                        name?: (string|null);

                        /** Volume volumeSource */
                        volumeSource?: (k8s.io.api.core.v1.IVolumeSource|null);
                    }

                    /** Represents a Volume. */
                    class Volume implements IVolume {

                        /**
                         * Constructs a new Volume.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IVolume);

                        /** Volume name. */
                        public name: string;

                        /** Volume volumeSource. */
                        public volumeSource?: (k8s.io.api.core.v1.IVolumeSource|null);

                        /**
                         * Creates a new Volume instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Volume instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IVolume): k8s.io.api.core.v1.Volume;

                        /**
                         * Encodes the specified Volume message. Does not implicitly {@link k8s.io.api.core.v1.Volume.verify|verify} messages.
                         * @param message Volume message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IVolume, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Volume message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.Volume.verify|verify} messages.
                         * @param message Volume message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IVolume, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Volume message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Volume
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.Volume;

                        /**
                         * Decodes a Volume message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Volume
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.Volume;

                        /**
                         * Verifies a Volume message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Volume message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Volume
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.Volume;

                        /**
                         * Creates a plain object from a Volume message. Also converts values to other types if specified.
                         * @param message Volume
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.Volume, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Volume to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a VolumeDevice. */
                    interface IVolumeDevice {

                        /** VolumeDevice name */
                        name?: (string|null);

                        /** VolumeDevice devicePath */
                        devicePath?: (string|null);
                    }

                    /** Represents a VolumeDevice. */
                    class VolumeDevice implements IVolumeDevice {

                        /**
                         * Constructs a new VolumeDevice.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IVolumeDevice);

                        /** VolumeDevice name. */
                        public name: string;

                        /** VolumeDevice devicePath. */
                        public devicePath: string;

                        /**
                         * Creates a new VolumeDevice instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns VolumeDevice instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IVolumeDevice): k8s.io.api.core.v1.VolumeDevice;

                        /**
                         * Encodes the specified VolumeDevice message. Does not implicitly {@link k8s.io.api.core.v1.VolumeDevice.verify|verify} messages.
                         * @param message VolumeDevice message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IVolumeDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified VolumeDevice message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.VolumeDevice.verify|verify} messages.
                         * @param message VolumeDevice message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IVolumeDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a VolumeDevice message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns VolumeDevice
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.VolumeDevice;

                        /**
                         * Decodes a VolumeDevice message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns VolumeDevice
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.VolumeDevice;

                        /**
                         * Verifies a VolumeDevice message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a VolumeDevice message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns VolumeDevice
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.VolumeDevice;

                        /**
                         * Creates a plain object from a VolumeDevice message. Also converts values to other types if specified.
                         * @param message VolumeDevice
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.VolumeDevice, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this VolumeDevice to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a VolumeMount. */
                    interface IVolumeMount {

                        /** VolumeMount name */
                        name?: (string|null);

                        /** VolumeMount readOnly */
                        readOnly?: (boolean|null);

                        /** VolumeMount mountPath */
                        mountPath?: (string|null);

                        /** VolumeMount subPath */
                        subPath?: (string|null);

                        /** VolumeMount mountPropagation */
                        mountPropagation?: (string|null);

                        /** VolumeMount subPathExpr */
                        subPathExpr?: (string|null);
                    }

                    /** Represents a VolumeMount. */
                    class VolumeMount implements IVolumeMount {

                        /**
                         * Constructs a new VolumeMount.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IVolumeMount);

                        /** VolumeMount name. */
                        public name: string;

                        /** VolumeMount readOnly. */
                        public readOnly: boolean;

                        /** VolumeMount mountPath. */
                        public mountPath: string;

                        /** VolumeMount subPath. */
                        public subPath: string;

                        /** VolumeMount mountPropagation. */
                        public mountPropagation: string;

                        /** VolumeMount subPathExpr. */
                        public subPathExpr: string;

                        /**
                         * Creates a new VolumeMount instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns VolumeMount instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IVolumeMount): k8s.io.api.core.v1.VolumeMount;

                        /**
                         * Encodes the specified VolumeMount message. Does not implicitly {@link k8s.io.api.core.v1.VolumeMount.verify|verify} messages.
                         * @param message VolumeMount message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IVolumeMount, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified VolumeMount message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.VolumeMount.verify|verify} messages.
                         * @param message VolumeMount message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IVolumeMount, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a VolumeMount message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns VolumeMount
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.VolumeMount;

                        /**
                         * Decodes a VolumeMount message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns VolumeMount
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.VolumeMount;

                        /**
                         * Verifies a VolumeMount message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a VolumeMount message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns VolumeMount
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.VolumeMount;

                        /**
                         * Creates a plain object from a VolumeMount message. Also converts values to other types if specified.
                         * @param message VolumeMount
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.VolumeMount, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this VolumeMount to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a VolumeNodeAffinity. */
                    interface IVolumeNodeAffinity {

                        /** VolumeNodeAffinity required */
                        required?: (k8s.io.api.core.v1.INodeSelector|null);
                    }

                    /** Represents a VolumeNodeAffinity. */
                    class VolumeNodeAffinity implements IVolumeNodeAffinity {

                        /**
                         * Constructs a new VolumeNodeAffinity.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IVolumeNodeAffinity);

                        /** VolumeNodeAffinity required. */
                        public required?: (k8s.io.api.core.v1.INodeSelector|null);

                        /**
                         * Creates a new VolumeNodeAffinity instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns VolumeNodeAffinity instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IVolumeNodeAffinity): k8s.io.api.core.v1.VolumeNodeAffinity;

                        /**
                         * Encodes the specified VolumeNodeAffinity message. Does not implicitly {@link k8s.io.api.core.v1.VolumeNodeAffinity.verify|verify} messages.
                         * @param message VolumeNodeAffinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IVolumeNodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified VolumeNodeAffinity message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.VolumeNodeAffinity.verify|verify} messages.
                         * @param message VolumeNodeAffinity message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IVolumeNodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a VolumeNodeAffinity message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns VolumeNodeAffinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.VolumeNodeAffinity;

                        /**
                         * Decodes a VolumeNodeAffinity message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns VolumeNodeAffinity
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.VolumeNodeAffinity;

                        /**
                         * Verifies a VolumeNodeAffinity message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a VolumeNodeAffinity message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns VolumeNodeAffinity
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.VolumeNodeAffinity;

                        /**
                         * Creates a plain object from a VolumeNodeAffinity message. Also converts values to other types if specified.
                         * @param message VolumeNodeAffinity
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.VolumeNodeAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this VolumeNodeAffinity to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a VolumeProjection. */
                    interface IVolumeProjection {

                        /** VolumeProjection secret */
                        secret?: (k8s.io.api.core.v1.ISecretProjection|null);

                        /** VolumeProjection downwardAPI */
                        downwardAPI?: (k8s.io.api.core.v1.IDownwardAPIProjection|null);

                        /** VolumeProjection configMap */
                        configMap?: (k8s.io.api.core.v1.IConfigMapProjection|null);

                        /** VolumeProjection serviceAccountToken */
                        serviceAccountToken?: (k8s.io.api.core.v1.IServiceAccountTokenProjection|null);
                    }

                    /** Represents a VolumeProjection. */
                    class VolumeProjection implements IVolumeProjection {

                        /**
                         * Constructs a new VolumeProjection.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IVolumeProjection);

                        /** VolumeProjection secret. */
                        public secret?: (k8s.io.api.core.v1.ISecretProjection|null);

                        /** VolumeProjection downwardAPI. */
                        public downwardAPI?: (k8s.io.api.core.v1.IDownwardAPIProjection|null);

                        /** VolumeProjection configMap. */
                        public configMap?: (k8s.io.api.core.v1.IConfigMapProjection|null);

                        /** VolumeProjection serviceAccountToken. */
                        public serviceAccountToken?: (k8s.io.api.core.v1.IServiceAccountTokenProjection|null);

                        /**
                         * Creates a new VolumeProjection instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns VolumeProjection instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IVolumeProjection): k8s.io.api.core.v1.VolumeProjection;

                        /**
                         * Encodes the specified VolumeProjection message. Does not implicitly {@link k8s.io.api.core.v1.VolumeProjection.verify|verify} messages.
                         * @param message VolumeProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IVolumeProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified VolumeProjection message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.VolumeProjection.verify|verify} messages.
                         * @param message VolumeProjection message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IVolumeProjection, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a VolumeProjection message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns VolumeProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.VolumeProjection;

                        /**
                         * Decodes a VolumeProjection message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns VolumeProjection
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.VolumeProjection;

                        /**
                         * Verifies a VolumeProjection message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a VolumeProjection message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns VolumeProjection
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.VolumeProjection;

                        /**
                         * Creates a plain object from a VolumeProjection message. Also converts values to other types if specified.
                         * @param message VolumeProjection
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.VolumeProjection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this VolumeProjection to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a VolumeSource. */
                    interface IVolumeSource {

                        /** VolumeSource hostPath */
                        hostPath?: (k8s.io.api.core.v1.IHostPathVolumeSource|null);

                        /** VolumeSource emptyDir */
                        emptyDir?: (k8s.io.api.core.v1.IEmptyDirVolumeSource|null);

                        /** VolumeSource gcePersistentDisk */
                        gcePersistentDisk?: (k8s.io.api.core.v1.IGCEPersistentDiskVolumeSource|null);

                        /** VolumeSource awsElasticBlockStore */
                        awsElasticBlockStore?: (k8s.io.api.core.v1.IAWSElasticBlockStoreVolumeSource|null);

                        /** VolumeSource gitRepo */
                        gitRepo?: (k8s.io.api.core.v1.IGitRepoVolumeSource|null);

                        /** VolumeSource secret */
                        secret?: (k8s.io.api.core.v1.ISecretVolumeSource|null);

                        /** VolumeSource nfs */
                        nfs?: (k8s.io.api.core.v1.INFSVolumeSource|null);

                        /** VolumeSource iscsi */
                        iscsi?: (k8s.io.api.core.v1.IISCSIVolumeSource|null);

                        /** VolumeSource glusterfs */
                        glusterfs?: (k8s.io.api.core.v1.IGlusterfsVolumeSource|null);

                        /** VolumeSource persistentVolumeClaim */
                        persistentVolumeClaim?: (k8s.io.api.core.v1.IPersistentVolumeClaimVolumeSource|null);

                        /** VolumeSource rbd */
                        rbd?: (k8s.io.api.core.v1.IRBDVolumeSource|null);

                        /** VolumeSource flexVolume */
                        flexVolume?: (k8s.io.api.core.v1.IFlexVolumeSource|null);

                        /** VolumeSource cinder */
                        cinder?: (k8s.io.api.core.v1.ICinderVolumeSource|null);

                        /** VolumeSource cephfs */
                        cephfs?: (k8s.io.api.core.v1.ICephFSVolumeSource|null);

                        /** VolumeSource flocker */
                        flocker?: (k8s.io.api.core.v1.IFlockerVolumeSource|null);

                        /** VolumeSource downwardAPI */
                        downwardAPI?: (k8s.io.api.core.v1.IDownwardAPIVolumeSource|null);

                        /** VolumeSource fc */
                        fc?: (k8s.io.api.core.v1.IFCVolumeSource|null);

                        /** VolumeSource azureFile */
                        azureFile?: (k8s.io.api.core.v1.IAzureFileVolumeSource|null);

                        /** VolumeSource configMap */
                        configMap?: (k8s.io.api.core.v1.IConfigMapVolumeSource|null);

                        /** VolumeSource vsphereVolume */
                        vsphereVolume?: (k8s.io.api.core.v1.IVsphereVirtualDiskVolumeSource|null);

                        /** VolumeSource quobyte */
                        quobyte?: (k8s.io.api.core.v1.IQuobyteVolumeSource|null);

                        /** VolumeSource azureDisk */
                        azureDisk?: (k8s.io.api.core.v1.IAzureDiskVolumeSource|null);

                        /** VolumeSource photonPersistentDisk */
                        photonPersistentDisk?: (k8s.io.api.core.v1.IPhotonPersistentDiskVolumeSource|null);

                        /** VolumeSource projected */
                        projected?: (k8s.io.api.core.v1.IProjectedVolumeSource|null);

                        /** VolumeSource portworxVolume */
                        portworxVolume?: (k8s.io.api.core.v1.IPortworxVolumeSource|null);

                        /** VolumeSource scaleIO */
                        scaleIO?: (k8s.io.api.core.v1.IScaleIOVolumeSource|null);

                        /** VolumeSource storageos */
                        storageos?: (k8s.io.api.core.v1.IStorageOSVolumeSource|null);

                        /** VolumeSource csi */
                        csi?: (k8s.io.api.core.v1.ICSIVolumeSource|null);

                        /** VolumeSource ephemeral */
                        ephemeral?: (k8s.io.api.core.v1.IEphemeralVolumeSource|null);
                    }

                    /** Represents a VolumeSource. */
                    class VolumeSource implements IVolumeSource {

                        /**
                         * Constructs a new VolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IVolumeSource);

                        /** VolumeSource hostPath. */
                        public hostPath?: (k8s.io.api.core.v1.IHostPathVolumeSource|null);

                        /** VolumeSource emptyDir. */
                        public emptyDir?: (k8s.io.api.core.v1.IEmptyDirVolumeSource|null);

                        /** VolumeSource gcePersistentDisk. */
                        public gcePersistentDisk?: (k8s.io.api.core.v1.IGCEPersistentDiskVolumeSource|null);

                        /** VolumeSource awsElasticBlockStore. */
                        public awsElasticBlockStore?: (k8s.io.api.core.v1.IAWSElasticBlockStoreVolumeSource|null);

                        /** VolumeSource gitRepo. */
                        public gitRepo?: (k8s.io.api.core.v1.IGitRepoVolumeSource|null);

                        /** VolumeSource secret. */
                        public secret?: (k8s.io.api.core.v1.ISecretVolumeSource|null);

                        /** VolumeSource nfs. */
                        public nfs?: (k8s.io.api.core.v1.INFSVolumeSource|null);

                        /** VolumeSource iscsi. */
                        public iscsi?: (k8s.io.api.core.v1.IISCSIVolumeSource|null);

                        /** VolumeSource glusterfs. */
                        public glusterfs?: (k8s.io.api.core.v1.IGlusterfsVolumeSource|null);

                        /** VolumeSource persistentVolumeClaim. */
                        public persistentVolumeClaim?: (k8s.io.api.core.v1.IPersistentVolumeClaimVolumeSource|null);

                        /** VolumeSource rbd. */
                        public rbd?: (k8s.io.api.core.v1.IRBDVolumeSource|null);

                        /** VolumeSource flexVolume. */
                        public flexVolume?: (k8s.io.api.core.v1.IFlexVolumeSource|null);

                        /** VolumeSource cinder. */
                        public cinder?: (k8s.io.api.core.v1.ICinderVolumeSource|null);

                        /** VolumeSource cephfs. */
                        public cephfs?: (k8s.io.api.core.v1.ICephFSVolumeSource|null);

                        /** VolumeSource flocker. */
                        public flocker?: (k8s.io.api.core.v1.IFlockerVolumeSource|null);

                        /** VolumeSource downwardAPI. */
                        public downwardAPI?: (k8s.io.api.core.v1.IDownwardAPIVolumeSource|null);

                        /** VolumeSource fc. */
                        public fc?: (k8s.io.api.core.v1.IFCVolumeSource|null);

                        /** VolumeSource azureFile. */
                        public azureFile?: (k8s.io.api.core.v1.IAzureFileVolumeSource|null);

                        /** VolumeSource configMap. */
                        public configMap?: (k8s.io.api.core.v1.IConfigMapVolumeSource|null);

                        /** VolumeSource vsphereVolume. */
                        public vsphereVolume?: (k8s.io.api.core.v1.IVsphereVirtualDiskVolumeSource|null);

                        /** VolumeSource quobyte. */
                        public quobyte?: (k8s.io.api.core.v1.IQuobyteVolumeSource|null);

                        /** VolumeSource azureDisk. */
                        public azureDisk?: (k8s.io.api.core.v1.IAzureDiskVolumeSource|null);

                        /** VolumeSource photonPersistentDisk. */
                        public photonPersistentDisk?: (k8s.io.api.core.v1.IPhotonPersistentDiskVolumeSource|null);

                        /** VolumeSource projected. */
                        public projected?: (k8s.io.api.core.v1.IProjectedVolumeSource|null);

                        /** VolumeSource portworxVolume. */
                        public portworxVolume?: (k8s.io.api.core.v1.IPortworxVolumeSource|null);

                        /** VolumeSource scaleIO. */
                        public scaleIO?: (k8s.io.api.core.v1.IScaleIOVolumeSource|null);

                        /** VolumeSource storageos. */
                        public storageos?: (k8s.io.api.core.v1.IStorageOSVolumeSource|null);

                        /** VolumeSource csi. */
                        public csi?: (k8s.io.api.core.v1.ICSIVolumeSource|null);

                        /** VolumeSource ephemeral. */
                        public ephemeral?: (k8s.io.api.core.v1.IEphemeralVolumeSource|null);

                        /**
                         * Creates a new VolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns VolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IVolumeSource): k8s.io.api.core.v1.VolumeSource;

                        /**
                         * Encodes the specified VolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.VolumeSource.verify|verify} messages.
                         * @param message VolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified VolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.VolumeSource.verify|verify} messages.
                         * @param message VolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a VolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns VolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.VolumeSource;

                        /**
                         * Decodes a VolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns VolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.VolumeSource;

                        /**
                         * Verifies a VolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a VolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns VolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.VolumeSource;

                        /**
                         * Creates a plain object from a VolumeSource message. Also converts values to other types if specified.
                         * @param message VolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.VolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this VolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a VsphereVirtualDiskVolumeSource. */
                    interface IVsphereVirtualDiskVolumeSource {

                        /** VsphereVirtualDiskVolumeSource volumePath */
                        volumePath?: (string|null);

                        /** VsphereVirtualDiskVolumeSource fsType */
                        fsType?: (string|null);

                        /** VsphereVirtualDiskVolumeSource storagePolicyName */
                        storagePolicyName?: (string|null);

                        /** VsphereVirtualDiskVolumeSource storagePolicyID */
                        storagePolicyID?: (string|null);
                    }

                    /** Represents a VsphereVirtualDiskVolumeSource. */
                    class VsphereVirtualDiskVolumeSource implements IVsphereVirtualDiskVolumeSource {

                        /**
                         * Constructs a new VsphereVirtualDiskVolumeSource.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IVsphereVirtualDiskVolumeSource);

                        /** VsphereVirtualDiskVolumeSource volumePath. */
                        public volumePath: string;

                        /** VsphereVirtualDiskVolumeSource fsType. */
                        public fsType: string;

                        /** VsphereVirtualDiskVolumeSource storagePolicyName. */
                        public storagePolicyName: string;

                        /** VsphereVirtualDiskVolumeSource storagePolicyID. */
                        public storagePolicyID: string;

                        /**
                         * Creates a new VsphereVirtualDiskVolumeSource instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns VsphereVirtualDiskVolumeSource instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IVsphereVirtualDiskVolumeSource): k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource;

                        /**
                         * Encodes the specified VsphereVirtualDiskVolumeSource message. Does not implicitly {@link k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource.verify|verify} messages.
                         * @param message VsphereVirtualDiskVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IVsphereVirtualDiskVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified VsphereVirtualDiskVolumeSource message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource.verify|verify} messages.
                         * @param message VsphereVirtualDiskVolumeSource message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IVsphereVirtualDiskVolumeSource, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a VsphereVirtualDiskVolumeSource message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns VsphereVirtualDiskVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource;

                        /**
                         * Decodes a VsphereVirtualDiskVolumeSource message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns VsphereVirtualDiskVolumeSource
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource;

                        /**
                         * Verifies a VsphereVirtualDiskVolumeSource message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a VsphereVirtualDiskVolumeSource message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns VsphereVirtualDiskVolumeSource
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource;

                        /**
                         * Creates a plain object from a VsphereVirtualDiskVolumeSource message. Also converts values to other types if specified.
                         * @param message VsphereVirtualDiskVolumeSource
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this VsphereVirtualDiskVolumeSource to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a WeightedPodAffinityTerm. */
                    interface IWeightedPodAffinityTerm {

                        /** WeightedPodAffinityTerm weight */
                        weight?: (number|null);

                        /** WeightedPodAffinityTerm podAffinityTerm */
                        podAffinityTerm?: (k8s.io.api.core.v1.IPodAffinityTerm|null);
                    }

                    /** Represents a WeightedPodAffinityTerm. */
                    class WeightedPodAffinityTerm implements IWeightedPodAffinityTerm {

                        /**
                         * Constructs a new WeightedPodAffinityTerm.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IWeightedPodAffinityTerm);

                        /** WeightedPodAffinityTerm weight. */
                        public weight: number;

                        /** WeightedPodAffinityTerm podAffinityTerm. */
                        public podAffinityTerm?: (k8s.io.api.core.v1.IPodAffinityTerm|null);

                        /**
                         * Creates a new WeightedPodAffinityTerm instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns WeightedPodAffinityTerm instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IWeightedPodAffinityTerm): k8s.io.api.core.v1.WeightedPodAffinityTerm;

                        /**
                         * Encodes the specified WeightedPodAffinityTerm message. Does not implicitly {@link k8s.io.api.core.v1.WeightedPodAffinityTerm.verify|verify} messages.
                         * @param message WeightedPodAffinityTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IWeightedPodAffinityTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified WeightedPodAffinityTerm message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.WeightedPodAffinityTerm.verify|verify} messages.
                         * @param message WeightedPodAffinityTerm message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IWeightedPodAffinityTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a WeightedPodAffinityTerm message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns WeightedPodAffinityTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.WeightedPodAffinityTerm;

                        /**
                         * Decodes a WeightedPodAffinityTerm message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns WeightedPodAffinityTerm
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.WeightedPodAffinityTerm;

                        /**
                         * Verifies a WeightedPodAffinityTerm message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a WeightedPodAffinityTerm message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns WeightedPodAffinityTerm
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.WeightedPodAffinityTerm;

                        /**
                         * Creates a plain object from a WeightedPodAffinityTerm message. Also converts values to other types if specified.
                         * @param message WeightedPodAffinityTerm
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.WeightedPodAffinityTerm, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this WeightedPodAffinityTerm to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a WindowsSecurityContextOptions. */
                    interface IWindowsSecurityContextOptions {

                        /** WindowsSecurityContextOptions gmsaCredentialSpecName */
                        gmsaCredentialSpecName?: (string|null);

                        /** WindowsSecurityContextOptions gmsaCredentialSpec */
                        gmsaCredentialSpec?: (string|null);

                        /** WindowsSecurityContextOptions runAsUserName */
                        runAsUserName?: (string|null);
                    }

                    /** Represents a WindowsSecurityContextOptions. */
                    class WindowsSecurityContextOptions implements IWindowsSecurityContextOptions {

                        /**
                         * Constructs a new WindowsSecurityContextOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.api.core.v1.IWindowsSecurityContextOptions);

                        /** WindowsSecurityContextOptions gmsaCredentialSpecName. */
                        public gmsaCredentialSpecName: string;

                        /** WindowsSecurityContextOptions gmsaCredentialSpec. */
                        public gmsaCredentialSpec: string;

                        /** WindowsSecurityContextOptions runAsUserName. */
                        public runAsUserName: string;

                        /**
                         * Creates a new WindowsSecurityContextOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns WindowsSecurityContextOptions instance
                         */
                        public static create(properties?: k8s.io.api.core.v1.IWindowsSecurityContextOptions): k8s.io.api.core.v1.WindowsSecurityContextOptions;

                        /**
                         * Encodes the specified WindowsSecurityContextOptions message. Does not implicitly {@link k8s.io.api.core.v1.WindowsSecurityContextOptions.verify|verify} messages.
                         * @param message WindowsSecurityContextOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.api.core.v1.IWindowsSecurityContextOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified WindowsSecurityContextOptions message, length delimited. Does not implicitly {@link k8s.io.api.core.v1.WindowsSecurityContextOptions.verify|verify} messages.
                         * @param message WindowsSecurityContextOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.api.core.v1.IWindowsSecurityContextOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a WindowsSecurityContextOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns WindowsSecurityContextOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.api.core.v1.WindowsSecurityContextOptions;

                        /**
                         * Decodes a WindowsSecurityContextOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns WindowsSecurityContextOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.api.core.v1.WindowsSecurityContextOptions;

                        /**
                         * Verifies a WindowsSecurityContextOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a WindowsSecurityContextOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns WindowsSecurityContextOptions
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.api.core.v1.WindowsSecurityContextOptions;

                        /**
                         * Creates a plain object from a WindowsSecurityContextOptions message. Also converts values to other types if specified.
                         * @param message WindowsSecurityContextOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.api.core.v1.WindowsSecurityContextOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this WindowsSecurityContextOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }
                }
            }
        }

        /** Namespace apimachinery. */
        namespace apimachinery {

            /** Namespace pkg. */
            namespace pkg {

                /** Namespace api. */
                namespace api {

                    /** Namespace resource. */
                    namespace resource {

                        /** Properties of a Quantity. */
                        interface IQuantity {

                            /** Quantity string */
                            string?: (string|null);
                        }

                        /** Represents a Quantity. */
                        class Quantity implements IQuantity {

                            /**
                             * Constructs a new Quantity.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: k8s.io.apimachinery.pkg.api.resource.IQuantity);

                            /** Quantity string. */
                            public string: string;

                            /**
                             * Creates a new Quantity instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Quantity instance
                             */
                            public static create(properties?: k8s.io.apimachinery.pkg.api.resource.IQuantity): k8s.io.apimachinery.pkg.api.resource.Quantity;

                            /**
                             * Encodes the specified Quantity message. Does not implicitly {@link k8s.io.apimachinery.pkg.api.resource.Quantity.verify|verify} messages.
                             * @param message Quantity message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: k8s.io.apimachinery.pkg.api.resource.IQuantity, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Quantity message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.api.resource.Quantity.verify|verify} messages.
                             * @param message Quantity message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: k8s.io.apimachinery.pkg.api.resource.IQuantity, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Quantity message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Quantity
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.api.resource.Quantity;

                            /**
                             * Decodes a Quantity message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Quantity
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.api.resource.Quantity;

                            /**
                             * Verifies a Quantity message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a Quantity message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Quantity
                             */
                            public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.api.resource.Quantity;

                            /**
                             * Creates a plain object from a Quantity message. Also converts values to other types if specified.
                             * @param message Quantity
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: k8s.io.apimachinery.pkg.api.resource.Quantity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Quantity to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };
                        }
                    }
                }

                /** Namespace apis. */
                namespace apis {

                    /** Namespace meta. */
                    namespace meta {

                        /** Namespace v1. */
                        namespace v1 {

                            /** Properties of a APIGroup. */
                            interface IAPIGroup {

                                /** APIGroup name */
                                name?: (string|null);

                                /** APIGroup versions */
                                versions?: (k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionForDiscovery[]|null);

                                /** APIGroup preferredVersion */
                                preferredVersion?: (k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionForDiscovery|null);

                                /** APIGroup serverAddressByClientCIDRs */
                                serverAddressByClientCIDRs?: (k8s.io.apimachinery.pkg.apis.meta.v1.IServerAddressByClientCIDR[]|null);
                            }

                            /** Represents a APIGroup. */
                            class APIGroup implements IAPIGroup {

                                /**
                                 * Constructs a new APIGroup.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroup);

                                /** APIGroup name. */
                                public name: string;

                                /** APIGroup versions. */
                                public versions: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionForDiscovery[];

                                /** APIGroup preferredVersion. */
                                public preferredVersion?: (k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionForDiscovery|null);

                                /** APIGroup serverAddressByClientCIDRs. */
                                public serverAddressByClientCIDRs: k8s.io.apimachinery.pkg.apis.meta.v1.IServerAddressByClientCIDR[];

                                /**
                                 * Creates a new APIGroup instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns APIGroup instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroup): k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup;

                                /**
                                 * Encodes the specified APIGroup message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup.verify|verify} messages.
                                 * @param message APIGroup message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified APIGroup message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup.verify|verify} messages.
                                 * @param message APIGroup message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a APIGroup message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns APIGroup
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup;

                                /**
                                 * Decodes a APIGroup message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns APIGroup
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup;

                                /**
                                 * Verifies a APIGroup message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a APIGroup message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns APIGroup
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup;

                                /**
                                 * Creates a plain object from a APIGroup message. Also converts values to other types if specified.
                                 * @param message APIGroup
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this APIGroup to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a APIGroupList. */
                            interface IAPIGroupList {

                                /** APIGroupList groups */
                                groups?: (k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroup[]|null);
                            }

                            /** Represents a APIGroupList. */
                            class APIGroupList implements IAPIGroupList {

                                /**
                                 * Constructs a new APIGroupList.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroupList);

                                /** APIGroupList groups. */
                                public groups: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroup[];

                                /**
                                 * Creates a new APIGroupList instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns APIGroupList instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroupList): k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList;

                                /**
                                 * Encodes the specified APIGroupList message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList.verify|verify} messages.
                                 * @param message APIGroupList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified APIGroupList message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList.verify|verify} messages.
                                 * @param message APIGroupList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a APIGroupList message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns APIGroupList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList;

                                /**
                                 * Decodes a APIGroupList message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns APIGroupList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList;

                                /**
                                 * Verifies a APIGroupList message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a APIGroupList message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns APIGroupList
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList;

                                /**
                                 * Creates a plain object from a APIGroupList message. Also converts values to other types if specified.
                                 * @param message APIGroupList
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this APIGroupList to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a APIResource. */
                            interface IAPIResource {

                                /** APIResource name */
                                name?: (string|null);

                                /** APIResource singularName */
                                singularName?: (string|null);

                                /** APIResource namespaced */
                                namespaced?: (boolean|null);

                                /** APIResource group */
                                group?: (string|null);

                                /** APIResource version */
                                version?: (string|null);

                                /** APIResource kind */
                                kind?: (string|null);

                                /** APIResource verbs */
                                verbs?: (k8s.io.apimachinery.pkg.apis.meta.v1.IVerbs|null);

                                /** APIResource shortNames */
                                shortNames?: (string[]|null);

                                /** APIResource categories */
                                categories?: (string[]|null);

                                /** APIResource storageVersionHash */
                                storageVersionHash?: (string|null);
                            }

                            /** Represents a APIResource. */
                            class APIResource implements IAPIResource {

                                /**
                                 * Constructs a new APIResource.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResource);

                                /** APIResource name. */
                                public name: string;

                                /** APIResource singularName. */
                                public singularName: string;

                                /** APIResource namespaced. */
                                public namespaced: boolean;

                                /** APIResource group. */
                                public group: string;

                                /** APIResource version. */
                                public version: string;

                                /** APIResource kind. */
                                public kind: string;

                                /** APIResource verbs. */
                                public verbs?: (k8s.io.apimachinery.pkg.apis.meta.v1.IVerbs|null);

                                /** APIResource shortNames. */
                                public shortNames: string[];

                                /** APIResource categories. */
                                public categories: string[];

                                /** APIResource storageVersionHash. */
                                public storageVersionHash: string;

                                /**
                                 * Creates a new APIResource instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns APIResource instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResource): k8s.io.apimachinery.pkg.apis.meta.v1.APIResource;

                                /**
                                 * Encodes the specified APIResource message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIResource.verify|verify} messages.
                                 * @param message APIResource message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResource, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified APIResource message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIResource.verify|verify} messages.
                                 * @param message APIResource message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResource, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a APIResource message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns APIResource
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.APIResource;

                                /**
                                 * Decodes a APIResource message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns APIResource
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.APIResource;

                                /**
                                 * Verifies a APIResource message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a APIResource message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns APIResource
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.APIResource;

                                /**
                                 * Creates a plain object from a APIResource message. Also converts values to other types if specified.
                                 * @param message APIResource
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.APIResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this APIResource to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a APIResourceList. */
                            interface IAPIResourceList {

                                /** APIResourceList groupVersion */
                                groupVersion?: (string|null);

                                /** APIResourceList resources */
                                resources?: (k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResource[]|null);
                            }

                            /** Represents a APIResourceList. */
                            class APIResourceList implements IAPIResourceList {

                                /**
                                 * Constructs a new APIResourceList.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResourceList);

                                /** APIResourceList groupVersion. */
                                public groupVersion: string;

                                /** APIResourceList resources. */
                                public resources: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResource[];

                                /**
                                 * Creates a new APIResourceList instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns APIResourceList instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResourceList): k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList;

                                /**
                                 * Encodes the specified APIResourceList message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList.verify|verify} messages.
                                 * @param message APIResourceList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResourceList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified APIResourceList message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList.verify|verify} messages.
                                 * @param message APIResourceList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIResourceList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a APIResourceList message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns APIResourceList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList;

                                /**
                                 * Decodes a APIResourceList message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns APIResourceList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList;

                                /**
                                 * Verifies a APIResourceList message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a APIResourceList message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns APIResourceList
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList;

                                /**
                                 * Creates a plain object from a APIResourceList message. Also converts values to other types if specified.
                                 * @param message APIResourceList
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this APIResourceList to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a APIVersions. */
                            interface IAPIVersions {

                                /** APIVersions versions */
                                versions?: (string[]|null);

                                /** APIVersions serverAddressByClientCIDRs */
                                serverAddressByClientCIDRs?: (k8s.io.apimachinery.pkg.apis.meta.v1.IServerAddressByClientCIDR[]|null);
                            }

                            /** Represents a APIVersions. */
                            class APIVersions implements IAPIVersions {

                                /**
                                 * Constructs a new APIVersions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIVersions);

                                /** APIVersions versions. */
                                public versions: string[];

                                /** APIVersions serverAddressByClientCIDRs. */
                                public serverAddressByClientCIDRs: k8s.io.apimachinery.pkg.apis.meta.v1.IServerAddressByClientCIDR[];

                                /**
                                 * Creates a new APIVersions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns APIVersions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIVersions): k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions;

                                /**
                                 * Encodes the specified APIVersions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions.verify|verify} messages.
                                 * @param message APIVersions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIVersions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified APIVersions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions.verify|verify} messages.
                                 * @param message APIVersions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IAPIVersions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a APIVersions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns APIVersions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions;

                                /**
                                 * Decodes a APIVersions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns APIVersions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions;

                                /**
                                 * Verifies a APIVersions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a APIVersions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns APIVersions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions;

                                /**
                                 * Creates a plain object from a APIVersions message. Also converts values to other types if specified.
                                 * @param message APIVersions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this APIVersions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a Condition. */
                            interface ICondition {

                                /** Condition type */
                                type?: (string|null);

                                /** Condition status */
                                status?: (string|null);

                                /** Condition observedGeneration */
                                observedGeneration?: (number|Long|null);

                                /** Condition lastTransitionTime */
                                lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** Condition reason */
                                reason?: (string|null);

                                /** Condition message */
                                message?: (string|null);
                            }

                            /** Represents a Condition. */
                            class Condition implements ICondition {

                                /**
                                 * Constructs a new Condition.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ICondition);

                                /** Condition type. */
                                public type: string;

                                /** Condition status. */
                                public status: string;

                                /** Condition observedGeneration. */
                                public observedGeneration: (number|Long);

                                /** Condition lastTransitionTime. */
                                public lastTransitionTime?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** Condition reason. */
                                public reason: string;

                                /** Condition message. */
                                public message: string;

                                /**
                                 * Creates a new Condition instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Condition instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ICondition): k8s.io.apimachinery.pkg.apis.meta.v1.Condition;

                                /**
                                 * Encodes the specified Condition message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Condition.verify|verify} messages.
                                 * @param message Condition message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.ICondition, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Condition message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Condition.verify|verify} messages.
                                 * @param message Condition message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.ICondition, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Condition message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Condition
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.Condition;

                                /**
                                 * Decodes a Condition message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Condition
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.Condition;

                                /**
                                 * Verifies a Condition message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a Condition message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Condition
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.Condition;

                                /**
                                 * Creates a plain object from a Condition message. Also converts values to other types if specified.
                                 * @param message Condition
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.Condition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Condition to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a CreateOptions. */
                            interface ICreateOptions {

                                /** CreateOptions dryRun */
                                dryRun?: (string[]|null);

                                /** CreateOptions fieldManager */
                                fieldManager?: (string|null);
                            }

                            /** Represents a CreateOptions. */
                            class CreateOptions implements ICreateOptions {

                                /**
                                 * Constructs a new CreateOptions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ICreateOptions);

                                /** CreateOptions dryRun. */
                                public dryRun: string[];

                                /** CreateOptions fieldManager. */
                                public fieldManager: string;

                                /**
                                 * Creates a new CreateOptions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns CreateOptions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ICreateOptions): k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions;

                                /**
                                 * Encodes the specified CreateOptions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions.verify|verify} messages.
                                 * @param message CreateOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.ICreateOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified CreateOptions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions.verify|verify} messages.
                                 * @param message CreateOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.ICreateOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a CreateOptions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns CreateOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions;

                                /**
                                 * Decodes a CreateOptions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns CreateOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions;

                                /**
                                 * Verifies a CreateOptions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a CreateOptions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns CreateOptions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions;

                                /**
                                 * Creates a plain object from a CreateOptions message. Also converts values to other types if specified.
                                 * @param message CreateOptions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this CreateOptions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a DeleteOptions. */
                            interface IDeleteOptions {

                                /** DeleteOptions gracePeriodSeconds */
                                gracePeriodSeconds?: (number|Long|null);

                                /** DeleteOptions preconditions */
                                preconditions?: (k8s.io.apimachinery.pkg.apis.meta.v1.IPreconditions|null);

                                /** DeleteOptions orphanDependents */
                                orphanDependents?: (boolean|null);

                                /** DeleteOptions propagationPolicy */
                                propagationPolicy?: (string|null);

                                /** DeleteOptions dryRun */
                                dryRun?: (string[]|null);
                            }

                            /** Represents a DeleteOptions. */
                            class DeleteOptions implements IDeleteOptions {

                                /**
                                 * Constructs a new DeleteOptions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IDeleteOptions);

                                /** DeleteOptions gracePeriodSeconds. */
                                public gracePeriodSeconds: (number|Long);

                                /** DeleteOptions preconditions. */
                                public preconditions?: (k8s.io.apimachinery.pkg.apis.meta.v1.IPreconditions|null);

                                /** DeleteOptions orphanDependents. */
                                public orphanDependents: boolean;

                                /** DeleteOptions propagationPolicy. */
                                public propagationPolicy: string;

                                /** DeleteOptions dryRun. */
                                public dryRun: string[];

                                /**
                                 * Creates a new DeleteOptions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns DeleteOptions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IDeleteOptions): k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions;

                                /**
                                 * Encodes the specified DeleteOptions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions.verify|verify} messages.
                                 * @param message DeleteOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IDeleteOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified DeleteOptions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions.verify|verify} messages.
                                 * @param message DeleteOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IDeleteOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a DeleteOptions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns DeleteOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions;

                                /**
                                 * Decodes a DeleteOptions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns DeleteOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions;

                                /**
                                 * Verifies a DeleteOptions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a DeleteOptions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns DeleteOptions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions;

                                /**
                                 * Creates a plain object from a DeleteOptions message. Also converts values to other types if specified.
                                 * @param message DeleteOptions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this DeleteOptions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a Duration. */
                            interface IDuration {

                                /** Duration duration */
                                duration?: (number|Long|null);
                            }

                            /** Represents a Duration. */
                            class Duration implements IDuration {

                                /**
                                 * Constructs a new Duration.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IDuration);

                                /** Duration duration. */
                                public duration: (number|Long);

                                /**
                                 * Creates a new Duration instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Duration instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IDuration): k8s.io.apimachinery.pkg.apis.meta.v1.Duration;

                                /**
                                 * Encodes the specified Duration message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Duration.verify|verify} messages.
                                 * @param message Duration message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Duration message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Duration.verify|verify} messages.
                                 * @param message Duration message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Duration message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Duration
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.Duration;

                                /**
                                 * Decodes a Duration message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Duration
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.Duration;

                                /**
                                 * Verifies a Duration message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a Duration message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Duration
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.Duration;

                                /**
                                 * Creates a plain object from a Duration message. Also converts values to other types if specified.
                                 * @param message Duration
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.Duration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Duration to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of an ExportOptions. */
                            interface IExportOptions {

                                /** ExportOptions export */
                                "export"?: (boolean|null);

                                /** ExportOptions exact */
                                exact?: (boolean|null);
                            }

                            /** Represents an ExportOptions. */
                            class ExportOptions implements IExportOptions {

                                /**
                                 * Constructs a new ExportOptions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IExportOptions);

                                /** ExportOptions export. */
                                public export: boolean;

                                /** ExportOptions exact. */
                                public exact: boolean;

                                /**
                                 * Creates a new ExportOptions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ExportOptions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IExportOptions): k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions;

                                /**
                                 * Encodes the specified ExportOptions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions.verify|verify} messages.
                                 * @param message ExportOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IExportOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ExportOptions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions.verify|verify} messages.
                                 * @param message ExportOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IExportOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an ExportOptions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ExportOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions;

                                /**
                                 * Decodes an ExportOptions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ExportOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions;

                                /**
                                 * Verifies an ExportOptions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates an ExportOptions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ExportOptions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions;

                                /**
                                 * Creates a plain object from an ExportOptions message. Also converts values to other types if specified.
                                 * @param message ExportOptions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.ExportOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ExportOptions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a FieldsV1. */
                            interface IFieldsV1 {

                                /** FieldsV1 Raw */
                                Raw?: (Uint8Array|null);
                            }

                            /** Represents a FieldsV1. */
                            class FieldsV1 implements IFieldsV1 {

                                /**
                                 * Constructs a new FieldsV1.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IFieldsV1);

                                /** FieldsV1 Raw. */
                                public Raw: Uint8Array;

                                /**
                                 * Creates a new FieldsV1 instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns FieldsV1 instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IFieldsV1): k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1;

                                /**
                                 * Encodes the specified FieldsV1 message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1.verify|verify} messages.
                                 * @param message FieldsV1 message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IFieldsV1, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified FieldsV1 message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1.verify|verify} messages.
                                 * @param message FieldsV1 message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IFieldsV1, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a FieldsV1 message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns FieldsV1
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1;

                                /**
                                 * Decodes a FieldsV1 message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns FieldsV1
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1;

                                /**
                                 * Verifies a FieldsV1 message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a FieldsV1 message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns FieldsV1
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1;

                                /**
                                 * Creates a plain object from a FieldsV1 message. Also converts values to other types if specified.
                                 * @param message FieldsV1
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this FieldsV1 to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a GetOptions. */
                            interface IGetOptions {

                                /** GetOptions resourceVersion */
                                resourceVersion?: (string|null);
                            }

                            /** Represents a GetOptions. */
                            class GetOptions implements IGetOptions {

                                /**
                                 * Constructs a new GetOptions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGetOptions);

                                /** GetOptions resourceVersion. */
                                public resourceVersion: string;

                                /**
                                 * Creates a new GetOptions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns GetOptions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGetOptions): k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions;

                                /**
                                 * Encodes the specified GetOptions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions.verify|verify} messages.
                                 * @param message GetOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGetOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified GetOptions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions.verify|verify} messages.
                                 * @param message GetOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGetOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a GetOptions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns GetOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions;

                                /**
                                 * Decodes a GetOptions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns GetOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions;

                                /**
                                 * Verifies a GetOptions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a GetOptions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns GetOptions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions;

                                /**
                                 * Creates a plain object from a GetOptions message. Also converts values to other types if specified.
                                 * @param message GetOptions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this GetOptions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a GroupKind. */
                            interface IGroupKind {

                                /** GroupKind group */
                                group?: (string|null);

                                /** GroupKind kind */
                                kind?: (string|null);
                            }

                            /** Represents a GroupKind. */
                            class GroupKind implements IGroupKind {

                                /**
                                 * Constructs a new GroupKind.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupKind);

                                /** GroupKind group. */
                                public group: string;

                                /** GroupKind kind. */
                                public kind: string;

                                /**
                                 * Creates a new GroupKind instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns GroupKind instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupKind): k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind;

                                /**
                                 * Encodes the specified GroupKind message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind.verify|verify} messages.
                                 * @param message GroupKind message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupKind, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified GroupKind message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind.verify|verify} messages.
                                 * @param message GroupKind message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupKind, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a GroupKind message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns GroupKind
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind;

                                /**
                                 * Decodes a GroupKind message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns GroupKind
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind;

                                /**
                                 * Verifies a GroupKind message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a GroupKind message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns GroupKind
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind;

                                /**
                                 * Creates a plain object from a GroupKind message. Also converts values to other types if specified.
                                 * @param message GroupKind
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this GroupKind to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a GroupResource. */
                            interface IGroupResource {

                                /** GroupResource group */
                                group?: (string|null);

                                /** GroupResource resource */
                                resource?: (string|null);
                            }

                            /** Represents a GroupResource. */
                            class GroupResource implements IGroupResource {

                                /**
                                 * Constructs a new GroupResource.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupResource);

                                /** GroupResource group. */
                                public group: string;

                                /** GroupResource resource. */
                                public resource: string;

                                /**
                                 * Creates a new GroupResource instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns GroupResource instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupResource): k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource;

                                /**
                                 * Encodes the specified GroupResource message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource.verify|verify} messages.
                                 * @param message GroupResource message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupResource, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified GroupResource message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource.verify|verify} messages.
                                 * @param message GroupResource message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupResource, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a GroupResource message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns GroupResource
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource;

                                /**
                                 * Decodes a GroupResource message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns GroupResource
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource;

                                /**
                                 * Verifies a GroupResource message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a GroupResource message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns GroupResource
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource;

                                /**
                                 * Creates a plain object from a GroupResource message. Also converts values to other types if specified.
                                 * @param message GroupResource
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this GroupResource to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a GroupVersion. */
                            interface IGroupVersion {

                                /** GroupVersion group */
                                group?: (string|null);

                                /** GroupVersion version */
                                version?: (string|null);
                            }

                            /** Represents a GroupVersion. */
                            class GroupVersion implements IGroupVersion {

                                /**
                                 * Constructs a new GroupVersion.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersion);

                                /** GroupVersion group. */
                                public group: string;

                                /** GroupVersion version. */
                                public version: string;

                                /**
                                 * Creates a new GroupVersion instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns GroupVersion instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersion): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion;

                                /**
                                 * Encodes the specified GroupVersion message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion.verify|verify} messages.
                                 * @param message GroupVersion message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified GroupVersion message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion.verify|verify} messages.
                                 * @param message GroupVersion message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a GroupVersion message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns GroupVersion
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion;

                                /**
                                 * Decodes a GroupVersion message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns GroupVersion
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion;

                                /**
                                 * Verifies a GroupVersion message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a GroupVersion message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns GroupVersion
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion;

                                /**
                                 * Creates a plain object from a GroupVersion message. Also converts values to other types if specified.
                                 * @param message GroupVersion
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this GroupVersion to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a GroupVersionForDiscovery. */
                            interface IGroupVersionForDiscovery {

                                /** GroupVersionForDiscovery groupVersion */
                                groupVersion?: (string|null);

                                /** GroupVersionForDiscovery version */
                                version?: (string|null);
                            }

                            /** Represents a GroupVersionForDiscovery. */
                            class GroupVersionForDiscovery implements IGroupVersionForDiscovery {

                                /**
                                 * Constructs a new GroupVersionForDiscovery.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionForDiscovery);

                                /** GroupVersionForDiscovery groupVersion. */
                                public groupVersion: string;

                                /** GroupVersionForDiscovery version. */
                                public version: string;

                                /**
                                 * Creates a new GroupVersionForDiscovery instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns GroupVersionForDiscovery instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionForDiscovery): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery;

                                /**
                                 * Encodes the specified GroupVersionForDiscovery message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery.verify|verify} messages.
                                 * @param message GroupVersionForDiscovery message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionForDiscovery, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified GroupVersionForDiscovery message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery.verify|verify} messages.
                                 * @param message GroupVersionForDiscovery message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionForDiscovery, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a GroupVersionForDiscovery message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns GroupVersionForDiscovery
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery;

                                /**
                                 * Decodes a GroupVersionForDiscovery message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns GroupVersionForDiscovery
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery;

                                /**
                                 * Verifies a GroupVersionForDiscovery message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a GroupVersionForDiscovery message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns GroupVersionForDiscovery
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery;

                                /**
                                 * Creates a plain object from a GroupVersionForDiscovery message. Also converts values to other types if specified.
                                 * @param message GroupVersionForDiscovery
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this GroupVersionForDiscovery to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a GroupVersionKind. */
                            interface IGroupVersionKind {

                                /** GroupVersionKind group */
                                group?: (string|null);

                                /** GroupVersionKind version */
                                version?: (string|null);

                                /** GroupVersionKind kind */
                                kind?: (string|null);
                            }

                            /** Represents a GroupVersionKind. */
                            class GroupVersionKind implements IGroupVersionKind {

                                /**
                                 * Constructs a new GroupVersionKind.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionKind);

                                /** GroupVersionKind group. */
                                public group: string;

                                /** GroupVersionKind version. */
                                public version: string;

                                /** GroupVersionKind kind. */
                                public kind: string;

                                /**
                                 * Creates a new GroupVersionKind instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns GroupVersionKind instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionKind): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind;

                                /**
                                 * Encodes the specified GroupVersionKind message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind.verify|verify} messages.
                                 * @param message GroupVersionKind message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionKind, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified GroupVersionKind message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind.verify|verify} messages.
                                 * @param message GroupVersionKind message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionKind, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a GroupVersionKind message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns GroupVersionKind
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind;

                                /**
                                 * Decodes a GroupVersionKind message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns GroupVersionKind
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind;

                                /**
                                 * Verifies a GroupVersionKind message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a GroupVersionKind message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns GroupVersionKind
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind;

                                /**
                                 * Creates a plain object from a GroupVersionKind message. Also converts values to other types if specified.
                                 * @param message GroupVersionKind
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this GroupVersionKind to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a GroupVersionResource. */
                            interface IGroupVersionResource {

                                /** GroupVersionResource group */
                                group?: (string|null);

                                /** GroupVersionResource version */
                                version?: (string|null);

                                /** GroupVersionResource resource */
                                resource?: (string|null);
                            }

                            /** Represents a GroupVersionResource. */
                            class GroupVersionResource implements IGroupVersionResource {

                                /**
                                 * Constructs a new GroupVersionResource.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionResource);

                                /** GroupVersionResource group. */
                                public group: string;

                                /** GroupVersionResource version. */
                                public version: string;

                                /** GroupVersionResource resource. */
                                public resource: string;

                                /**
                                 * Creates a new GroupVersionResource instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns GroupVersionResource instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionResource): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource;

                                /**
                                 * Encodes the specified GroupVersionResource message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource.verify|verify} messages.
                                 * @param message GroupVersionResource message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionResource, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified GroupVersionResource message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource.verify|verify} messages.
                                 * @param message GroupVersionResource message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IGroupVersionResource, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a GroupVersionResource message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns GroupVersionResource
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource;

                                /**
                                 * Decodes a GroupVersionResource message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns GroupVersionResource
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource;

                                /**
                                 * Verifies a GroupVersionResource message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a GroupVersionResource message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns GroupVersionResource
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource;

                                /**
                                 * Creates a plain object from a GroupVersionResource message. Also converts values to other types if specified.
                                 * @param message GroupVersionResource
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this GroupVersionResource to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a LabelSelector. */
                            interface ILabelSelector {

                                /** LabelSelector matchLabels */
                                matchLabels?: ({ [k: string]: string }|null);

                                /** LabelSelector matchExpressions */
                                matchExpressions?: (k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelectorRequirement[]|null);
                            }

                            /** Represents a LabelSelector. */
                            class LabelSelector implements ILabelSelector {

                                /**
                                 * Constructs a new LabelSelector.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector);

                                /** LabelSelector matchLabels. */
                                public matchLabels: { [k: string]: string };

                                /** LabelSelector matchExpressions. */
                                public matchExpressions: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelectorRequirement[];

                                /**
                                 * Creates a new LabelSelector instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns LabelSelector instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector): k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector;

                                /**
                                 * Encodes the specified LabelSelector message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector.verify|verify} messages.
                                 * @param message LabelSelector message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified LabelSelector message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector.verify|verify} messages.
                                 * @param message LabelSelector message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a LabelSelector message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns LabelSelector
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector;

                                /**
                                 * Decodes a LabelSelector message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns LabelSelector
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector;

                                /**
                                 * Verifies a LabelSelector message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a LabelSelector message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns LabelSelector
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector;

                                /**
                                 * Creates a plain object from a LabelSelector message. Also converts values to other types if specified.
                                 * @param message LabelSelector
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this LabelSelector to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a LabelSelectorRequirement. */
                            interface ILabelSelectorRequirement {

                                /** LabelSelectorRequirement key */
                                key?: (string|null);

                                /** LabelSelectorRequirement operator */
                                operator?: (string|null);

                                /** LabelSelectorRequirement values */
                                values?: (string[]|null);
                            }

                            /** Represents a LabelSelectorRequirement. */
                            class LabelSelectorRequirement implements ILabelSelectorRequirement {

                                /**
                                 * Constructs a new LabelSelectorRequirement.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelectorRequirement);

                                /** LabelSelectorRequirement key. */
                                public key: string;

                                /** LabelSelectorRequirement operator. */
                                public operator: string;

                                /** LabelSelectorRequirement values. */
                                public values: string[];

                                /**
                                 * Creates a new LabelSelectorRequirement instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns LabelSelectorRequirement instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelectorRequirement): k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement;

                                /**
                                 * Encodes the specified LabelSelectorRequirement message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement.verify|verify} messages.
                                 * @param message LabelSelectorRequirement message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelectorRequirement, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified LabelSelectorRequirement message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement.verify|verify} messages.
                                 * @param message LabelSelectorRequirement message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.ILabelSelectorRequirement, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a LabelSelectorRequirement message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns LabelSelectorRequirement
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement;

                                /**
                                 * Decodes a LabelSelectorRequirement message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns LabelSelectorRequirement
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement;

                                /**
                                 * Verifies a LabelSelectorRequirement message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a LabelSelectorRequirement message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns LabelSelectorRequirement
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement;

                                /**
                                 * Creates a plain object from a LabelSelectorRequirement message. Also converts values to other types if specified.
                                 * @param message LabelSelectorRequirement
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this LabelSelectorRequirement to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a List. */
                            interface IList {

                                /** List metadata */
                                metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** List items */
                                items?: (k8s.io.apimachinery.pkg.runtime.IRawExtension[]|null);
                            }

                            /** Represents a List. */
                            class List implements IList {

                                /**
                                 * Constructs a new List.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IList);

                                /** List metadata. */
                                public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** List items. */
                                public items: k8s.io.apimachinery.pkg.runtime.IRawExtension[];

                                /**
                                 * Creates a new List instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns List instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IList): k8s.io.apimachinery.pkg.apis.meta.v1.List;

                                /**
                                 * Encodes the specified List message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.List.verify|verify} messages.
                                 * @param message List message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified List message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.List.verify|verify} messages.
                                 * @param message List message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a List message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns List
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.List;

                                /**
                                 * Decodes a List message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns List
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.List;

                                /**
                                 * Verifies a List message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a List message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns List
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.List;

                                /**
                                 * Creates a plain object from a List message. Also converts values to other types if specified.
                                 * @param message List
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.List, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this List to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a ListMeta. */
                            interface IListMeta {

                                /** ListMeta selfLink */
                                selfLink?: (string|null);

                                /** ListMeta resourceVersion */
                                resourceVersion?: (string|null);

                                /** ListMeta continue */
                                "continue"?: (string|null);

                                /** ListMeta remainingItemCount */
                                remainingItemCount?: (number|Long|null);
                            }

                            /** Represents a ListMeta. */
                            class ListMeta implements IListMeta {

                                /**
                                 * Constructs a new ListMeta.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta);

                                /** ListMeta selfLink. */
                                public selfLink: string;

                                /** ListMeta resourceVersion. */
                                public resourceVersion: string;

                                /** ListMeta continue. */
                                public continue: string;

                                /** ListMeta remainingItemCount. */
                                public remainingItemCount: (number|Long);

                                /**
                                 * Creates a new ListMeta instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ListMeta instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta): k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta;

                                /**
                                 * Encodes the specified ListMeta message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta.verify|verify} messages.
                                 * @param message ListMeta message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ListMeta message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta.verify|verify} messages.
                                 * @param message ListMeta message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a ListMeta message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ListMeta
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta;

                                /**
                                 * Decodes a ListMeta message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ListMeta
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta;

                                /**
                                 * Verifies a ListMeta message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a ListMeta message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ListMeta
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta;

                                /**
                                 * Creates a plain object from a ListMeta message. Also converts values to other types if specified.
                                 * @param message ListMeta
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ListMeta to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a ListOptions. */
                            interface IListOptions {

                                /** ListOptions labelSelector */
                                labelSelector?: (string|null);

                                /** ListOptions fieldSelector */
                                fieldSelector?: (string|null);

                                /** ListOptions watch */
                                watch?: (boolean|null);

                                /** ListOptions allowWatchBookmarks */
                                allowWatchBookmarks?: (boolean|null);

                                /** ListOptions resourceVersion */
                                resourceVersion?: (string|null);

                                /** ListOptions resourceVersionMatch */
                                resourceVersionMatch?: (string|null);

                                /** ListOptions timeoutSeconds */
                                timeoutSeconds?: (number|Long|null);

                                /** ListOptions limit */
                                limit?: (number|Long|null);

                                /** ListOptions continue */
                                "continue"?: (string|null);
                            }

                            /** Represents a ListOptions. */
                            class ListOptions implements IListOptions {

                                /**
                                 * Constructs a new ListOptions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IListOptions);

                                /** ListOptions labelSelector. */
                                public labelSelector: string;

                                /** ListOptions fieldSelector. */
                                public fieldSelector: string;

                                /** ListOptions watch. */
                                public watch: boolean;

                                /** ListOptions allowWatchBookmarks. */
                                public allowWatchBookmarks: boolean;

                                /** ListOptions resourceVersion. */
                                public resourceVersion: string;

                                /** ListOptions resourceVersionMatch. */
                                public resourceVersionMatch: string;

                                /** ListOptions timeoutSeconds. */
                                public timeoutSeconds: (number|Long);

                                /** ListOptions limit. */
                                public limit: (number|Long);

                                /** ListOptions continue. */
                                public continue: string;

                                /**
                                 * Creates a new ListOptions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ListOptions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IListOptions): k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions;

                                /**
                                 * Encodes the specified ListOptions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions.verify|verify} messages.
                                 * @param message ListOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IListOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ListOptions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions.verify|verify} messages.
                                 * @param message ListOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IListOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a ListOptions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ListOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions;

                                /**
                                 * Decodes a ListOptions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ListOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions;

                                /**
                                 * Verifies a ListOptions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a ListOptions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ListOptions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions;

                                /**
                                 * Creates a plain object from a ListOptions message. Also converts values to other types if specified.
                                 * @param message ListOptions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ListOptions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a ManagedFieldsEntry. */
                            interface IManagedFieldsEntry {

                                /** ManagedFieldsEntry manager */
                                manager?: (string|null);

                                /** ManagedFieldsEntry operation */
                                operation?: (string|null);

                                /** ManagedFieldsEntry apiVersion */
                                apiVersion?: (string|null);

                                /** ManagedFieldsEntry time */
                                time?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** ManagedFieldsEntry fieldsType */
                                fieldsType?: (string|null);

                                /** ManagedFieldsEntry fieldsV1 */
                                fieldsV1?: (k8s.io.apimachinery.pkg.apis.meta.v1.IFieldsV1|null);
                            }

                            /** Represents a ManagedFieldsEntry. */
                            class ManagedFieldsEntry implements IManagedFieldsEntry {

                                /**
                                 * Constructs a new ManagedFieldsEntry.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IManagedFieldsEntry);

                                /** ManagedFieldsEntry manager. */
                                public manager: string;

                                /** ManagedFieldsEntry operation. */
                                public operation: string;

                                /** ManagedFieldsEntry apiVersion. */
                                public apiVersion: string;

                                /** ManagedFieldsEntry time. */
                                public time?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** ManagedFieldsEntry fieldsType. */
                                public fieldsType: string;

                                /** ManagedFieldsEntry fieldsV1. */
                                public fieldsV1?: (k8s.io.apimachinery.pkg.apis.meta.v1.IFieldsV1|null);

                                /**
                                 * Creates a new ManagedFieldsEntry instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ManagedFieldsEntry instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IManagedFieldsEntry): k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry;

                                /**
                                 * Encodes the specified ManagedFieldsEntry message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry.verify|verify} messages.
                                 * @param message ManagedFieldsEntry message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IManagedFieldsEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ManagedFieldsEntry message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry.verify|verify} messages.
                                 * @param message ManagedFieldsEntry message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IManagedFieldsEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a ManagedFieldsEntry message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ManagedFieldsEntry
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry;

                                /**
                                 * Decodes a ManagedFieldsEntry message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ManagedFieldsEntry
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry;

                                /**
                                 * Verifies a ManagedFieldsEntry message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a ManagedFieldsEntry message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ManagedFieldsEntry
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry;

                                /**
                                 * Creates a plain object from a ManagedFieldsEntry message. Also converts values to other types if specified.
                                 * @param message ManagedFieldsEntry
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ManagedFieldsEntry to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a MicroTime. */
                            interface IMicroTime {

                                /** MicroTime seconds */
                                seconds?: (number|Long|null);

                                /** MicroTime nanos */
                                nanos?: (number|null);
                            }

                            /** Represents a MicroTime. */
                            class MicroTime implements IMicroTime {

                                /**
                                 * Constructs a new MicroTime.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IMicroTime);

                                /** MicroTime seconds. */
                                public seconds: (number|Long);

                                /** MicroTime nanos. */
                                public nanos: number;

                                /**
                                 * Creates a new MicroTime instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns MicroTime instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IMicroTime): k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime;

                                /**
                                 * Encodes the specified MicroTime message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime.verify|verify} messages.
                                 * @param message MicroTime message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IMicroTime, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified MicroTime message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime.verify|verify} messages.
                                 * @param message MicroTime message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IMicroTime, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a MicroTime message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns MicroTime
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime;

                                /**
                                 * Decodes a MicroTime message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns MicroTime
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime;

                                /**
                                 * Verifies a MicroTime message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a MicroTime message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns MicroTime
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime;

                                /**
                                 * Creates a plain object from a MicroTime message. Also converts values to other types if specified.
                                 * @param message MicroTime
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this MicroTime to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of an ObjectMeta. */
                            interface IObjectMeta {

                                /** ObjectMeta name */
                                name?: (string|null);

                                /** ObjectMeta generateName */
                                generateName?: (string|null);

                                /** ObjectMeta namespace */
                                namespace?: (string|null);

                                /** ObjectMeta selfLink */
                                selfLink?: (string|null);

                                /** ObjectMeta uid */
                                uid?: (string|null);

                                /** ObjectMeta resourceVersion */
                                resourceVersion?: (string|null);

                                /** ObjectMeta generation */
                                generation?: (number|Long|null);

                                /** ObjectMeta creationTimestamp */
                                creationTimestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** ObjectMeta deletionTimestamp */
                                deletionTimestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** ObjectMeta deletionGracePeriodSeconds */
                                deletionGracePeriodSeconds?: (number|Long|null);

                                /** ObjectMeta labels */
                                labels?: ({ [k: string]: string }|null);

                                /** ObjectMeta annotations */
                                annotations?: ({ [k: string]: string }|null);

                                /** ObjectMeta ownerReferences */
                                ownerReferences?: (k8s.io.apimachinery.pkg.apis.meta.v1.IOwnerReference[]|null);

                                /** ObjectMeta finalizers */
                                finalizers?: (string[]|null);

                                /** ObjectMeta clusterName */
                                clusterName?: (string|null);

                                /** ObjectMeta managedFields */
                                managedFields?: (k8s.io.apimachinery.pkg.apis.meta.v1.IManagedFieldsEntry[]|null);
                            }

                            /** Represents an ObjectMeta. */
                            class ObjectMeta implements IObjectMeta {

                                /**
                                 * Constructs a new ObjectMeta.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta);

                                /** ObjectMeta name. */
                                public name: string;

                                /** ObjectMeta generateName. */
                                public generateName: string;

                                /** ObjectMeta namespace. */
                                public namespace: string;

                                /** ObjectMeta selfLink. */
                                public selfLink: string;

                                /** ObjectMeta uid. */
                                public uid: string;

                                /** ObjectMeta resourceVersion. */
                                public resourceVersion: string;

                                /** ObjectMeta generation. */
                                public generation: (number|Long);

                                /** ObjectMeta creationTimestamp. */
                                public creationTimestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** ObjectMeta deletionTimestamp. */
                                public deletionTimestamp?: (k8s.io.apimachinery.pkg.apis.meta.v1.ITime|null);

                                /** ObjectMeta deletionGracePeriodSeconds. */
                                public deletionGracePeriodSeconds: (number|Long);

                                /** ObjectMeta labels. */
                                public labels: { [k: string]: string };

                                /** ObjectMeta annotations. */
                                public annotations: { [k: string]: string };

                                /** ObjectMeta ownerReferences. */
                                public ownerReferences: k8s.io.apimachinery.pkg.apis.meta.v1.IOwnerReference[];

                                /** ObjectMeta finalizers. */
                                public finalizers: string[];

                                /** ObjectMeta clusterName. */
                                public clusterName: string;

                                /** ObjectMeta managedFields. */
                                public managedFields: k8s.io.apimachinery.pkg.apis.meta.v1.IManagedFieldsEntry[];

                                /**
                                 * Creates a new ObjectMeta instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ObjectMeta instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta): k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta;

                                /**
                                 * Encodes the specified ObjectMeta message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta.verify|verify} messages.
                                 * @param message ObjectMeta message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ObjectMeta message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta.verify|verify} messages.
                                 * @param message ObjectMeta message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an ObjectMeta message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ObjectMeta
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta;

                                /**
                                 * Decodes an ObjectMeta message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ObjectMeta
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta;

                                /**
                                 * Verifies an ObjectMeta message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates an ObjectMeta message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ObjectMeta
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta;

                                /**
                                 * Creates a plain object from an ObjectMeta message. Also converts values to other types if specified.
                                 * @param message ObjectMeta
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ObjectMeta to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of an OwnerReference. */
                            interface IOwnerReference {

                                /** OwnerReference apiVersion */
                                apiVersion?: (string|null);

                                /** OwnerReference kind */
                                kind?: (string|null);

                                /** OwnerReference name */
                                name?: (string|null);

                                /** OwnerReference uid */
                                uid?: (string|null);

                                /** OwnerReference controller */
                                controller?: (boolean|null);

                                /** OwnerReference blockOwnerDeletion */
                                blockOwnerDeletion?: (boolean|null);
                            }

                            /** Represents an OwnerReference. */
                            class OwnerReference implements IOwnerReference {

                                /**
                                 * Constructs a new OwnerReference.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IOwnerReference);

                                /** OwnerReference apiVersion. */
                                public apiVersion: string;

                                /** OwnerReference kind. */
                                public kind: string;

                                /** OwnerReference name. */
                                public name: string;

                                /** OwnerReference uid. */
                                public uid: string;

                                /** OwnerReference controller. */
                                public controller: boolean;

                                /** OwnerReference blockOwnerDeletion. */
                                public blockOwnerDeletion: boolean;

                                /**
                                 * Creates a new OwnerReference instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns OwnerReference instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IOwnerReference): k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference;

                                /**
                                 * Encodes the specified OwnerReference message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference.verify|verify} messages.
                                 * @param message OwnerReference message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IOwnerReference, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified OwnerReference message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference.verify|verify} messages.
                                 * @param message OwnerReference message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IOwnerReference, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an OwnerReference message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns OwnerReference
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference;

                                /**
                                 * Decodes an OwnerReference message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns OwnerReference
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference;

                                /**
                                 * Verifies an OwnerReference message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates an OwnerReference message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns OwnerReference
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference;

                                /**
                                 * Creates a plain object from an OwnerReference message. Also converts values to other types if specified.
                                 * @param message OwnerReference
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this OwnerReference to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a PartialObjectMetadata. */
                            interface IPartialObjectMetadata {

                                /** PartialObjectMetadata metadata */
                                metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);
                            }

                            /** Represents a PartialObjectMetadata. */
                            class PartialObjectMetadata implements IPartialObjectMetadata {

                                /**
                                 * Constructs a new PartialObjectMetadata.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadata);

                                /** PartialObjectMetadata metadata. */
                                public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IObjectMeta|null);

                                /**
                                 * Creates a new PartialObjectMetadata instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns PartialObjectMetadata instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadata): k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata;

                                /**
                                 * Encodes the specified PartialObjectMetadata message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata.verify|verify} messages.
                                 * @param message PartialObjectMetadata message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified PartialObjectMetadata message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata.verify|verify} messages.
                                 * @param message PartialObjectMetadata message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a PartialObjectMetadata message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns PartialObjectMetadata
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata;

                                /**
                                 * Decodes a PartialObjectMetadata message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns PartialObjectMetadata
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata;

                                /**
                                 * Verifies a PartialObjectMetadata message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a PartialObjectMetadata message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns PartialObjectMetadata
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata;

                                /**
                                 * Creates a plain object from a PartialObjectMetadata message. Also converts values to other types if specified.
                                 * @param message PartialObjectMetadata
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this PartialObjectMetadata to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a PartialObjectMetadataList. */
                            interface IPartialObjectMetadataList {

                                /** PartialObjectMetadataList metadata */
                                metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** PartialObjectMetadataList items */
                                items?: (k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadata[]|null);
                            }

                            /** Represents a PartialObjectMetadataList. */
                            class PartialObjectMetadataList implements IPartialObjectMetadataList {

                                /**
                                 * Constructs a new PartialObjectMetadataList.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadataList);

                                /** PartialObjectMetadataList metadata. */
                                public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** PartialObjectMetadataList items. */
                                public items: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadata[];

                                /**
                                 * Creates a new PartialObjectMetadataList instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns PartialObjectMetadataList instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadataList): k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList;

                                /**
                                 * Encodes the specified PartialObjectMetadataList message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList.verify|verify} messages.
                                 * @param message PartialObjectMetadataList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadataList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified PartialObjectMetadataList message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList.verify|verify} messages.
                                 * @param message PartialObjectMetadataList message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPartialObjectMetadataList, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a PartialObjectMetadataList message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns PartialObjectMetadataList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList;

                                /**
                                 * Decodes a PartialObjectMetadataList message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns PartialObjectMetadataList
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList;

                                /**
                                 * Verifies a PartialObjectMetadataList message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a PartialObjectMetadataList message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns PartialObjectMetadataList
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList;

                                /**
                                 * Creates a plain object from a PartialObjectMetadataList message. Also converts values to other types if specified.
                                 * @param message PartialObjectMetadataList
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this PartialObjectMetadataList to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a Patch. */
                            interface IPatch {
                            }

                            /** Represents a Patch. */
                            class Patch implements IPatch {

                                /**
                                 * Constructs a new Patch.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPatch);

                                /**
                                 * Creates a new Patch instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Patch instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPatch): k8s.io.apimachinery.pkg.apis.meta.v1.Patch;

                                /**
                                 * Encodes the specified Patch message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Patch.verify|verify} messages.
                                 * @param message Patch message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPatch, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Patch message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Patch.verify|verify} messages.
                                 * @param message Patch message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPatch, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Patch message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Patch
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.Patch;

                                /**
                                 * Decodes a Patch message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Patch
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.Patch;

                                /**
                                 * Verifies a Patch message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a Patch message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Patch
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.Patch;

                                /**
                                 * Creates a plain object from a Patch message. Also converts values to other types if specified.
                                 * @param message Patch
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.Patch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Patch to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a PatchOptions. */
                            interface IPatchOptions {

                                /** PatchOptions dryRun */
                                dryRun?: (string[]|null);

                                /** PatchOptions force */
                                force?: (boolean|null);

                                /** PatchOptions fieldManager */
                                fieldManager?: (string|null);
                            }

                            /** Represents a PatchOptions. */
                            class PatchOptions implements IPatchOptions {

                                /**
                                 * Constructs a new PatchOptions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPatchOptions);

                                /** PatchOptions dryRun. */
                                public dryRun: string[];

                                /** PatchOptions force. */
                                public force: boolean;

                                /** PatchOptions fieldManager. */
                                public fieldManager: string;

                                /**
                                 * Creates a new PatchOptions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns PatchOptions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPatchOptions): k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions;

                                /**
                                 * Encodes the specified PatchOptions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions.verify|verify} messages.
                                 * @param message PatchOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPatchOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified PatchOptions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions.verify|verify} messages.
                                 * @param message PatchOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPatchOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a PatchOptions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns PatchOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions;

                                /**
                                 * Decodes a PatchOptions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns PatchOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions;

                                /**
                                 * Verifies a PatchOptions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a PatchOptions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns PatchOptions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions;

                                /**
                                 * Creates a plain object from a PatchOptions message. Also converts values to other types if specified.
                                 * @param message PatchOptions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this PatchOptions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a Preconditions. */
                            interface IPreconditions {

                                /** Preconditions uid */
                                uid?: (string|null);

                                /** Preconditions resourceVersion */
                                resourceVersion?: (string|null);
                            }

                            /** Represents a Preconditions. */
                            class Preconditions implements IPreconditions {

                                /**
                                 * Constructs a new Preconditions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPreconditions);

                                /** Preconditions uid. */
                                public uid: string;

                                /** Preconditions resourceVersion. */
                                public resourceVersion: string;

                                /**
                                 * Creates a new Preconditions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Preconditions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IPreconditions): k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions;

                                /**
                                 * Encodes the specified Preconditions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions.verify|verify} messages.
                                 * @param message Preconditions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPreconditions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Preconditions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions.verify|verify} messages.
                                 * @param message Preconditions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IPreconditions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Preconditions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Preconditions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions;

                                /**
                                 * Decodes a Preconditions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Preconditions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions;

                                /**
                                 * Verifies a Preconditions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a Preconditions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Preconditions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions;

                                /**
                                 * Creates a plain object from a Preconditions message. Also converts values to other types if specified.
                                 * @param message Preconditions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Preconditions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a RootPaths. */
                            interface IRootPaths {

                                /** RootPaths paths */
                                paths?: (string[]|null);
                            }

                            /** Represents a RootPaths. */
                            class RootPaths implements IRootPaths {

                                /**
                                 * Constructs a new RootPaths.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IRootPaths);

                                /** RootPaths paths. */
                                public paths: string[];

                                /**
                                 * Creates a new RootPaths instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns RootPaths instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IRootPaths): k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths;

                                /**
                                 * Encodes the specified RootPaths message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths.verify|verify} messages.
                                 * @param message RootPaths message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IRootPaths, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified RootPaths message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths.verify|verify} messages.
                                 * @param message RootPaths message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IRootPaths, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a RootPaths message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns RootPaths
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths;

                                /**
                                 * Decodes a RootPaths message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns RootPaths
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths;

                                /**
                                 * Verifies a RootPaths message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a RootPaths message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns RootPaths
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths;

                                /**
                                 * Creates a plain object from a RootPaths message. Also converts values to other types if specified.
                                 * @param message RootPaths
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this RootPaths to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a ServerAddressByClientCIDR. */
                            interface IServerAddressByClientCIDR {

                                /** ServerAddressByClientCIDR clientCIDR */
                                clientCIDR?: (string|null);

                                /** ServerAddressByClientCIDR serverAddress */
                                serverAddress?: (string|null);
                            }

                            /** Represents a ServerAddressByClientCIDR. */
                            class ServerAddressByClientCIDR implements IServerAddressByClientCIDR {

                                /**
                                 * Constructs a new ServerAddressByClientCIDR.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IServerAddressByClientCIDR);

                                /** ServerAddressByClientCIDR clientCIDR. */
                                public clientCIDR: string;

                                /** ServerAddressByClientCIDR serverAddress. */
                                public serverAddress: string;

                                /**
                                 * Creates a new ServerAddressByClientCIDR instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns ServerAddressByClientCIDR instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IServerAddressByClientCIDR): k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR;

                                /**
                                 * Encodes the specified ServerAddressByClientCIDR message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR.verify|verify} messages.
                                 * @param message ServerAddressByClientCIDR message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IServerAddressByClientCIDR, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified ServerAddressByClientCIDR message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR.verify|verify} messages.
                                 * @param message ServerAddressByClientCIDR message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IServerAddressByClientCIDR, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a ServerAddressByClientCIDR message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns ServerAddressByClientCIDR
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR;

                                /**
                                 * Decodes a ServerAddressByClientCIDR message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns ServerAddressByClientCIDR
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR;

                                /**
                                 * Verifies a ServerAddressByClientCIDR message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a ServerAddressByClientCIDR message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns ServerAddressByClientCIDR
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR;

                                /**
                                 * Creates a plain object from a ServerAddressByClientCIDR message. Also converts values to other types if specified.
                                 * @param message ServerAddressByClientCIDR
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this ServerAddressByClientCIDR to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a Status. */
                            interface IStatus {

                                /** Status metadata */
                                metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** Status status */
                                status?: (string|null);

                                /** Status message */
                                message?: (string|null);

                                /** Status reason */
                                reason?: (string|null);

                                /** Status details */
                                details?: (k8s.io.apimachinery.pkg.apis.meta.v1.IStatusDetails|null);

                                /** Status code */
                                code?: (number|null);
                            }

                            /** Represents a Status. */
                            class Status implements IStatus {

                                /**
                                 * Constructs a new Status.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IStatus);

                                /** Status metadata. */
                                public metadata?: (k8s.io.apimachinery.pkg.apis.meta.v1.IListMeta|null);

                                /** Status status. */
                                public status: string;

                                /** Status message. */
                                public message: string;

                                /** Status reason. */
                                public reason: string;

                                /** Status details. */
                                public details?: (k8s.io.apimachinery.pkg.apis.meta.v1.IStatusDetails|null);

                                /** Status code. */
                                public code: number;

                                /**
                                 * Creates a new Status instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Status instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IStatus): k8s.io.apimachinery.pkg.apis.meta.v1.Status;

                                /**
                                 * Encodes the specified Status message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Status.verify|verify} messages.
                                 * @param message Status message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Status message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Status.verify|verify} messages.
                                 * @param message Status message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Status message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Status
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.Status;

                                /**
                                 * Decodes a Status message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Status
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.Status;

                                /**
                                 * Verifies a Status message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a Status message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Status
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.Status;

                                /**
                                 * Creates a plain object from a Status message. Also converts values to other types if specified.
                                 * @param message Status
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.Status, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Status to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a StatusCause. */
                            interface IStatusCause {

                                /** StatusCause reason */
                                reason?: (string|null);

                                /** StatusCause message */
                                message?: (string|null);

                                /** StatusCause field */
                                field?: (string|null);
                            }

                            /** Represents a StatusCause. */
                            class StatusCause implements IStatusCause {

                                /**
                                 * Constructs a new StatusCause.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusCause);

                                /** StatusCause reason. */
                                public reason: string;

                                /** StatusCause message. */
                                public message: string;

                                /** StatusCause field. */
                                public field: string;

                                /**
                                 * Creates a new StatusCause instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns StatusCause instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusCause): k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause;

                                /**
                                 * Encodes the specified StatusCause message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause.verify|verify} messages.
                                 * @param message StatusCause message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusCause, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified StatusCause message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause.verify|verify} messages.
                                 * @param message StatusCause message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusCause, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a StatusCause message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns StatusCause
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause;

                                /**
                                 * Decodes a StatusCause message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns StatusCause
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause;

                                /**
                                 * Verifies a StatusCause message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a StatusCause message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns StatusCause
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause;

                                /**
                                 * Creates a plain object from a StatusCause message. Also converts values to other types if specified.
                                 * @param message StatusCause
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this StatusCause to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a StatusDetails. */
                            interface IStatusDetails {

                                /** StatusDetails name */
                                name?: (string|null);

                                /** StatusDetails group */
                                group?: (string|null);

                                /** StatusDetails kind */
                                kind?: (string|null);

                                /** StatusDetails uid */
                                uid?: (string|null);

                                /** StatusDetails causes */
                                causes?: (k8s.io.apimachinery.pkg.apis.meta.v1.IStatusCause[]|null);

                                /** StatusDetails retryAfterSeconds */
                                retryAfterSeconds?: (number|null);
                            }

                            /** Represents a StatusDetails. */
                            class StatusDetails implements IStatusDetails {

                                /**
                                 * Constructs a new StatusDetails.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusDetails);

                                /** StatusDetails name. */
                                public name: string;

                                /** StatusDetails group. */
                                public group: string;

                                /** StatusDetails kind. */
                                public kind: string;

                                /** StatusDetails uid. */
                                public uid: string;

                                /** StatusDetails causes. */
                                public causes: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusCause[];

                                /** StatusDetails retryAfterSeconds. */
                                public retryAfterSeconds: number;

                                /**
                                 * Creates a new StatusDetails instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns StatusDetails instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusDetails): k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails;

                                /**
                                 * Encodes the specified StatusDetails message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails.verify|verify} messages.
                                 * @param message StatusDetails message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified StatusDetails message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails.verify|verify} messages.
                                 * @param message StatusDetails message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IStatusDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a StatusDetails message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns StatusDetails
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails;

                                /**
                                 * Decodes a StatusDetails message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns StatusDetails
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails;

                                /**
                                 * Verifies a StatusDetails message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a StatusDetails message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns StatusDetails
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails;

                                /**
                                 * Creates a plain object from a StatusDetails message. Also converts values to other types if specified.
                                 * @param message StatusDetails
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this StatusDetails to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a TableOptions. */
                            interface ITableOptions {

                                /** TableOptions includeObject */
                                includeObject?: (string|null);
                            }

                            /** Represents a TableOptions. */
                            class TableOptions implements ITableOptions {

                                /**
                                 * Constructs a new TableOptions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ITableOptions);

                                /** TableOptions includeObject. */
                                public includeObject: string;

                                /**
                                 * Creates a new TableOptions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns TableOptions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ITableOptions): k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions;

                                /**
                                 * Encodes the specified TableOptions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions.verify|verify} messages.
                                 * @param message TableOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.ITableOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified TableOptions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions.verify|verify} messages.
                                 * @param message TableOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.ITableOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a TableOptions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns TableOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions;

                                /**
                                 * Decodes a TableOptions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns TableOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions;

                                /**
                                 * Verifies a TableOptions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a TableOptions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns TableOptions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions;

                                /**
                                 * Creates a plain object from a TableOptions message. Also converts values to other types if specified.
                                 * @param message TableOptions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this TableOptions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a Time. */
                            interface ITime {

                                /** Time seconds */
                                seconds?: (number|Long|null);

                                /** Time nanos */
                                nanos?: (number|null);
                            }

                            /** Represents a Time. */
                            class Time implements ITime {

                                /**
                                 * Constructs a new Time.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ITime);

                                /** Time seconds. */
                                public seconds: (number|Long);

                                /** Time nanos. */
                                public nanos: number;

                                /**
                                 * Creates a new Time instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Time instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ITime): k8s.io.apimachinery.pkg.apis.meta.v1.Time;

                                /**
                                 * Encodes the specified Time message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Time.verify|verify} messages.
                                 * @param message Time message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.ITime, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Time message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Time.verify|verify} messages.
                                 * @param message Time message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.ITime, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Time message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Time
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.Time;

                                /**
                                 * Decodes a Time message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Time
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.Time;

                                /**
                                 * Verifies a Time message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a Time message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Time
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.Time;

                                /**
                                 * Creates a plain object from a Time message. Also converts values to other types if specified.
                                 * @param message Time
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.Time, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Time to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a Timestamp. */
                            interface ITimestamp {

                                /** Timestamp seconds */
                                seconds?: (number|Long|null);

                                /** Timestamp nanos */
                                nanos?: (number|null);
                            }

                            /** Represents a Timestamp. */
                            class Timestamp implements ITimestamp {

                                /**
                                 * Constructs a new Timestamp.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ITimestamp);

                                /** Timestamp seconds. */
                                public seconds: (number|Long);

                                /** Timestamp nanos. */
                                public nanos: number;

                                /**
                                 * Creates a new Timestamp instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Timestamp instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ITimestamp): k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp;

                                /**
                                 * Encodes the specified Timestamp message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp.verify|verify} messages.
                                 * @param message Timestamp message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp.verify|verify} messages.
                                 * @param message Timestamp message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Timestamp message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Timestamp
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp;

                                /**
                                 * Decodes a Timestamp message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Timestamp
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp;

                                /**
                                 * Verifies a Timestamp message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a Timestamp message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Timestamp
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp;

                                /**
                                 * Creates a plain object from a Timestamp message. Also converts values to other types if specified.
                                 * @param message Timestamp
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Timestamp to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a TypeMeta. */
                            interface ITypeMeta {

                                /** TypeMeta kind */
                                kind?: (string|null);

                                /** TypeMeta apiVersion */
                                apiVersion?: (string|null);
                            }

                            /** Represents a TypeMeta. */
                            class TypeMeta implements ITypeMeta {

                                /**
                                 * Constructs a new TypeMeta.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ITypeMeta);

                                /** TypeMeta kind. */
                                public kind: string;

                                /** TypeMeta apiVersion. */
                                public apiVersion: string;

                                /**
                                 * Creates a new TypeMeta instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns TypeMeta instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.ITypeMeta): k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta;

                                /**
                                 * Encodes the specified TypeMeta message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta.verify|verify} messages.
                                 * @param message TypeMeta message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.ITypeMeta, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified TypeMeta message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta.verify|verify} messages.
                                 * @param message TypeMeta message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.ITypeMeta, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a TypeMeta message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns TypeMeta
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta;

                                /**
                                 * Decodes a TypeMeta message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns TypeMeta
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta;

                                /**
                                 * Verifies a TypeMeta message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a TypeMeta message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns TypeMeta
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta;

                                /**
                                 * Creates a plain object from a TypeMeta message. Also converts values to other types if specified.
                                 * @param message TypeMeta
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this TypeMeta to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of an UpdateOptions. */
                            interface IUpdateOptions {

                                /** UpdateOptions dryRun */
                                dryRun?: (string[]|null);

                                /** UpdateOptions fieldManager */
                                fieldManager?: (string|null);
                            }

                            /** Represents an UpdateOptions. */
                            class UpdateOptions implements IUpdateOptions {

                                /**
                                 * Constructs a new UpdateOptions.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IUpdateOptions);

                                /** UpdateOptions dryRun. */
                                public dryRun: string[];

                                /** UpdateOptions fieldManager. */
                                public fieldManager: string;

                                /**
                                 * Creates a new UpdateOptions instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns UpdateOptions instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IUpdateOptions): k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions;

                                /**
                                 * Encodes the specified UpdateOptions message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions.verify|verify} messages.
                                 * @param message UpdateOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IUpdateOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified UpdateOptions message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions.verify|verify} messages.
                                 * @param message UpdateOptions message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IUpdateOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes an UpdateOptions message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns UpdateOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions;

                                /**
                                 * Decodes an UpdateOptions message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns UpdateOptions
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions;

                                /**
                                 * Verifies an UpdateOptions message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates an UpdateOptions message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns UpdateOptions
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions;

                                /**
                                 * Creates a plain object from an UpdateOptions message. Also converts values to other types if specified.
                                 * @param message UpdateOptions
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this UpdateOptions to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a Verbs. */
                            interface IVerbs {

                                /** Verbs items */
                                items?: (string[]|null);
                            }

                            /** Represents a Verbs. */
                            class Verbs implements IVerbs {

                                /**
                                 * Constructs a new Verbs.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IVerbs);

                                /** Verbs items. */
                                public items: string[];

                                /**
                                 * Creates a new Verbs instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns Verbs instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IVerbs): k8s.io.apimachinery.pkg.apis.meta.v1.Verbs;

                                /**
                                 * Encodes the specified Verbs message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Verbs.verify|verify} messages.
                                 * @param message Verbs message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IVerbs, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified Verbs message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.Verbs.verify|verify} messages.
                                 * @param message Verbs message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IVerbs, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a Verbs message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns Verbs
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.Verbs;

                                /**
                                 * Decodes a Verbs message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns Verbs
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.Verbs;

                                /**
                                 * Verifies a Verbs message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a Verbs message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns Verbs
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.Verbs;

                                /**
                                 * Creates a plain object from a Verbs message. Also converts values to other types if specified.
                                 * @param message Verbs
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.Verbs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this Verbs to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }

                            /** Properties of a WatchEvent. */
                            interface IWatchEvent {

                                /** WatchEvent type */
                                type?: (string|null);

                                /** WatchEvent object */
                                object?: (k8s.io.apimachinery.pkg.runtime.IRawExtension|null);
                            }

                            /** Represents a WatchEvent. */
                            class WatchEvent implements IWatchEvent {

                                /**
                                 * Constructs a new WatchEvent.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IWatchEvent);

                                /** WatchEvent type. */
                                public type: string;

                                /** WatchEvent object. */
                                public object?: (k8s.io.apimachinery.pkg.runtime.IRawExtension|null);

                                /**
                                 * Creates a new WatchEvent instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns WatchEvent instance
                                 */
                                public static create(properties?: k8s.io.apimachinery.pkg.apis.meta.v1.IWatchEvent): k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent;

                                /**
                                 * Encodes the specified WatchEvent message. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent.verify|verify} messages.
                                 * @param message WatchEvent message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: k8s.io.apimachinery.pkg.apis.meta.v1.IWatchEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified WatchEvent message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent.verify|verify} messages.
                                 * @param message WatchEvent message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: k8s.io.apimachinery.pkg.apis.meta.v1.IWatchEvent, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a WatchEvent message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns WatchEvent
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent;

                                /**
                                 * Decodes a WatchEvent message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns WatchEvent
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent;

                                /**
                                 * Verifies a WatchEvent message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a WatchEvent message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns WatchEvent
                                 */
                                public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent;

                                /**
                                 * Creates a plain object from a WatchEvent message. Also converts values to other types if specified.
                                 * @param message WatchEvent
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this WatchEvent to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };
                            }
                        }
                    }
                }

                /** Namespace runtime. */
                namespace runtime {

                    /** Properties of a RawExtension. */
                    interface IRawExtension {

                        /** RawExtension raw */
                        raw?: (Uint8Array|null);
                    }

                    /** Represents a RawExtension. */
                    class RawExtension implements IRawExtension {

                        /**
                         * Constructs a new RawExtension.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.apimachinery.pkg.runtime.IRawExtension);

                        /** RawExtension raw. */
                        public raw: Uint8Array;

                        /**
                         * Creates a new RawExtension instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RawExtension instance
                         */
                        public static create(properties?: k8s.io.apimachinery.pkg.runtime.IRawExtension): k8s.io.apimachinery.pkg.runtime.RawExtension;

                        /**
                         * Encodes the specified RawExtension message. Does not implicitly {@link k8s.io.apimachinery.pkg.runtime.RawExtension.verify|verify} messages.
                         * @param message RawExtension message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.apimachinery.pkg.runtime.IRawExtension, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RawExtension message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.runtime.RawExtension.verify|verify} messages.
                         * @param message RawExtension message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.apimachinery.pkg.runtime.IRawExtension, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RawExtension message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RawExtension
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.runtime.RawExtension;

                        /**
                         * Decodes a RawExtension message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RawExtension
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.runtime.RawExtension;

                        /**
                         * Verifies a RawExtension message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a RawExtension message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RawExtension
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.runtime.RawExtension;

                        /**
                         * Creates a plain object from a RawExtension message. Also converts values to other types if specified.
                         * @param message RawExtension
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.apimachinery.pkg.runtime.RawExtension, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this RawExtension to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of a TypeMeta. */
                    interface ITypeMeta {

                        /** TypeMeta apiVersion */
                        apiVersion?: (string|null);

                        /** TypeMeta kind */
                        kind?: (string|null);
                    }

                    /** Represents a TypeMeta. */
                    class TypeMeta implements ITypeMeta {

                        /**
                         * Constructs a new TypeMeta.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.apimachinery.pkg.runtime.ITypeMeta);

                        /** TypeMeta apiVersion. */
                        public apiVersion: string;

                        /** TypeMeta kind. */
                        public kind: string;

                        /**
                         * Creates a new TypeMeta instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TypeMeta instance
                         */
                        public static create(properties?: k8s.io.apimachinery.pkg.runtime.ITypeMeta): k8s.io.apimachinery.pkg.runtime.TypeMeta;

                        /**
                         * Encodes the specified TypeMeta message. Does not implicitly {@link k8s.io.apimachinery.pkg.runtime.TypeMeta.verify|verify} messages.
                         * @param message TypeMeta message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.apimachinery.pkg.runtime.ITypeMeta, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TypeMeta message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.runtime.TypeMeta.verify|verify} messages.
                         * @param message TypeMeta message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.apimachinery.pkg.runtime.ITypeMeta, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TypeMeta message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TypeMeta
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.runtime.TypeMeta;

                        /**
                         * Decodes a TypeMeta message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TypeMeta
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.runtime.TypeMeta;

                        /**
                         * Verifies a TypeMeta message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a TypeMeta message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TypeMeta
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.runtime.TypeMeta;

                        /**
                         * Creates a plain object from a TypeMeta message. Also converts values to other types if specified.
                         * @param message TypeMeta
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.apimachinery.pkg.runtime.TypeMeta, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TypeMeta to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }

                    /** Properties of an Unknown. */
                    interface IUnknown {

                        /** Unknown typeMeta */
                        typeMeta?: (k8s.io.apimachinery.pkg.runtime.ITypeMeta|null);

                        /** Unknown raw */
                        raw?: (Uint8Array|null);

                        /** Unknown contentEncoding */
                        contentEncoding?: (string|null);

                        /** Unknown contentType */
                        contentType?: (string|null);
                    }

                    /** Represents an Unknown. */
                    class Unknown implements IUnknown {

                        /**
                         * Constructs a new Unknown.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: k8s.io.apimachinery.pkg.runtime.IUnknown);

                        /** Unknown typeMeta. */
                        public typeMeta?: (k8s.io.apimachinery.pkg.runtime.ITypeMeta|null);

                        /** Unknown raw. */
                        public raw: Uint8Array;

                        /** Unknown contentEncoding. */
                        public contentEncoding: string;

                        /** Unknown contentType. */
                        public contentType: string;

                        /**
                         * Creates a new Unknown instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Unknown instance
                         */
                        public static create(properties?: k8s.io.apimachinery.pkg.runtime.IUnknown): k8s.io.apimachinery.pkg.runtime.Unknown;

                        /**
                         * Encodes the specified Unknown message. Does not implicitly {@link k8s.io.apimachinery.pkg.runtime.Unknown.verify|verify} messages.
                         * @param message Unknown message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: k8s.io.apimachinery.pkg.runtime.IUnknown, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Unknown message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.runtime.Unknown.verify|verify} messages.
                         * @param message Unknown message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: k8s.io.apimachinery.pkg.runtime.IUnknown, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Unknown message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Unknown
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.runtime.Unknown;

                        /**
                         * Decodes an Unknown message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Unknown
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.runtime.Unknown;

                        /**
                         * Verifies an Unknown message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an Unknown message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Unknown
                         */
                        public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.runtime.Unknown;

                        /**
                         * Creates a plain object from an Unknown message. Also converts values to other types if specified.
                         * @param message Unknown
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: k8s.io.apimachinery.pkg.runtime.Unknown, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Unknown to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };
                    }
                }

                /** Namespace util. */
                namespace util {

                    /** Namespace intstr. */
                    namespace intstr {

                        /** Properties of an IntOrString. */
                        interface IIntOrString {

                            /** IntOrString type */
                            type?: (number|Long|null);

                            /** IntOrString intVal */
                            intVal?: (number|null);

                            /** IntOrString strVal */
                            strVal?: (string|null);
                        }

                        /** Represents an IntOrString. */
                        class IntOrString implements IIntOrString {

                            /**
                             * Constructs a new IntOrString.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: k8s.io.apimachinery.pkg.util.intstr.IIntOrString);

                            /** IntOrString type. */
                            public type: (number|Long);

                            /** IntOrString intVal. */
                            public intVal: number;

                            /** IntOrString strVal. */
                            public strVal: string;

                            /**
                             * Creates a new IntOrString instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns IntOrString instance
                             */
                            public static create(properties?: k8s.io.apimachinery.pkg.util.intstr.IIntOrString): k8s.io.apimachinery.pkg.util.intstr.IntOrString;

                            /**
                             * Encodes the specified IntOrString message. Does not implicitly {@link k8s.io.apimachinery.pkg.util.intstr.IntOrString.verify|verify} messages.
                             * @param message IntOrString message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: k8s.io.apimachinery.pkg.util.intstr.IIntOrString, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified IntOrString message, length delimited. Does not implicitly {@link k8s.io.apimachinery.pkg.util.intstr.IntOrString.verify|verify} messages.
                             * @param message IntOrString message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: k8s.io.apimachinery.pkg.util.intstr.IIntOrString, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an IntOrString message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns IntOrString
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): k8s.io.apimachinery.pkg.util.intstr.IntOrString;

                            /**
                             * Decodes an IntOrString message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns IntOrString
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): k8s.io.apimachinery.pkg.util.intstr.IntOrString;

                            /**
                             * Verifies an IntOrString message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates an IntOrString message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns IntOrString
                             */
                            public static fromObject(object: { [k: string]: any }): k8s.io.apimachinery.pkg.util.intstr.IntOrString;

                            /**
                             * Creates a plain object from an IntOrString message. Also converts values to other types if specified.
                             * @param message IntOrString
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: k8s.io.apimachinery.pkg.util.intstr.IntOrString, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this IntOrString to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };
                        }
                    }
                }
            }
        }
    }
}
